MakerDAOシリーズ第三弾です。今回もCDPやKeeperなどの特殊用語が頻発します。CDPは第一弾で、Keeperは第二弾で說明しています。
Price Stability Mechanisms
DAIをステーブルコインと呼ぶからには、DAI価格が安定するメカニズムが用意されているはずです。そのメカニズムを探ってみましょう。ホワイトペーパー(PDF)5pから始めます。
Target Price
Target Priceは1DAI=1USDで設定されています。
- Target PriceはCDPのCollateral-to-Debt ratio(※後述)に用いられる
- Target PriceはGlobal Settlement(※後述)時にDAIホルダーが受け取る担保の価値を決定する際に用いられる
CDPはCollateralized Debt Positionのことで、スマートコントラクトを用いてDAIを発行する際にEtherを質に入れて、DAIを借り入れることができるのでした(※参考)。
Collateral-to-Debt ratioはLiquidation Ratioとも言われ、この比率に達したCDPは清算される可能性があります。証拠金取引におけるロスカットのようなものですね。この値は、MKRホルダーによって設定されます。
Global Settlement
Global SettlementはDAIホルダーに対してTarget Priceを保証するために用いられる最終手段であると説明されています。例えばMakerDAOのシステムが致命的な攻撃を受けているときや、システムアップグレードのために一旦CDPを停止する必要があるときに発動されます。
では誰がGlobal Settlementを発動する権利を持っているか?MakerDAOのトークン「MKR」を所有しているホルダーによって実行されます。詳しく順序を見てみましょう。
Step1: Global Settlementのアクティベーション
MakerのガバナンスシステムによってGlobal Settlerとして選定された人間のうち十分な数がシステムが攻撃に晒されている、もしくはシステムアップグレードのためにGlobal Settlementが必要であると判断した場合に、Global Settlementが発動します。この時、CDPの作成や操作はストップし、Price Feed(※記事の最後で説明)の値は固定されます。
ホワイトペーパー14pによると、Global Settlers はMKRホルダーの投票によって決定され、Global SettlersはGlobal Settlementを発動する以外の権限を持ちません。ここで気になるのはMKRトークンのディストリビューションでしょう。
MKRのトークンホルダーは以下のリストをご覧下さい。
Maker (MKR) ERC20 Token Tracker
Step2: ETHの払い戻し請求
Global Settlementアクティベーション後、一定の期間がおかれ、DAIやCDPのホルダーは自身が管理するDAIやCDPの数量とFeed Priceに基いて、自身が担保資産として預けているEtherの払い戻しを請求することができます。
Step3: DAIとEtherの交換
DAIホルダーはMaker PlatformにおいてCalm functionを呼び出すことにより、自身のDAIをDAIのTarget Priceに基いて、Etherと交換することができます。
例えばDAIのTarget Priceが1USDで、1ETHが200USDの場合、1000DAIを保有するユーザーは、Global Settlementのアクティベーションにより、自身の1000DAIを5Etherに交換することができます。
Price FeedとOracle
上のStep1でPrice Feedという単語が登場しました。Price Feedとは何でしょうか?明らかに価格データのことですが、どのようにPrice Feedが設定されるのでしょうか?
ホワイトペーパー13pに関連する情報があります。MakerDAOにはKey External Actorsとして3つの役割が挙げられているのですが、その一つがOracleです。残り2つは前回說明したKeeperと今回說明したGlobal Settlerです。
Maker Platformはそのシステムの性格上、リアルタイムにCDPに保管されている担保資産の価格データを取得する必要があります。何故なら担保資産が急激に下落した場合には、Liquidationの発動が不可欠だからです。
また担保資産のみならず、DAIの価格を安定にするためには、DAIの市場価格を監視し、目標価格との乖離がある場合には、アービトラージ等の経済的インセンティブを発生させることによりテコ入れを行う必要があります。このDAIの価格安定化は「Target Rate Feedback Mechanism」と呼ばれるもので次回説明します。
MKRホルダーは投票によってTrusted Oracleを選び、そのOracleがEthereumのトランザクションを通してMaker Platformに情報を提供します。
何故こんなにややこしいのでしょうか?Oracleはブロックチェーン内には存在しない情報(ここではEtherやDAIの市場価格)をブロックチェーン内に持ち込む役割を果たします。ブロックチェーン外の情報も扱えるようになるということは、ブロックチェーンが扱える情報量が飛躍的に伸びるので非常に重要なのですが、APIを通して特定のソースからデータを取得するのは、データ取得先への依存になるという理由であまり好まれません。ただし、ブロックチェーン外のデータを、トラストレスな形でブロックチェーン内に持ち込むのは非常に難しいのです。
さらにこれを分散的に行うのは非常にハードルが高いのが現状です。故にオラクルで不正を働くインセンティブが働きにくい主体(=この例ではMKRホルダー)の投票によってTrusted Oracleを選ぼうというのがMakerDAOの仕組みです。
実はこのオラクル機能の実現に苦労しているのはMakerDAOだけではなく、予測市場のGnosisでもP2P交換のAirSwapでもオラクルの持続的な仕組みはまだ開発されていません。0xでは板情報の管理に経済的インセンティブを与えることによって、多数のRelayerを誕生させています。ただし、これは情報の提供によって利益を受ける主体(=DEXの利用者)と情報の提供者(=Relayer)が明確に分かれている上に、その他の主体にほとんど影響を与えないので、利害関係が明確であり、更に0xをベースにしたDEXの利用者がRelayerに直接手数料を支払うというモデルなので、非常にシンプルで設計しやすいのです。
オラクルに関しては以下の記事をご覧下さい。
MakerDAOでは、価格情報を提供するTrusted Oracleがコントロールされてしまった場合でも、Price Feedの変化率には上限が定められており、極端な変化は認められないようになっています。この変化率を定めるパラメーターのことをPrice Feed Sensitivity Parameterと呼びます。
次回は「Target Rate Feedback Mechanism」についてです。