ちょうど7月30日、ブロックチェーン技術と仮想通貨業界は深刻な危機に直面した。 Vyper プログラミング言語を使用して開発された一部の分散型金融 (DeFi) プロトコルが、脆弱性を悪用したハッカーによって攻撃され、数千万ドルのデジタル資産が盗難されました。これらの攻撃されたプロトコルには、Curve Finance、Alchemix、PEGd、Metronome などが含まれ、さまざまなステーブルコインやトークンが関与します。この事件はコミュニティにパニックと疑念を引き起こし、ブロックチェーン技術と仮想通貨業界のセキュリティ、信頼性、持続可能性における欠陥と課題も暴露しました。
プロセス
7月30日22時04分、PETH/ETHが攻撃されました。
JPEG'dが攻撃され、少なくとも約1000万ドルの損失があったことが明らかになった。 JPEG 攻撃の根本原因はリエントランシーでした。攻撃者は、流動性を削除するために、remove_liquidity 関数を呼び出すときに、add_liquidity 関数を再入力することによって流動性を追加しました。これは、add_liquidity 関数に再入力する前に残高が更新されたため、価格計算でエラーが発生したためです。
22:50 msETH-ETH が攻撃されました。
23:34にalETH-ETHが攻撃されました。
0:44 分 vyper 正式リリース
Vyper バージョン 0.2.15、0.2.16、および 0.3.0 は再入ロック障害の影響を受けており、調査が進行中です。
0:45min Curve Finance がツイート
Vyper 0.2.15 を使用する一部の安定したプール (alETH/msETH/pETH) は、再入ロックの失敗により攻撃を受けています。現在、カーブは状況を評価しており、他のプールは安全です。さらにCurveは、「危険な組み合わせはVyperの影響を受けたバージョンと純粋なETHの使用である」と述べた。
03:08分
CRV-ETHが攻撃され、チェーン上のCRVは約0.08に低下しましたが、AAVEの価格はChainlinkから取得されているため、幸いなことにChainlinkは「CEX + DEX」の加重相場ロジックを採用し、最低価格の0.59ドルを相場に付けました。これによりカーブ創設者マイケル・エゴロフ氏のAAVEにおける地位は清算されていない。そうでなければ、一連の清算はDefi業界全体を破壊するのに十分でしょう。
翌朝集まって、Defi 全体がすぐに消えてしまったら、どんな感じになるか想像できるでしょう。元々は鉱山で安定した収入を得るつもりでしたが、起きてみると鉱山は崩壊していました。
その後の影響
これまでのところ、CurveFinance、Alchemix、PEGd、Metronome の合計 4 つのプロトコルがこの脆弱性の影響を受けています。これらのプロトコルによる損失の総額は約 7,000 万ドルで、これにはさまざまなステーブルコインやトークンが含まれます。具体的な損失額は以下の通りです。
・Curve Finance:主にCRV/ETHプールが攻撃されたため、約2,500万米ドル。
・Alchemix:約1,900万ドル、主にALCX/ETHプールへの攻撃によるもの。
・PEGd:約1,500万米ドル、主にPEG/ETHプールへの攻撃によるもの。
・メトロノーム:主にMET/ETHプールへの攻撃により約1,100万米ドル。
Curve Finance TVL は 24 時間で 43.6% 減少し、現在 18 億 4000 万ドルとなっています。Convex Finance TVL は 24 時間で 48.5% 減少し、現在 149 億ドルとなっています。
Vyperコンパイラの脆弱性
Vyper コンパイラの脆弱性は、Vyper プログラミング言語の特定のバージョンに存在する再入ロック障害の問題を指します。 Vyper は、イーサリアム仮想マシン (EVM) 専用に設計されたコントラクト プログラミング言語であり、より安全でシンプルで読みやすい言語と考えられています。多くの DeFi プロトコルは、Vyper を使用してスマート コントラクトを開発し、さまざまな金融機能を実装します。
再入ロックは、再入攻撃を防ぐメカニズムです。リエントランシー攻撃とは、あるコントラクトが別のコントラクトを呼び出すときに、最初のコントラクトが完了する前に、2 番目のコントラクトが最初のコントラクトを再度呼び出すことを意味します。その結果、最初のコントラクトが複数回実行され、データや資金が改ざんまたは盗まれる可能性があります。リエントラント ロックは、状態変数を設定することによって実装されます。コントラクトが呼び出されると、この変数はロック状態に設定され、コントラクトが実行されると、この変数はロック解除状態に設定されます。このようにして、コントラクトの実行中に別のコントラクトがこのコントラクトを再度呼び出そうとした場合、拒否されるため、再入攻撃が防止されます。
Vyper コンパイラの脆弱性は、Vyper の一部のバージョンで、再入ロックの状態変数が正しく設定および復元されず、再入ロックが無効になることを意味します。そのため、Vyper を使用して開発された一部のコントラクトが再入攻撃に対して脆弱になります。 BlockSec チームの分析によると、この脆弱性は Vyper の「use_eth」と呼ばれるオプションに関連しており、これにより契約は支払いまたは価値の保管方法としてイーサリアム (ETH) を受け入れることができます。コントラクトがこのオプションを使用し、ラップされたイーサ (WETH) を含むプールと対話する場合、コントラクトは再入攻撃に対して脆弱になる可能性があります。
この脆弱性の特徴は比較的隠蔽されており、一般的です。これは Vyper コンパイラーの内部ロジックに隠されており、開発者やユーザーが簡単に発見することはできません。これは Vyper の複数のバージョンで蔓延しており、複数の DeFi プロトコルとプールに影響を与えます。この脆弱性により、数千万ドルのデジタル資産がハッカーによって盗まれ、DeFiプロトコルとユーザーに多大な損失をもたらしました。同時に、DeFiプロトコルと、Vyperプログラミング言語とブロックチェーン技術に対するユーザーの信頼と信頼に打撃を与え、ブロックチェーン技術と暗号通貨業界に悪影響を及ぼしました。 、
今回の影響は完全には明らかになっておらず、おそらくさらに大きな嵐が巻き起こっているだろう。