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

【MakerDAOとStablecoin】Collateralized Debt Position Smart Contractsの仕組み

MakerDAOとStablecoin

本シリーズでは、MakerDAOのWhite Paper(PDF)を順に要約していきます。

MakerDAOではEtherを担保にすることにより、DAIトークンを発行できます。DAIシステムでは1DAI=1USDのレートを可能な限り維持することを目指しています。それ故にDAIはStablecoinと呼ばれることがあります。

DAIの知名度は高くないと思いますが、先月Vitalik氏によって提案されたDAICOでもDAIを組み込んだシステムが選択肢の一つとして挙げられています。DAICOに関しては以下の記事をご覧下さい(※DAICOはDAO+ICOの意味で、本記事のDAIとは関係ありません)。

Vitalik氏が提案した新しいICOの形「DAICO」の概要
数日前にVitalik氏がEthresearchに現行のICOの問題点を改善したDAICOを提案しました。DAICOはDAO(自律分散型組織)とICO(Initial Coin Offering)を組み合わせたもので、資金調達チームによる資...

DAIは担保としてはEtherを用いるものの、USDとのペッグを目指しているので、Etherの価格が上昇するケースでは問題ありませんが、担保に入れたEtherが暴落した場合に1DAI=1USDのレートを維持するためには何らかの工夫が必要になります。担保に入れられたEtherのUSD価格に対して保守的なDAIの発行レートを設定したり(例えば1Ether=1000USDのときに、1Etherを担保に入れても500DAIしか発行できない制限)、Ether暴落時に自動的に清算される仕組みを導入したりする必要があることは明らかです。

Tetherは1Tether=1USDでペッグされていますが、中央集権的な仕組みであり、発行されたTetherと同額のUSDが銀行口座に保管されているかはTetherと監査法人にしか分かりません。つまりTetherはトラストを必要とする仕組みであるというわけです。ちなみに、ここでは「トラスト=悪、トラストレス=善」という前提は設定していません。このシリーズで見ていくように、暗号通貨のみを使って法定通貨に連動して値が動くようなトークンを作るのは非常に難しく、ビットコインがトラストレスな仕組みを成立させるために大きなコストを支払っているのと同じように、MakerDAOの仕組みでもDAIを成立させるために様々な工夫が必要とされています(しかも完全なペッグは極めて難しい)。法定通貨を扱う限り、その資金の出入り口においてトラストが必要なのは現状では仕方のないことです。

ではMakerDAOの何に興味を引かれたかというと、Ethereumブロックチェーン上でローンを提供する銀行や質草と引き換えに融資を行う質屋のように機能する点です。またEthereum上に展開されるDappsが多くなるに伴って、法定通貨建て価格を基準とする取引が多くなれば、Stablecoinの用途は広いと考えられます。

ホワイトペーパーに目を通して、概要を理解して、簡単にまとめて紹介しようと思っていたのですが、予想以上に複雑な仕組みで、かつ重要なアイディアが内包されていると感じたので、1つずつ追っていくことにしました。

Collateralized Debt Position Smart Contracts

CDPスマートコントラクトはDAIを発行する際に使用されます。担保資産であるEtherをCDPスマートコントラクトにデポジットすることで、DAIが発行されます。この時に発行できるDAIの上限は、Etherの市場価格と、MakerDAOのガバナンスシステムによって設定されるレートによって決定されます。

※早速CDPというよく分からない頭字語(=Acronym)が出てきましたが、MakerDAOのホワイトペーパーにはこの手の頭字語が頻出するので、一つずつ覚えていかないと後々辛くなります。

MakerDAOのガバナンスはMakerDAOのネイティブトークン「MKR」のホルダーによって行われます。レートの設定が必要なのは、仮にEtherの市場価格と同額のDAIを発行することが可能であれば、Etherの市場価格が少しでも下がってしまうと担保資産の価値が発行されたDAIを下回ってしまうためです。有効なCDPにおいては常に担保資産が発行されたDAIの価値を上回ります。

担保としてデポジットされたEtherはCDPの内部にロックされ、発行されたDAIが返済されるとアンロックされます(実際には若干の手数料がかかります)。

※担保資産として使用できるのは現段階ではEtherのみですが、段階的に複数資産による担保が可能になるようです。

CDP利用のプロセス

Step1: CDPの作成と担保資産のデポジット
CDPユーザーはまずMakerにトランザクションを送りCDPを作成します。その後、別のトランザクションを送り担保資産を送信します。担保資産の送信完了をもって「CDPが担保で保証されている」状態となります。

Step2: CDPからDAIの発行
CDPユーザーはトランザクションを発行し、CDPから自身が望む量のCDPを取り出すことができます(ただし取り出せる量は担保に入れている資産の多寡とDAI発行レートに拠る)。DAIが発行されるとその担保となっている資産はCDP内にロックされ、借金(=DAI)の返済が済むまで取り出すことはできません。

Step3: 借金(=DAI)の返済とStability Feeの支払い
ユーザーが担保資産を取り出したい場合、借金の返済に加えて、Stability FeeというDAIトークンの利用料を支払う必要があります。Stability FeeはMakerDAOのネイティブトークンであるMKRのみで支払うことができます。ユーザーが必要な量のDAIとMKRをCDPに送信すると、CDPは完済状態になります。

Step4: 担保資産の取り出しとCDPの閉鎖
借金とStability Feeの支払いによって、CDPユーザーは自由に担保資産の全て、または一部を取り出すことができます。担保資産の取り出しのためにはMakerにトランザクションを送る必要があります。

次回はPooled EtherとPrice Stability Mechanismsの項目を読みます。