『マスタリング・イーサリアム』の翻訳に参加しました。

【MakerDAOとStablecoin】Price Stability Mechanismsの仕組み

MakerDAOとStablecoin

MakerDAOシリーズ第三弾です。今回もCDPやKeeperなどの特殊用語が頻発します。CDPは第一弾で、Keeperは第二弾で說明しています。

【MakerDAOとStablecoin】Collateralized Debt Position Smart Contractsの仕組み
本シリーズでは、MakerDAOのWhite Paper(PDF)を順に要約していきます。MakerDAOではEtherを担保にすることにより、DAIトークンを発行できます。DAIシステムでは1DAI=1USDのレートを可能な限り維持す...
【MakerDAOとStablecoin】担保資産とその精算時の仕組み
PETH(Pooled Ether)の機能Pooled Ether(PETH)はMakerにおいて担保資産として使われるEtherのことです。前回の記事でも書いた通り、現時点で担保資産として使えるのはEtherのみです。将来的には複数の...

 Price Stability Mechanisms

DAIをステーブルコインと呼ぶからには、DAI価格が安定するメカニズムが用意されているはずです。そのメカニズムを探ってみましょう。ホワイトペーパー(PDF)5pから始めます。

Target Price

Target Priceは1DAI=1USDで設定されています。

  1. Target PriceはCDPのCollateral-to-Debt ratio(※後述)に用いられる
  2. 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に直接手数料を支払うというモデルなので、非常にシンプルで設計しやすいのです。

オラクルに関しては以下の記事をご覧下さい。

オラクルとは何か? Devcon3に登壇した3つのオラクル関連プロジェクト概要
11月1日から4日までメキシコのカンクンで行われたEthereumの開発者カンファレンスが終了しました。VitalikやVlad等のコア開発者はもちろん、EVM(Ethereum Virtual Machine)を用いたアプリケーションの開...

MakerDAOでは、価格情報を提供するTrusted Oracleがコントロールされてしまった場合でも、Price Feedの変化率には上限が定められており、極端な変化は認められないようになっています。この変化率を定めるパラメーターのことをPrice Feed Sensitivity Parameterと呼びます。

次回は「Target Rate Feedback Mechanism」についてです。


The Dai Stablecoin System