ボンゾ貸出を破壊した空の署名:900万ドルのヘデラ攻撃の事後分析

ボンゾ貸出を破壊した空の署名:900万ドルのヘデラ攻撃の事後分析

2026/07/15 11:18:00
カスタム画像
数学とコンピュータ科学において、ゼロは空虚、すなわち値の絶対的な不在を表します。しかし、分散型金融(DeFi)という繊細で過剰に接続されたエコシステムでは、最近、チェックされていない「ゼロ」パラメーターがデジタルのマスターキーとなりました。わずか数分で、この単一のチェックされていない空の値が、有名な貸付プラットフォームから900万ドル以上を解錠し、吸い取りました。
 
この壊滅的な攻撃の被害者は、Hederaネットワーク上で運営される最大の貸出プロトコルであるBonzo Lendでした。2026年7月、同プロトコルのロックされた総価値(TVL)は一瞬で77%急落しました。Hederaコミュニティにパニックが広がる中、観察者は漏洩の原因を急いで特定しようとしました。
 
重要なのは、この災害がHederaの基盤となるネットワークコンセンサスの失敗によって発生したわけでも、Bonzo Lendの核心的な貸出計算が誤っていたわけでもないことです。代わりに、この災害は、サードパーティの価格フィードプロバイダーであるSupra Oraclesにおける重大な署名検証の脆弱性から生じました。これは、「何もなし」に関する微細な論理的見落としがDeFiの巨大企業を崩壊させた後の検証です。

攻撃の経過:数秒で5ドルから9,000,000ドルへ

ボンゾ貸出の悪用は、初期資本が最小限で、わずか数回の取引ステップで実行され、その単純さが際立っていました。
 
攻撃者は、Bonzo Lendにわずかで無視できるほどの担保を入金し、具体的には250 SAUCEトークンを入金しました。入金時のこの担保の価値はわずか数ドルで、コーヒー1杯を買うのもやっとの額でした。通常のプロトコルルールでは、この小額の担保では、他のデジタル資産に対してその価値の一部しか借入できません。
 
次に、攻撃者は価格オラクルの検証チェックを回避して攻撃を開始しました。彼らは、オラクルの検証契約に偽の価格更新トランザクションを生成して送信しました。このトランザクションには、極めて悪意のあるデータが含まれており、SAUCEトークンの価格を天文数字の12桁まで人為的に操作し、プロトコルに1つのSAUCEトークンが突然数十億ドルの価値があると誤って通知しました。
 
この偽の価格を押し通すために、システムは認可されたオラクルノードからの暗号署名を必要としていました。攻撃者は複雑な暗号を破ったり、秘密鍵を盗んだりするのではなく、署名フィールドを完全に空白のままにし、暗号署名の代わりにゼロの文字列を提出しました。
 
検証ロジックに深刻な不備があったため、空白の署名が有効と認識されました。これにより、ボンゾの評価システムは攻撃者の250 SAUCEのコラテラルを莫大な価値を持つ資産として登録しました。この突然の人工的な富を悪用して、ハッカーはボンゾの流動性プールから即座に663万USDCと3450万ラップドHBAR(wHBAR)を引き出し、警報が鳴る前にプロトコルを空っぽにしました。

「ゼロ署名」の欠陥を解明する:コードがどのように失敗したか

この攻撃が可能だった理由を理解するには、デジタル署名の数学的仕組みを解明する必要があります。分散型ネットワークでは、暗号署名がデジタルの蝋封印の役割を果たします。オラクルノードが価格更新を公開する際、プライベートキーを使ってデータに署名します。受信側のスマートコントラクトは、その署名がオラクルノードの認可されたパブリックキーと一致することを検証アルゴリズムで確認します。
 
