DaiのDev版、Saiを完全理解してみる その1

DaiのDev版、Saiを完全理解してみる その1

どうも田原です。

やっと卒論終わりました。なのでこれから本格的にブロックチェーンに時間を割いて行きたいなあと思ってます。(と言いつつ怠け癖が治らないのでなかなかそうはいかなかったりします笑 現に今もモンハンでババ○ンガを狩りながら書いてます)
自分の興味のある領域が今の所、DeFi(分散型ファイナンス)、特に結のような金銭をプールしながら貸し借りをあまり意識しないで貸し借りできるシステムのようなものを作りたいなあと思ってます。

そう考えるとDai(ユーザーが担保したEthereumを元手にしたステーブルコイン)やCompound(

担保を元手に資金を貸すサービス)なんかが近くて、この仕組みをまずは知ろうと思います。

Daiなのですが、こちらはSaiというETH価格のオラクルなどを無くしたシンプルなバージョンがDeveloper用に公開されています。今回はこれを見て行きたいと思います。

まずDaiの仕組みをおさらいしたいと思います。Daiは以下のような仕組みになってます。

基本的にETH/USDでDaiの借りた額の1.5倍以上になるように担保していればOK、担保が下回ると没収、という仕組みです。(なのでETH価格には注意しなければならない)

それから次にSaiの大まかな仕組みをに書いて行きます。

まず使用するトークンは4種類あります。あ、オナラ食らいました。回復できないですねえ…

Gemと呼ばれる担保用のトークン(Daiで言う所のWETH)、これを担保すると得られる担保金のSkrというトークンを得ます。その担保金をロックすることでステーブルコインSaiを得ます。最後にSaiを借りるとその分ユーザーは負債を追うことになります(ちょうど簿記の借方貸方のイメージ)このマイナスのSaiのことをSinと呼びます。

また利用イメージは次の通りです。まず、ユーザーはGemを担保します。そしてその分Skrを得ます。この二つがユーザーが所持しているトークンです。次にユーザーはSkrをロックしてSaiを借り受けます。この際、Cupと呼ばれる借用書(Struct)を生成します。そのCupのなかにSkrがロックされ、受け取ったSaiの分だけ(実際はもう少し複雑)Sinが記録されます。

最後にディレクトリ構成とその関係性を見てみましょう。以下の図のようになっています。

管理者が動かせるのはMom.sol(各種パラメータの調整)とTop.sol(やばくなった時に強制シャットダウンする)の二種類だけです。管理者の操作可能領域が最小限に留められているのは DeFiらしくて好感が持てますね。

Cupの生成を行う一番大事な部分がTub.solです。コードもここが一番長く、これが理解できれば8割型理解したと考えて大丈夫です。

では次回からは上から順に見て行きます!

あ、狩り終わりました。0乙でいけました。

でもラー○ャンといいドド○ランコと言い、なんであいつら猿みてえな形して空飛ぶんすか?

ウルト○マンかよ!