DeFiの新しい物語?オラクルプロトコルなしのスマートコントラクトの安全な新しいモデル
著者:@Ac-Core, YBB Capital Researcher
前言
Oracle(オラクル)はDeFiの世界において重要な要素であり、異なるプロトコルの安全性は通常、基盤となるスマートコントラクトネットワークによって引き継がれますが、その正常な運用はオラクルに依存しています。もしあるプロトコルのオラクルが攻撃を受けたり破壊されたりすると、全体のプロトコルが操作されることになります。最近、新しいDeFiの創造者たちは全く新しい貸付とデリバティブの構造を考案することで新たな物語を生み出そうとしていますが、これらのプロトコルの変化の共通点は、もはやオラクルに依存しないということです。
DeFiのリスクと修復
DeFiの最大の魅力は、去中心化にあります。広義には、無権限の支払いプロトコルのオープンな金融システムです。従来の金融と比較して、そのルール、利益、さらにはリスクは比較的「曖昧」な方法で公開されていますが、それでも非常に強いオープン性を持っています。
しかし、数年の発展を経て、DeFi分野では数十億ドルの盗難が累積しています[1]。最も熱心な信者でさえ、DeFiが未来の金融の主流になることができるのか疑問を持ち続けています。2022年には、ハッカーがDeFiプロトコルやクロスチェーンブリッジを通じて盗んだ資金は38億ドルを超え、2022年は暗号史上で最も盗難額が多かった年です。将来的により大規模な集団が暗号の世界に入り、DeFiに依存するためには、安全性が最優先で解決すべき要素です。
図源:Chainalysis
オラクルのリスクと「ソースコード」
建設者からなる機関Nascentは、「無オラクルプロトコル」の概念がDeFiに根本的により堅牢で安全な技術基盤を提供すると考えています。現在、DeFiは自らを「ソースコード(Primitives)」として定義し、その基盤の上に製品や組み合わせプロトコルを構築するチームが増えることを望んでいます。一度そのコントラクトが外部依存を含むと、すべての関連リスクを引き継ぐことになります。同時に、そのコントラクトはより大規模なシステムエコシステムを支えるためにアップグレードされる必要があり、この管理型のアップグレード変数は、可変環境の現在と未来に関わり、さらなるリスク要因をもたらします。オラクルの導入は外部データへの依存関係を生じさせ、その関係は潜在的なリスクをもたらします。このため、NascentのメンバーであるDan Elitzerは新しい定義を提案しました:ソースコード(Primitives)の条件を満たすためには、ブロックチェーン上にデプロイされたコントラクト以外の外部要因に依存してはならず、例えば:ガバナンス、コントラクトのアップグレード性、オラクルは含まれません。
しかし現実には、現在この基本的な定義に合致するDeFiプロトコルは非常に稀であり、最も代表的なのはUniswap V1ですが、安全性の観点から考えると、上記の定義に一致するUniswap V2やV3も資格を満たしていません。なぜなら、これらは特定の機能に対するガバナンスを許可しており、例えばプロトコル手数料のクローズやプールの手数料階層の導入などです。
とはいえ、この狭いガバナンス機能は、他のプロトコルに存在する大規模なアップグレードによって体系的なリスクを引き起こすことはありませんでした。したがって、これまでのすべてのバージョンの中でUniswapが大成功を収めた理由は、オラクルと全チェーンという二つの重要な要素が存在しなかったからです。
疑う余地なく、Uniswapは去中心化取引のリーダーであり、巨大な成功を収め、その基盤の上に多くの去中心化取引所の実験が生まれました。例えば、Uniswap V3は非同質流動性ポジションの概念を導入し、流動性提供者(LP)が特定の範囲内に流動性を集中させることができるようになりました。これにより、LPはその範囲内での取引から得られるより大きな取引手数料を獲得し、利益を上げることができますが、価格の変動に伴い無償損失も発生します。これにより、資本のより効率的な使用と市場におけるLP部分の専門化が進み、一連のポジション管理ツールが誕生しました。例えば、Arrakis、Gamma、Sommelierなどです。これはDEXにとって非常に友好的ですが、貸付プロトコルは依然としてオラクルを必要とします。
今年の3月、Euler Financeの貸付プロトコルがハッカーの攻撃を受け、損失額は2億ドルに達しました。ユーザーが担保を自己決定し、借入を行うことができるこのプロトコルは、特定の関数に問題が発生し、安全チェックが行われなかったため、ユーザーが貸付市場の基本的不変式を破壊できる状態になりました。この攻撃事件の詳細なプロセスについては[2]をお読みください。
貸付プロトコルにとって、適格な担保は信頼できるオラクル価格フィードバックのある資産に限られます。貸付パラメータ(例えば、貸付価値比[3])はそのプロトコルによって管理されるため、悪化した債権はプロトコルによって責任を負い、個々の貸し手ではありません。同様に、オラクルに依存して価格設定を行うデリバティブプロトコルは、内部価格発見メカニズムが欠如しているため、価格の遅延や更新の影響を受けやすく、スケールやユーザー体験を大きく制限します。前述のように、これがなぜトレーダーのAvraham EisenbergがMango Marketsを成功裏に攻撃し、1.16億ドルを引き出すことができたのかを説明しています。
なぜ現在のUniswapは安全なのか
AMMは、DeFiのソースコード(Primitives)の中で最も単純な基本的不変式を持つことができます:tokenBalanceX * tokenBalanceY = k(定数の積)。例えば、Uniswap V2のペアインターフェースは以下の4つの関数不変式に基づいて実装されています:
Mint:kに追加;
Burn:kから減少;
Swap:xとyを移動し、kを不変に保つ;
Skim:tokenBalanceX * tokenBalanceYを再調整し、kに等しくする。
Uniswap V2の安全性の道:シンプルなコア不変式、すべての関数がこれに奉仕します。唯一の議論の余地があるのは、手数料スイッチを切り替えるガバナンスモードですが、これはコア不変式には触れず、トークン残高の所有権の配分に影響を与えるだけです。そして、彼らの安全性におけるこのシンプルさ(アップグレード不可能なスマートコントラクトと基本的不変式)のおかげで、Uniswap自体はこれまでハッカーの攻撃を受けたことがありません。
貸付プロトコルの再構築
図源:著者 Balakov
最近、無オラクルの貸付プロトコルに関する多くのプロジェクトが登場しています。例えば、Ajna、Ethereum Credit Guild、MetaStreetの自動化トランシェプロトコル(Automated Tranche Maker)、およびBlurとParadigmが共同で発表したハイブリッドプロトコルBlend[4]です。
従来のDeFi貸付市場とは異なり、Gauntletは担保を設定せず、Chainlinkのような単一の汎用オラクルをすべてのユーザーとプロトコル機能に提供する「真の」資産価格の供給源を持ちません。代わりに、借り手はリスクを評価し、借り手が要求する担保を決定する必要があります。また、資産価格が変動する際には、借入基準を更新しなければなりません。一般的な動作方法は、借り手が受け入れ可能な指定担保を選択し、例えばBAYCトークンや個別のBored Ape NFTなど、借り手に担保として提供する引用資産(USDCなど)を決定し、借り手が清算される際の引用資産と担保資産の比率を要求します。最後に、借り手は担保を発行し、現在の市場金利で引用資産を借入れます。
注意すべき点は、借り手と貸し手が合意した場合、貸付の清算は各資産の単位数量に基づいて決定されるため、オラクルは必要ありません。しかし、いずれかの資産の相対的なドル価値が変化した場合、貸し手は現在または将来の貸付条件を調整し、彼らが安全だと考える担保比率を達成します。
これらの方法の最大の利点は、プロトコルが実際には破産することができないことです。なぜなら、各貸し手は最終的に自分の貸付の返済能力に責任を負うため、「不良債権」の概念が存在しないからです。この「不良債権」はDAOの金庫や保険基金が負担するか、貸し手間で処理されることになります。
BlurのBlendハイブリッドプロトコルは、「複雑なオンチェーンおよびオフチェーンプロトコルに参加し、リスクを評価し、自分の資金を使用するより複雑な貸し手が存在する」と仮定しています。これは、Blurが専門のNFTトレーダーの主要な取引所であるという背景においては理にかなっていますが、一般のユーザーにとってはAaveやCompoundでの借入よりもはるかに複雑に思えるかもしれません。
無オラクルの新しい顔
Messariの研究者Chase Devensの定義によれば、無オラクルの定義構造は、ピアツーピア(Peer-to-Peer)とAMMベースのハイブリッドタイプの2つに分けられます。これら2つの主な特徴は以下の通りです:
ピアツーピア
任意のチェーン上の担保タイプをサポート
ユーザーが貸付パラメータを負担し、不良債権リスクを負う(もはや契約がリスクを負わない)、借り手は金利やLTVパラメータを定義せず、自分で価値を比較し、プロトコルのメカニズムからオラクルを排除することで、これらの貸付は任意のチェーン上の担保から作成できます。
ポジションを積極的に管理する必要があり、提供された流動性が効果的に利用されることを保証するために、ユーザーはUniswap V3の集中流動性ポジションのようにポジションを積極的に管理しなければなりません。
AMMベースのハイブリッドタイプ(貸付/デリバティブ---LPs流動性提供者)
任意のチェーン上の担保タイプをサポート
基盤となるLPポジションは清算とデリバティブ契約に価格データを提供し、主要な市場でもあります。これにより、プロトコルは基盤となる流動性プールから清算とデリバティブ契約の結果を計算でき、LPポジション自体がオラクルのように機能します。さらに、これらのLPポジションは清算や契約満了時にプロトコルの在庫を卸すための主要市場を提供し、外部プラットフォームで担保を清算する必要がありません。
例示:
Ajna.finance
AjnaはEVM専用に設計された貸付プロトコルで、ガバナンス、権限、外部価格供給(オラクル)がありません。これを使用して、私たちの全投資ポートフォリオ(NFTを含む)を借り入れることができます。他の貸付プロジェクトは、規模の臨界点に達するための2つの核心的な問題を抱えています:(1) トークンガバナンスシステムが複雑なリスクを分析するには不十分 (2) 外部価格フィードバック(オラクル)を使用することで、資産の範囲が流動性のある二次市場の「ブルーチップ」に制限されます。これらの欠陥はDeFi貸付市場に壊滅的な損失をもたらし、新しい資産のサポート能力を制限しました。Ajnaはこれらの問題をいくつかの重要な革新を通じて解決しました:
(1) 貸付者が資産価格を提供:貸付者がAjnaプロトコルを使用する際、彼らは契約に対して担保資産の価格をどれだけで提供する意向があるかを伝えます。これにより、彼らは自分のライフサイクル価値を入力し、ガバナンスパラメータから市場パラメータに変換します;
(2) 自動金利発掘:各Ajna市場には、内部指標によって決定される均衡状態があります。市場が不均衡な場合、誰でも12時間ごとに10%の為替レートを変更できます。変更がなければ、何も変更しません;
(3) 清算保証金:Ajnaにはオラクルがないため、ユーザーがいつ貸付を清算するかを教える必要があります。これは、清算者が清算をトリガーするために保証金を支払うことで実現されます。彼らが誠実であれば報酬を得ますが、そうでなければ罰せられます。
では、これにはどんな意味があるのでしょうか?これらの革新により、Ajnaは「全体」のエコシステムにサービスを提供できるようになりました。誰でも任意の資産(NFTさえも)を使用して貸付市場を作成できます。もはや手間のかかるガバナンスプロセスを完了する必要はなく、流動性、二次市場、オラクルを心配する必要もありません。
Blend
図源:Achal Srinivasan, Kirby
Blendはピアツーピアの永久貸付プロトコルで、NFTを含む任意の担保をサポートしています。これは複雑なオフチェーン見積もりプロトコルを通じて、借入意向のあるユーザーと競争力のある金利を提供する貸付者をマッチングします。
デフォルトでは、Blendの貸付金利は固定されており、永遠に期限がありません。借り手はいつでも返済でき、貸付者はオランダオークションをトリガーして新しい金利で新しい貸付者を探すことでポジションを退出できます。オークションが失敗した場合、借り手は清算され、貸付者は担保を占有します。全体として、オラクルに依存せず、期限がなく、流動的で、ピアツーピアという4つの特性を持っています:
無オラクル
多くのDeFiプロトコルは、清算ポジションを決定したり金利のタイミングを決定するためにオラクルを必要とします。NFTの例を挙げると、その価格は客観的に評価するのが難しく、タイムリーなフロア価格の更新をチェーン上で観測するのも非常に困難です。このような解決策は通常、信頼できる第三者や取引操作を含む必要があります。しかし、ハイブリッドプロトコルは、コアプロトコル内のオラクル依存を回避し、金利と貸付比率を貸付者の意向条件によって決定し、最終的な清算はオランダオークションの失敗によってトリガーされます;
無期限
一部のDeFiプロトコルは期限付きの債務ポジションのみをサポートしています。これは借り手にとって非常に不便で、彼らは期限前にポジションを閉じるか調整することを思い出さなければなりません(さもなければNFTの押収などの罰則があるかもしれません)。手動でポジションを調整するプロセスはGasを消費し、貸付から得られる利益を減少させます。貸付者が担保に基づいてこの金額を貸し出す意向があれば、Blendは自動的に借入ポジションを調整し、金利が変動するか、いずれかの当事者がポジションを退出したい場合にのみチェーン上の取引が必要です;
流動的
一部のプロトコルは期限前の清算をサポートしていないため、借り手にとって便利であり、多くのユースケースでは合理的です。しかし、これは実際には借り手にプットオプションを与え、貸付者は短い期限内に高い金利/低い貸付から選択し、ポジションが清算されるリスクを回避する必要があります。Blendでは、貸付者が再融資オークションをトリガーすると、誰もその債務を引き受ける意向がない場合、NFTを清算できます;
ピアツーピア
これらのプロトコルのいくつかは、貸付者の資金を集中させ、彼らの資産を管理しようとします。これは、パラメータを設定するためにチェーン上の管理または集中管理に大きく依存することを意味します。Blendはピアツーピアのモデルを採用しており、各貸付は個別にマッチングされ、貸付方法の単純さを最適化するのではなく、より複雑な借り手の能力が複雑なオンチェーンおよびオフチェーンプロトコルに参加することを前提にしており、より大きな権限を持って自分の資産を管理します。
FREI-PIモデルとは
NascentのメンバーBrock Elmoreによると、FREI-PIモデルは「機能要件-影響-相互作用-プロトコル不変式(Function Requirements-Effects-Interactions + Protocol Invariants pattern)」です。ここでは、dYdXのSoloMarginコントラクト(ソースコード)を例に挙げます。これは貸付市場とレバレッジ取引のコントラクトであり、FREI-PIモデルの絶好の例です。これは初期の貸付市場の中で唯一、マーケット関連の脆弱性がない貸付市場です。
以下のコードを見る際には、以下の抽象概念に注意してください:
入力要件 (_verifyInputs)
操作(データ変換、状態操作)
状態要件 (_verifyFinalState)
図源:Brock Elmore
ここで一般的に使用されるチェック - 効果 - 相互作用(Checks-Effects-Interactions)は依然として実行されています。しかし、追加のチェックを持つChecks-Effects-InteractionsはFREI-PIと同じではないことに注意が必要です。彼らは似ていますが、異なる目標にサービスを提供しています。このため、開発者はそれらの違いを理解する必要があります:FREI-PIはプロトコルの安全性に関する高次の抽象であり、CEIは機能の安全性に関する高次の抽象です。
このコントラクト構造の興味深い点は、ユーザーが自分の意志に従って複数の操作を連続して実行できることです。例えば、預金、借入、取引、送金、清算などです。3種類の異なるトークンを預け入れ、4種類目のトークンを引き出してアカウントを清算するという一連の操作は、ワンクリックで完了できます。
これがFREI-PIの強力な点です:コア貸付市場の不変式が呼び出し終了時に成立している限り、ユーザーはプロトコル内でやりたいことを何でも行うことができます。このコントラクトにとって、これは_verifyFinalStateで実行され、影響を受ける各アカウントの担保状況をチェックし、プロトコルが取引開始時よりも良好であることを保証します。
この関数には、コア不変式を補完するいくつかの追加の不変式も含まれており、市場を閉じるなどの補助機能を実現するのに役立ちますが、プロトコルの安全性を保証するのはコアチェックです。
実体中心の概念はFREI-PIのもう一つの難題です。貸付市場と仮定のコア不変式を例にすると、ユーザーは任意のアカウントを不安全な担保状態に陥らせる行動をとることはできません。技術的にはこれは唯一の不変式ではありませんが、ユーザーにとっては唯一の不変式(コアプロトコルの不変式と理解されるべきです)です。貸付市場には通常、さらに2つの追加の不変式があります:
1. オラクル
一般的にChainlinkは良い選択肢です。主な機能は正確で相対的に正確なリアルタイム情報を提供することであり、これはほとんどの不変式の要件を満たすことができます。極めて少数の操作や偶発的な状況において、正確性を保証するためにリアルタイム性を低下させる措置が有益である場合があります(例えば、最後に知られている値が現在の値よりも数百パーセント大きいかどうかをチェックするなど)。しかし、Cream Financeは1.3億ドルの攻撃を受けました。オラクルに関する詳細情報は、Uniswap V3 TWAPオラクルの操作を参照してください[5];
2. ガバナンス
ガバナンスは最も厄介な不変式です。なぜなら、条件に制約されるのが難しく、大部分の機能は他の不変式を変更するためのものであり、特定のガバナンスは操作時にFREI-PIを通じて検証できないからです。2022年8月にCompoundで発生したcETH市場を破壊するガバナンス操作の例を挙げると、このアップグレードはオラクルの不変式に違反しました。詳細は[6]をお読みください。
実際には、各追加の不変式がプロトコルをより保護するのが難しくするため、できるだけ少ない方が良いです。したがって、複雑さは危険であり、最も重要な不変式はプロトコルのコア不変式です。しかし、前述のように、実体中心の不変式も存在し、これらの不変式はコア不変式の要件を満たす必要があります。最もシンプルで最小の不変式の集合が安全である可能性があります。
小結:DeFiの未来
DeFiをアップグレード不可能なソースコード(Primitives)の上に構築し、オラクルから離れることが最適な解決策でしょうか?結局のところ、現在のDeFiプロトコルはガバナンス、アップグレード性、オラクルによってもたらされる柔軟性と使いやすさのおかげで、市場規模は数千億ドルに達しています。前述のDan Elitzerの見解によれば、ガバナンス、アップグレード、オラクルは本質的に悪いものではなく、むしろこれらの要素はより広義の環境において非常に大きな実際的価値を持っていますが、これによりプロトコルの攻撃確率が増加することになります。
需要に応じて機能を更新したり効率を改善したりする前提で、ソースコード(Primitives)自体も時折置き換え可能です。DeFiプロトコルをどのように作成するかを選択する際には、2つの重要な選択肢に直面します:すべてのユーザーデータと外部条件の依存を比較的中央集権的な単一プロトコルに委ね、ガバナンスに参加する意欲のある少数のトークン保有者に委託するのか?それとも市場のすべての参加者の所有権を重視し、ユーザー自身がプロトコルとサービスプロバイダーを決定するのか?
業界の参加者と開発者は、より去中心化で無許可、高い組み合わせ性を持つDeFiを構築することに尽力しており、これにより業界全体の安全性と弾力性を向上させることを目指しています。DeFiの未来の発展方向について、私たちはそれがより安全で効率的な運用方式で伝統的金融の市場シェアを占め続けることを期待しています。
解説および参考文献:
[1] https://rekt.news/leaderboard/ [2] https://medium.com/@omniscia.io/euler-finance-incident-post-mortem-1ce077c28454 [3] https://www.investopedia.com/terms/l/loantovalue.asp [4] htts://www.paradigm.xyz/2023/05/blend [5] https://github.com/euler-xyz/uni-v3-twap-manipulation/blob/master/cost-of-attack.pdf [6] https://medium.com/chainlight/the-suspension-of-compound-finances-ceth-market-causes-and-solutions-b106c2e1c922 http://www.nascent.xyz/idea/youre-writing-require-statements-wrong https://www.nascent.xyz/idea/why-defi-is-broken-and-how-to-fix-it-pt-1-oracle-free-protocols