通常、ユーザーが無効な署名を送信した場合、検証ライブラリは入力を処理しようとし、失敗します。暗号学的検証ライブラリは、不正な形式、空、または完全にゼロで埋められた入力に遭遇した場合、必ずしもアクティブなエラーをスローしません。代わりに、多くの標準ライブラリは、署名をパースできない場合にデフォルト値を出力するように設計されています。スマートコントラクトでは、このデフォルト出力はほぼ常に、長く続くゼロで表されるヌルアドレスです。
 
オラクルの検証契約における致命的な脆弱性は、このデフォルトのnullアドレスを扱う方法にあった。契約は、復元された署名者が認可されたオラクルノードアドレスと一致するかを確認するようにプログラムされていたが、開発者は基本的なルールを忘れていた:署名の長さがゼロであるか、復元されたアドレスがnull値を返すような入力を拒否するというルールである。
 
さらに、契約内の認可署名者状態が初期化されていない、またはヌルチェックを許可するように設定されていた場合、契約は署名の失敗によって返されたヌルアドレスを内部パラメータと比較し、一致と判定しました。検証ロジックが「署名回復の失敗」と「有効な認可署名者」を区別しなかったため、契約は空の署名を絶対的な許可と見なし、偽の価格フィードを承認しました。

オラクルのジレンマ:DeFiレゴは最も弱いリンクの強さにしか依存しない

DeFiは、「Money Legos」のように異なるプロトコル、トークン、ツールが連携して複雑な金融アプリケーションを構築できる「コンポーザビリティ」で称賛されています。コンポーザビリティは急速なイノベーションを可能にしますが、同時にシステム全体の脆弱性ももたらします。基本的な構成要素に一つの欠陥があるだけで、全体の構造が崩壊する可能性があります。
 
Bonzo Lendの攻撃は、この脆弱性を完璧に示しています。Bonzo Lend自体は、セキュリティ監査を完了した整備された貸出プロトコルでした。しかし、このプロトコルは、外部のオラクルに正確な価格情報を提供することを信頼しなければなりませんでした。オラクルの検証システムが偽の価格を受け入れた瞬間、Bonzoの貸出契約はその通りに実行され、資金が豊富な「富裕な」ユーザーが資産を借入できる状況となりました。
 
以下の表は、攻撃中の構造的責任の分配を示し、防御ラインが崩れた場所を明らかにしています:
コンポーネント 意図されたシステム上の役割 不正アクセス時のパフォーマンス 構造的なレッスン
Hederaコンセンサスレイヤー 台帳の状態を安全に保ち、取引を順序立てて処理し、ネットワークの稼働時間を維持してください。 ゼロのダウンタイムおよびネットワークレベルの攻撃で完璧に実行されました。 セキュアなネットワーク合意層は、アプリケーションレベルの安全性を保証しません。
Supra Oracle 署名され、暗号的に検証された正確な資産価格データを提供します。 null署名の拒否に失敗しました。不正な価格を公開しました。 依存関係はゼロトラスト検証パラダイムで扱う必要があります。
Bonzo 貸出 入金資産を管理し、借入の健康比率を監視して、借入を処理します。 入力される価格データを盲信し、価格の急騰を制限しなかった。 スマートコントラクトは、依存関係の失敗に耐えるために防御的なロジックを実装しなければなりません。

ホワイトハットの介入:ハッカーとの100万ドルの競争

攻撃が公開台帳上で展開する中、劇的な二次イベントが発生しました。パブリックブロックチェーンでは、トランザクションは確定される前に「メムプール」で可視化されます。この透明性により、悪意のある者や倫理的な参加者双方が、攻撃をリアルタイムで分析できます。
 
主要な攻撃者がプロトコルの資金を引き出し始めた直後、独立したセキュリティ研究者(一般的に「ホワイトハット」ハッカーと呼ばれる)がアクティブな脆弱性を発見しました。プロトコル全体が空になる直前であると認識したホワイトハットは、同じゼロ署名の脆弱性を即座に実行し、約100万ドルの資産を出金しました。
 
