Balancer v2で1.1億ドルの不正流出、「丸め誤差」と「時点決済」の組み合わせを突く ― 各チェーンの対応とDeFiプロトコルの課題【MCB FinTechカタログ通信】

2025年11月3日、DeFi(分散型金融)の主要なプロトコルであるBalancer v2と、そのコードをフォーク(派生)した複数のプロトコルが不正流出の被害を受けました。

流出はEthereum、Polygon、Base、Berachain、Sonicなど複数のブロックチェーンネットワークで確認されています。公式発表では被害総額は検証中であるとしていますが、一部の報道では合計1億1,000万ドル(約169億円)を超えると報告されています。2021年4月から4年以上にわたって稼働し、広く利用されてきたプロトコルの脆弱性を突いたもので、DeFiコミュニティに大きな影響を与えています。今回は、この不正流出の技術的な背景と、それに対する各チェーンの対応について見ていきます。

※本記事の内容は、マネックスクリプトバンクが週次で配信している、FinTech・Web3の注目トピックスを解説するニュースレター「MCB FinTechカタログ通信」の抜粋です。マネックスクリプトバンクが運営する資料請求サイト「MCB FinTechカタログ」にて、過去の注目ニュース解説記事を公開していますので、ぜひご覧ください。

VaultとPoolの分離設計が攻撃対象に

Balancer v2は、Ethereum上で稼働するDEX(分散型取引所)のひとつであり、DEXを構成している自動マーケットメーカー(AMM)のプロトコルです。AMMとは、スマートコントラクトを用いてトークンの取引を自動的に行う仕組みを指します。

Balancer v2の特徴は、開発者が流動性プール内のトークンの比率を決定できる点にあります。たとえば、Uniswapのような2トークンかつ50:50の流動性プールだけでなく、複数のトークンを、80:20や60:20:20などの異なる比率で組み合わせたカスタムプールを作成することができます。

この柔軟な設計により、Berachainの「BEX」やSonicの「Beets」など、複数のフォークの基盤となっているほか、他の多くのDeFiプロトコルからも利用されています。

また、Balancer v2は、すべての流動性プールのトークンを「Vault」という単一のコントラクトで管理し、「Pool」というコントラクトがトークンのスワップ(交換)時の価格計算ロジックを実行するという、他のAMMプロトコルとは異なる特徴的な仕組みとなっています。この設計は、トークンがVaultコントラクトに集約されるため、複数のプールをまたいだスワップ(Balancer v2ではbatchSwapと呼称)について、ガス代を抑えて実行できるという利点があります。

さらに、このbatchSwapには「deferred settlement(時点決済)」という仕組みが備わっており、トランザクションの最後で帳尻が合えば、フラッシュローンのように途中で一時的にトークンを借りることが可能です。

今回の不正流出の原因は、このbatchSwapにおけるEXACT_OUTスワップに含まれた脆弱性でした。Balancerが公開した公式のインシデントレポートによると、まず攻撃者はこのbatchSwapと時点決済の仕組みを悪用し、プールの流動性を意図的に極端に低い状態にしたとされています。その上で、攻撃者はEXACT_OUTスワップを実行しました。このスワップを「Composable Stable Pools(CSPs)」と呼ばれる特定のプールで実行する際の計算ロジックには、トークンの交換レートなどに用いられる非整数のスケーリング係数の計算結果を切り捨てる(mulDown/divDown)という「丸め誤差」が発生する脆弱性が含まれていました。

攻撃者は、CSPs上でbatchSwapを利用し、この微小な丸め誤差を一つのトランザクション内で何度も積み重ねることで、Vaultの計算上の残高と実際の残高に意図的な乖離を生じさせ、最終的に過剰なトークンを引き出すことに成功したのです。

複数チェーンにわたる影響と対応

Balancer v2のフォークである「BEX」が稼働していたBerachainは、ネットワーク自体を一時停止し、不正流出を無効化するハードフォークを実施しました。

また、同じくフォークである「Beets」が稼働していたSonicは、運営元であるSonic Labsが攻撃者のウォレットアドレスを凍結し、ガス代の支払いに必要なネイティブトークンの残高をゼロにする機能実装を行いました。

成熟したコードへの信頼とリスク

今回の不正流出が特に深刻に受け止められている理由として、Balancer v2のコードが長期間にわたり「安全である」と広くみなされてきた点にあります。

DeFiLlamaのデータによると、Balancer v2のVaultコントラクトは2021年4月のデプロイ以来、累計1,000億ドル近い取引量を処理しています。また、27のフォークが存在すると推定されており、DeFiエコシステムに深く組み込まれていたコードです。

さらに、Balancer v2のコードはOpenZeppelinやTrail of Bits、Certoraなど4つのエンティティから監査を受けていることも公表されています。

これほど成熟し、広く使われ、多くのエンティティによって監査されてきたスマートコントラクトに、デプロイ当初から存在する脆弱性が4年以上も見過ごされていたという事例は、極めて稀であると考えられます。

考察

今回のBalancer v2の事例は、スマートコントラクトのリスク評価の難しさを改めて浮き彫りにしました。

重要なのは、脆弱性が「丸め誤差」という単一の機能不全ではなく、batchSwapの時点決済機能とCSPsという特定のプールの特性が組み合わさり、複数の機能が意図しない形で相互作用した点にあることです。

これは、スマートコントラクトの監査において、個々の関数の正当性だけでなく、複雑な機能同士が組み合わされた場合のリスクについても、より高度な検証が求められることを示しています。

また、BerachainやSonicがハードフォークやウォレットアドレス凍結という中央集権的な手段で対応したことについては、ユーザー資産を保護するための現実的な対応であると評価する声がある一方で、特定のトランザクションを選択的に停止させる行為は、ブロックチェーンの検閲耐性や不変性といった特徴を損なうものであるとの批判も一部で見られます。DeFiが成熟し、より広く受け入れられるようになるにつれ、こうしたガバナンス上の難しい判断は今後も増えていくものと予想されます。

|トップ画像:Shutterstock

PR

ボーナスで始めるのにおすすめな国内暗号資産取引所3選

取引所名特徴

Coincheck
500円の少額投資から試せる!】
国内の暗号資産アプリダウンロード数.No1
銘柄数も最大級 、手数料も安い
無料で口座開設する

bitbank
【たくさんの銘柄で取引する人向け】
◆40種類以上の銘柄を用意
◆1万円以上の入金で現金1,000円獲得
無料で口座開設する

bitFlyer
初心者にもおすすめ】
◆国内最大級の取引量
◆トップレベルのセキュリティ意識を持つ
無料で口座開設する