Balancer V1スタイルの流動性プールのハッキング
Balancer V1スタイルの流動性プールが、8月31日に約234,000ドルをラウンディングエラーの悪用によって失ったと、ブロックチェーンセキュリティ企業のSlowmistが報告しています。
このバグは、昨年11月にBalancerのV2プールから1億1600万ドルを引き出したのと同じカテゴリーのものです。Balancerは以前にも同様のシナリオを経験しており、歴史は再び繰り返されました。
ハッキングの詳細
数時間前、Slowmistが今回のハッキングが行われたBalancer V1スタイルのプールに対する新たな悪用を強調しました。今回の被害額は234,000ドルと比較的控えめですが、Balancerの歴史に照らせば小額とはいえ、このバグファミリーは明らかであり、プロトコルがスワップ中にトークンの量を計算する際のラウンディングエラーが原因です。
この欠陥は、昨年11月に攻撃者が複数のチェーンにわたってBalancerのV2プールから1億1600万ドルを引き出すことを可能にしました。
攻撃のメカニズム
Slowmistの技術的分析によると、攻撃者はプールのjoinswapPoolAmountOut関数を標的にしました。この関数は、呼び出し元が受け取りたいBPT(Balancerプールトークン)の数を指定できるもので、契約は必要な入力を計算するために逆算を行います。
この逆算はcalcSingleInGivenPoolOutによって処理され、18桁の固定小数点数学を使用します。攻撃者は一連の公開スワップを実行することで、プールのWBTC準備金をほぼゼロに圧縮しました。準備金がほぼ消失したため、数学的に必要な入力がWBTCのわずか1サトシ、つまり数セントに丸められましたが、契約は攻撃者が要求したBPTの全額を発行しました。
セキュリティの欠陥
Slowmistは、このプールが最低限の有効入力、最低プール残高、相対誤差検証など、基本的な安全対策を欠いていたと述べています。契約のMIN_BALANCEチェックは、バインドおよびリバインド関数の間のみ強制され、通常のスワップ中には適用されませんでした。
Slowmistは、攻撃者のウォレットと攻撃契約アドレスを警告の一部として公開しました。
過去のハッキングとその影響
3月、プロトコルの背後にあるBalancer Labsは、昨年11月のハッキングから5ヶ月後に法的リスクの増大を理由に法人としての運営を停止すると発表しました。このハッキングにより、プロトコルのロックされた総価値は約7億7500万ドルから約3億ドルに急落しました。
共同創設者のフェルナンド・マルティネッリは、その際、DAOが「過去のセキュリティインシデントの責任から逃れるため」に、よりスリムな形で運営を引き継ぐと述べました。
再発の懸念
元のハッキングの背後にあるウォレットも活発で、5ヶ月後に再び現れ、1,100 ETHをThorchainを通じて移動させました。今日のハッキングは、Balancerの独自のガバナンストークンではなく、ビットコインのトークン化された表現であるWBTCを狙いました。
これは、ビットコインの価格が78,000ドル近くで安定している一方で、分散型金融(DeFi)プロトコル内に存在するラップされたトークン化されたバージョンが独自のリスクを伴うことを思い起こさせるものです。
メタバースプラットフォームのThe Sandboxは最近、悪用されたブリッジによって攻撃者がBaseとBNBで裏付けのないSANDを発行できたことを確認しました。