この戦術は「フロントランニング」と呼ばれ、Web3セキュリティにおける一般的な防御策です。ホワイトハットが最初に資金を引き出したことにより、悪意のある攻撃者がその流動性プールの一部を盗むことを防ぐことができました。
 
成功した引き出し後、ホワイトハットは直ちにBonzo Lendチームと連絡を取りました。本人確認と意図の確認後、このエシカルハッカーは、100万ドル全体をプロトコルの回復アドレスへ安全に返却しました。主要な攻撃者は依然として資金の大部分を持ち逃げしましたが、この迅速な対応によりコミュニティの資産の重要な部分が守られ、Web3セキュリティの独自で協調的な性質が示されました。

数百万を追いかける:盗まれた資金がHederaエコシステムからどのように流出したか

ハッカーが偽の担保に対して数百万ドル分のUSDCとwHBARを借り入れた後、彼らの主な目的は、プロトコルが契約を一時停止する前にヘデラエコシステムから脱出することに移った。
 
攻撃者は、盗まれた資産を元の形態のまま保持しませんでした。Hedera上で人気の分散型取引所SaucerSwapを使用して、ハッカーは借りたトークンを、中央集権的な凍結メカニズムを回避するために、流動性の高いステーブルコインとネイティブ資産に迅速に交換しました。
 
トークンの交換直後、攻撃者はクロスチェーンブリッジを活用し、特にLayerZeroを経由して資金を転送しました。資産をブリッジすることで、ハッカーは500万ドル以上もの盗難資金を直接Ethereumメインネットに移動させました。
 
アセットがEthereumのような流動性が高く、大規模なネットワークに移動すると、追跡および回収が指数的に困難になります。資金は数百の新規アドレスに分割され、分散型プライバシーミクサーに預けられたり、非預託型プライバシーコインと交換されたりします。この迅速で自動化された逃走ルートは、リアルタイム監視と即時の緊急停止が、現代のクロスチェーン攻撃に対する唯一の有効な防御手段であることを示しています。

厳しい教訓:DeFiプロトコルがオラクルの災害から自分自身を守る方法

900万ドルの損失は非常に高価な教訓ですが、今後の統合エラーからアプリケーションを守ろうとするスマートコントラクト開発者にとって、貴重な洞察を提供します。
 
ゼロ署名の脆弱性を防ぐため、開発者は厳格で防御的なコーディング手法を採用する必要があります。主な構造的な改善には以下が含まれます:
  • 明示的なヌルアドレスの検証:署名検証関数が成功したと仮定してはいけません。すべての暗号学的検証ルーチンは、署名の長さがゼロより大きいことを明示的に確認し、出力アドレスがヌル値(0x00...00)に解決しないことを検証しなければなりません。ヌル値が返された場合、トランザクションは直ちにロールバックしなければなりません。
  • 冗長なオラクルアーキテクチャ:単一のオラクルプロバイダーに依存すると、単一障害点が発生します。堅牢なDeFiプロトコルは、複数の独立したオラクルネットワーク(Chainlink、Pyth、Supraなど)から資産価格を同時に取得すべきです。あるフィードが他のフィードの中央値と著しく異なる場合、プロトコルはその不一致を検出しそして自動的に操作を一時停止すべきです。
  • オンチェーン価格サーキットブレーカー:貸出プロトコルは、レート制限と価格偏差の境界を実装しなければなりません。オラクルが、1ブロック内でトークンの価値が兆倍に増加したと主張した場合でも、スマートコントラクトの内部サーキットブレーカーはその更新を異常と判断し、手動の管理者的検証が行われるまで、借入や清算のアクションを停止しなければなりません。

スマートコントラクト監査の未来:境界をテストする必要性

Bonzo貸出の脆弱性は、現在のWeb3監査手法に存在する重要な制限を露呈しています。多くのセキュリティ監査は、契約のビジネスロジックが想定される条件下で正しく機能することを確認することに重点を置いており、これはしばしば「ハッピーパス」テストと呼ばれます。
 
