autorenew
Balancerとそのフォークが1.2億ドルの被害:不変量操作攻撃を解説

Balancerとそのフォークが1.2億ドルの被害:不変量操作攻撃を解説

皆さん、こんにちは、クリプト愛好家の皆さん!分散型金融(DeFi)の世界にどっぷり浸かっている人も、ミームトークンに興味を持ち始めたばかりの人も、流動性プールがトレードを支えている仕組みは耳にしたことがあるはずです。しかし、賢いハッカーがシステムを突く方法を見つけたらどうなるでしょうか?まさに今回、Balancerとそのコードをフォークした複数のプロジェクトが狙われ、複数のブロックチェーンで合計約1.2億ドルの損失につながりました。これはBlockSecのPhalconによるアラートを基に、段階的に解説します。

最初のアラート:マルチチェーンでの大規模被害

事の発端はPhalconがX(旧Twitter)で出した緊急の通報でした。カスタマイズ可能な流動性プールを作る人気の自動マーケットメイカー(AMM)プロトコルであるBalancerと、そのコードをフォークした複数のプロジェクトが深刻な被害を受けたと報告されました。フォークとは、元のコードのコピーや派生を指し、Optimism上のBeethoven XやSonic上のBEETSなどが例です。

被害額はかなりのものです:

  • Ethereum: Balancerで7,000万ドル
  • Base: Balancerで390万ドル
  • Polygon: Balancerで11.7万ドル
  • Sonic: BEETSで340万ドル
  • Arbitrum: Balancerで590万ドル
  • Optimism: Beethoven Xで28.3万ドル

Phalconは類似コードを使っているプロジェクトに対して警戒を呼びかけ、システムの綿密な監視を推奨しました。オリジナルのアラートはここで確認できます:here

この種の攻撃は単なる一過性の出来事ではなく、特にミームトークンのローンチでしばしば利用されるこうしたプールに存在する脆弱性を改めて示すものです。もしあなたの推しの犬テーマのコインがBalancerスタイルのプールに流動性を預けているなら、今回のような事件は価格や取引に波及効果をもたらす可能性があります。

エクスプロイトの詳細:どうやって起きたか

Phalconのフォローアップ投稿はこの攻撃を「非常に高度なエクスプロイト」と位置づけ、根本原因は「invariant操作(不変量操作)」でした。簡単に言えば、Balancerのようなプロトコル(CurveのStableSwapモデルに由来する)はプール内の総価値を表す数学的な不変量を利用して価格を計算し、取引の公正さを保っています。

攻撃者はこの不変量を操作して、Balancer Pool Tokens(BPT)の価格を人工的に下げました。BPTはプールにおけるあなたのシェアを表すトークンです。価格を意図的に下落させることで、安くBPTを購入し、差益を得るために元の資産へスワップして利益を確定しました。

例として、Arbitrum上での攻撃トランザクションを見てみましょう。エクスプロイトは単一の「batch swap」(複数のトレードを一括で実行する方法)の中で、巧妙に三段階で進行しました:

  1. セットアップ(罠の設置):攻撃者はBPTを基礎資産にスワップし、あるトークン(cbETH、CoinbaseのステークされたETHのラップ版)のバランスを微調整して正確な「丸め境界(rounding boundary)」に到達させました。要するに、あるトークンの量を9に設定し、プールの計算に不具合が生じるように仕込みました。

  2. 操作の誘発:次に、別のトークン(wstETH、wrapped staked ETH)とcbETH間で精巧に選んだ量8でスワップを行いました。プロトコルがスケーリングと切り捨て(精度問題を避けるためのブロックチェーン上の丸め)を扱う方法により、あるトークンの計算上の変化量(Δx)が本来より小さく算出され—だいたい8.918からちょうど8に—なりました。これによりアウトプット(Δy)が過小評価され、不変量が縮小してBPT価格が急落しました。

  3. 出金(現金化):最後に攻撃者はスワップを逆に実行して資産をプールに戻し、割安になったBPTを取得しました。プールの残高が正常化していく間に、利益を確保したわけです。

Phalconの解析にあるコードのビジュアルはこんな感じです:

upscale と downscale 関数を用いた Balancer エクスプロイトを示すコードスニペット

技術的に言えば、鍵は upscaledownscale のような関数に存在する丸め誤差の悪用でした。これらは小数点桁に基づいてトークン量を調整する関数で、攻撃者はごく小さな不一致を作り出してそれを何百万ドル規模の損失にまで膨らませました。

詳細な解析はPhalconの投稿でさらに掘り下げられています: here

これがミームトークンやDeFiにとって意味すること

Balancerはブルーチップ資産だけでなく、ミームトークンを支えるクリエイティブなプールにも広く使われています。もしプロジェクトがBalancerをフォークしてこうした問題を修正していなければ、流動性提供者(LP)は同様のリスクに晒されます。ミームコインはバイラルな盛り上がりと短期間のローンチが多いため、これらのプロトコルを利用して取引の初期流動性を確保することが多く、エクスプロイトがコミュニティの資金を消失させたり、価格を一夜にして暴落させたりする可能性があります。

この攻撃は、ブロックチェーンにおける堅牢な監査とリアルタイムの監視の重要性を強調しています。Phalconのようなツールはこれらの脅威を早期に検出するのに役立ちますが、DeFiが進化するにつれてハッカー側の手口も進化します。もしミームトークンを構築したり投資したりするなら、基盤となるテックスタックに注意を払ってください。

得られた教訓と今後の対応

今回を受けて、Balancerや影響を受けたフォークはパッチ適用や被害回復に追われているはずです。コミュニティ全体として取るべき対策は次の通りです:

  • すべてを監査する:フォークしたコードであっても改めて精査する必要があります。
  • 積極的に監視する:Phalconのようなサービスを利用して脅威検知を行う。
  • リスクを分散する:流動性を一つのプールに集中させない。

どうか安全に行動してください。暗号の世界では知識が最良の防御です。このエクスプロイトや類似の事例について意見があれば、ぜひコメントで教えてください!

おすすめ記事