DeFiで大きな事件が起きた。
Curveのプールがエクスプロイト(資金流出)に遭い、CRVトークンが暴落。これを引き金にDeFi全体を巻き込む混乱が生まれている。
今回は、この混乱を整理すること、何が起き、原因は何で、どうしてそんなことが起きたのかといった重要なポイントに絞って解説する。これを読めば執筆現在までの状況を網羅できるはず。
ほぼ海外の二次情報をまとめたものになっている。それでも、DeFiの混乱状態にアクセスできていない人も多いはず。今回はそんな方向けの内容となっている。
それでは本日もよろしくお願いします。DIVE INTO CRYPTO!
このニュースレターでは、クリプトを中心にテックトレンドの筆者独自の洞察を提供しています。読者の経済的利益とビジネスの優位性のサポートを目指していますので、興味がある方はぜひ購読お願いします。
🧵Contents
Curveエクスプロイトの概要
エクスプロイト事件で現れたMEVホワイトハッカー
CurveファウンダーMichael EgorovのCRV清算危機
DeFiの混乱はいつ収束できるのか
Curveエクスプロイトの概要
原因は、VyperというEVM対応開発言語のコンパイラにおいて、古いバージョンのバグによるリエントランシーが可能であったこと。
2023年7月30日22時ごろ、攻撃者であるハッカーがVyperの当該バージョンを使用したCurve DEXの流動性プールからトークンを抜き取るエクスプロイトが発生した。
リエントランシーエクスプロイト(Reentrancy Exploit)とは、一般的に以下のような攻撃手法のこと。
スマートコントラクトが脆弱性を持つ場合に発生する可能性のある攻撃の一種
攻撃者がスマートコントラクトの関数を呼び出し、この関数が外部コントラクト(攻撃者が制御するコントラクト)に対して呼び出しを行う
外部コントラクトが元のスマートコントラクトの関数を再度呼び出す。この時点で、元の関数はまだ完全には終了していないため、元の関数の状態(例えばトークン残高)は変更されていない
このプロセスが繰り返され、攻撃者が元のスマートコントラクトから(通常はEther)を引き出す
要するに、減らない銀行残高から通常ありえない引き出しを行う手法だと考えれば分かりやすいと思う。
Reentrancy Attackについては、以下の記事が詳しく解説されている。
参考:Reentrancy Attacks on Smart Contracts Distilled
エクスプロイトプール一覧
エクスプロイトが起きたのは、複数のプールに渡る。以下がその概要。Curve Pool Reentrancy Exploit Postmortem July 30th, 2023より引用。
・7月30日13:10~(UTC)
Metronome:msETH/ETH |866.55WETH(~160万ドル)、 959.71msETH(~180万ドル):エクスプロイトtx
Alchemix:alETH/ETH |7,258.70WETH(~1,360万ドル)、4,821.55alETH(~900万ドル):エクスプロイトtx
Curve:CRV/ETH |7,193,401.77CRV(~エクスプロイト時510万ドル)、7,680.49WETH(~1,420万ドル)、2,879.65ETH(~540万ドル):CRV/ETHプールには2つのエクスプロイトトランザクションがあった(2つ目はホワイトハット):tx1:tx2
影響を受ける可能性のあるもう一つのプールは ArbitrumのTricrypto
・7月30日16:44(UTC)
Vyper公式Twitterは、Vyperバージョン0.2.15、0.2.16、0.3.0に影響するバグを認める。
影響を受けたCurveのプールは、それぞれ前述のVyperバージョンのいずれかを使用しており、ネイティブETHとペア。
WETHとペアになっているプールは影響を受けていない。Curveのコントラクトは、ネイティブトークンを送信するためにraw_callを行う際に脆弱になる、ということが指摘されている。
CRV/ETHエクスプロイトにフォーカス
CRV/ETHプールで起きたエクスプロイトのみ、詳しい部分を引用する。
エクスプロイト1
7月30日19:08 UTCに、CurveプールからCRVとETHを流出させるエクスプロイトが発生。
攻撃者は利益として7,193,401.77 CRV (~エクスプロイト時510万ドル)と7,680.49 WETH (~1,420万ドル)を保持。
エクスプロイト2
7月30日22:00UTCに、プールに残っていた2,879.65ETHを流出させる2つ目のエクスプロイトが発生。
これはc0ffeebabe.ethによるホワイトハット行為で、収益はその後すぐにCurveチームに返却される(tx)。
被害額を合計すると以下の通り:
pETH/ETH:約1,100万ドル
msETH/ETH:約160万ドル + 約180万ドル = 約340万ドル
alETH/ETH:約1,360万ドル + 約900万ドル = 約2,260万ドル
CRV/ETH:約510万ドル + 約1,420万ドル + 約540万ドル = 約2,470万ドル
これらを合計すると、被害総額は約1,100万ドル + 約340万ドル + 約2,260万ドル + 約2,470万ドル = 約7,170万ドル
となる。ハッキング被害総額としてそこそこ大きい。以上がエクスプロイトの概要。
DefiLlamaのデータによると、CurveのTVLは、攻撃以来急落しており、7月30日の32億6000万ドルから17億4000万ドルへと、24時間で約46%減少した。
根本的な原因
Vyperは、コントラクトの安全性を確保し、監査が容易になることを目的として、意図的に Solidityよりも機能を絞っているとされている(Ethereum Foundation)。
開発言語の脆弱性は予想されていたが、オープンソースにって運営されているVyperの脆弱性に対する改善を行うための十分な資金的余裕がなかった可能性が高かったことが指摘されている。
上記の記事で語らていることを引用する。
多くの人々がVyperを非難しているが、それは見当違いだと我々は考えている。 このような攻撃は 、もっと コンパイラの多様性を減らすのではなく、増やす必要性を示している 。 コンパイラー・エンジニアリングは、資金不足、人員不足、能力不足に陥っている。 よりセキュアなコンパイラには見返りがないからだ。 コンパイラーはオープンソースのプロジェクトであり、トップクラスの開発者が情熱を持って取り組む必要がある。 それなのに、エコシステム全体の安全性を確保することが期待されているのだろうか?
CRV/ETHプールでは、悪意のあるエクスプロイトしたハッカーが引き出しを行った後、そのトランザクションをフロントランニング(先回り)したホワイトハッカーが現れた。
このエピソードはMEVを理解する上で非常に興味深く、以下で簡潔にまとめる。
エクスプロイト事件で現れたMEVホワイトハッカー
c0coffeebabe.ethというホワイトハットのMEVボットオペレーターが、CRV/ETHプールからエクスプロイトされたETHを先回りしてプールからトークンを引き抜いた。
先回りで取り返した2,879ETHはCurveの管理するプールに返却された。
倫理的なハッカーと悪意のあるアクターは互いに争ったといえる。前者は資金を守るため、後者は脆弱性を利用しようとした。
どちらも、自分たちの取引ができるだけ早く新しいイーサリアムブロックに受け入れられるよう、高いMEV報酬を支払うことになった。
実はブロックチェーンの世界ではこのようなプロフェッショナルな攻防が繰り広げられている。
参考:Ethereum MEV rewards hit $11 million in a single day due to Curve exploit
CurveファウンダーMichael EgorovのCRV清算危機
CurveファウンダーのMichael Egorov(マイケル・エゴロフ:TwitterではMichというあだ名が付いた)は、Curveのエクスプロイトを受け、CRVプライス価格の暴落により連鎖的な危機に直面した。
彼は、Curve DAOのガバナンストークンであるCRVを担保にAAVE V2やFraxlendに1億1000万ドル以上の借入残高である複数のポジションを有していた。清算ラインは、CRVが0.35ドル。
これがなぜ危機なのか。それは、清算がしばしば大きな売り圧力に繋がる可能性があり、それが連鎖的にDeFi全体に広がる可能性があるからだ。
CRVのプライスがさらに暴落すれば、CRVを担保にした複数のプロジェクトで不良債権(回収できない債権)が大量に発生するリスクがある。影響を受けた他のDeFiプロトコルもこの不良債権を補填するためにさらに保有しているトークンを売る必要がでる…といった負の連鎖が想定される。
CRVはCurve Warによって様々なプロトコルがトレジャリーによりマネジメントしていた。その負の連鎖の危険性はCurve Warを理解すると納得できるはず。
しかし、8月1日時点でMichはOTC(相対取引)で市場価格を大幅に下回るCRV0.4ドルで数十人との取引を行った。この取引相手が物議を醸したことのある著名人ばかりでさらに話題になった。
代表的な人物の概要は以下のとおり。
最近米国証券取引委員会に訴えられたトロン創業者のジャスティン・サン
2万2000ETHを横領したとして告発された技術系起業家のジェフリー・ファン
投資とマーケットメイクの境界線を曖昧にしていると指摘されたDWFラボ
The Blockはさらに、この取引にはCRVの価格が0.80ドルを超えた場合に購入者が売却できるオプションが付いていると報告している。
これらの条件が契約上強制されるのか、スマートコントラクトで強制されるのかは不明。
Michは、これら著名人からのかき集めの資金調達し、1,700万ドル以上のCRVの借入を返済し、ヘルスファクターを大幅に改善することに成功した。
参考:Curve’s Egorov turns to notable counterparties to bail out his DeFi positions
DCFGodは、以下のような手順でOTCで入手したCRVから利益をあげていることが指摘されている。
Michが調達した1,500万ドル分は、Fraxlendの借入返済に充てられた。AaveではなくFraxlendなのはなぜか?
Frax Financeでは、Egorovは現在59m $CRVを供給し、対して15.8m FRAXの債務がある。
これはAaveのポジションよりもCRVの担保とステーブルコインの債務が少ないが、Fraxlendの時間加重可変利率により、CRVに対して大きなリスクをもたらすためだ。
もし返済が行われず100%を超えた利率は12時間ごとに2倍になり、3.5日で10,000%を超えることになってしまう。
このような清算リスクに対処するため、CurveでcrvUSDとFraxlendのCRV/FRAX LPトークンからなるプールに$CRVの報酬100kが割当られた。
これは、貸出マーケットへの流動性を奨励し、利用率を下げて、彼の債務が制御不能になるリスクを減らす試み。
立ち上げから4時間後、このプールは$2mの流動性を引き付け、利用率を89%に下げた。しかし、このような清算リスク回避のために、CRVの排出を操作する行動に疑問を持つ読者もいるかも知れない。
なお、エクスプロイターの動向をDuneにまとめてくれているユーザーがいる。今後の動向はオンチェーンでも追いやすくなってきた。
これらの状況は未だ流動的。Twitterで追加の情報を補足していくつもりのため、よろしければフォローしてください。
DeFiの混乱はいつ収束できるのか
正直、現時点ではいつ収束できるのか分からない。
問題の発端は、Vyperの問題であったが、言語の脆弱性となれば、Curveといえど予測できなかったといえると思う。
これはCurveが問題だったといより、Vyperのバージョンを活用している全てのDeFiプロトコルにリスクがあることを示している。
このような状況であれば、個人投資家など技術に明るくないものにとっては、DeFiに投資する意義を失うのも納得できる。Vyper以外のコードによって作られたプールは、安全なのかどうか判断ができなくなってしまうからだ。
Vyperがオープンソースで開発されていれるプロジェクトであることからも、業界の未成熟であるがゆえの脆弱性を露呈したといえる。
流動性提供がへれば取引も減る、これはCurveだけにとどまらずDeFi全体を巻き込むものになっていくと考えられる。
一方で、今回の影響がDeFiをどのように変えるのかについて興味があるとも思う。よりセキュアなコントラクトの在り方が模索されていくのかも知れない。
なおcrvUSDは、この騒動の中ペグを維持できない可能性がある。いまのところ問題ないがストレステストを受けている認識は必要。現状がストレステストのピークであることを祈る。
本日は以上です。
もしこの記事を気に入っていただけたならいいね、Twitterでのシェアをしてだけたらとても嬉しいです。感想や質問はコメントでいただけると励みになります。
コミュニティ
本コーナーでは、Twitterでいただいたリプライやニュースレターの感想を紹介しています。いつもありがとうございます。
おすすめのニュースレター
ぼくはNFT関連の情報はこのニュースレターで把握しています。今週は、海外PJのコラボ状況やGucciがNFTホルダー向けに展開するプロジェクトが紹介されていて興味深かったです。
免責事項
このニュースレターは、教育目的の情報提供を主旨としており、金融に関するアドバイスではありません。ご自身での調査やデューデリジェンスが必要です。