しかし、現実の攻撃者は理想的なパスに従うことはありません。彼らは境界条件、未初期化状態、予期しない入力を特に探します。セキュリティ業界は、コードがメインネットにリリースされる前に隠れた脆弱性を発見するため、積極的なエッジケーステストへの転換を図る必要があります。
 
これを実現するには、プロトコルはファジングや形式的検証といった高度なテスト手法を必須の標準としなければなりません。ファジングとは、自動化されたツールを使用して、スマートコントラクトに数百万のランダムで不正な、または空の入力(空のバイト文字列やヌル署名など)を送り込むことを意味します。検証用コントラクトが厳格なファジングを受けていれば、ゼロ署名のバイパスは即座に検出されていたでしょう。
 
最終的に、サードパーティのオラクルプロバイダーも、より高いセキュリティ基準を受け入れる必要があります。これらのデータフィードは、数億ドルに及ぶ経済活動の基盤となっているため、その検証コードは、それらが支えるレイヤー1ネットワークと同様の厳格な審査を受けるべきです。

結論:信頼不能なエコシステムにおける信頼の回復

Bonzo貸出の攻撃は、スマートコントラクトの容赦ない性質を鮮明に示しています。Web3ではコードが法律であり、EVMはあなたの意図を気にしません。「何もなし」に関する微細なロジックの隙間が、数年の開発と数百万ドルのユーザーの信頼を一瞬で消し去る可能性があります。
 
攻撃後、Bonzo LendとSupra Oraclesは迅速に脆弱性をパッチし、残るインフラを安全に保ちました。この出来事は痛手でしたが、得られた教訓は、DeFi全体の統合基準をより安全なものへと導くことでしょう。開発者と投資家双方にとって、最終的な教訓はシンプルです:統合のセキュリティを当然のことと考えず、コードの限界をテストし、システムに何も入力しなかった場合に何が起こるかを常に確認してください。

FAQ:

Q1: 「ゼロ署名」バグは、ブロックチェーンの暗号技術そのものが破綻したことを意味しますか?

いいえ、デジタル署名と公開鍵暗号の背後にある数学的原理は完全に安全です。この攻撃は、暗号ライブラリの出力を処理するスマートコントラクトに存在した論理的なプログラミングエラーによって引き起こされました。ライブラリは空白の署名が与えられたときに正しくnull値を返しましたが、コントラクトはそのnull値を成功した検証と誤って解釈しました。

Q2:ボンゾ貸出は、なぜSAUCEの異常に膨らんだ価格を自動的に信頼したのですか?

貸出プロトコルはモジュール設計されており、資産価格の決定という複雑なタスクを専用のオラクルネットワークに委託します。ボンゾ貸出は、オラクルの価格フィードを絶対的な真実として受け入れ、独立したローカルな健全性チェックや価格変動制限を一切設けていないため、人工的に発生した兆倍の価格上昇を許容し、借入取引を実行させてしまいました。

Q3:一般的なDeFiユーザーは、オラクル関連のハッキングから自分自身を守るために何ができるでしょうか?

ユーザーはプロトコルのコードを制御できませんが、自身のリスクを管理することはできます。資本を守るため、資産を複数の独立したプラットフォームに分散させ、ニッチな資産に単一のオラクルフィードに依存するプロトコルを避けて、複数のソースからなるオラクルシステムを公開的に統合し、堅牢なオンチェーン緊急回路遮断機能を備えたプラットフォームを探してください。
 
免責事項:このコンテンツは情報提供を目的としたものであり、投資アドバイスを構成するものではありません。仮想通貨への投資にはリスクが伴います。ご自身で調査してください(DYOR)。

免責事項: このページは、お客様の便宜のためにAI技術を使用して翻訳されています。最も正確な情報については、元の英語版を参照してください。