なぜ監査を受けたプロトコルでも突破されてしまうのか?監査は一体何を検証しているのか?
スマートコントラクト監査の範囲はコード自体である:論理的な欠陥はないか、権限設計は厳密か、資金操作の経路は安全か。このプロセスの標準的な前提は「オラクルが返す価格は信頼できる入力である」というものである——監査員は通常、その価格の出所自体がどれほど堅牢かを検証しない。なぜならそれは別の技術領域(オラクルインフラと経済的安全性設計)に属しており、コントラクトコードレビューの範囲外だからである。
Balance Coinの事例は、まさにこのギャップを示す教科書的な例である。コントラクトコード自体にバグはなく、攻撃者もプログラムの論理的な欠陥を見つけたわけではない——攻撃者が狙ったのは「プロトコルがどの価格ソースを信頼するか」という設定層だった。つまり、あるプロトコルが「監査済み」と表示しているのを見た時、あなたが知っているのはコードに明らかな欠陥がないということであり、その価格入力メカニズムが同等の厳密さで検証されているということではない——これらは分けて評価すべき2つの問題である。
利用しているプロトコルがChainlinkのような「業界標準」のオラクルを使用していると謳っている場合、それは安全であることを意味するのか?
完全にそうとは言えない。Chainlinkのような複数ノードの報告をオフチェーンで集約するオラクルは、確かに単一ソースのオラクルより単一の攻撃者による操作を受けにくいが、「Chainlinkを使用している」ことは「安全である」ことと同義ではない——重要なのはプロトコル側がそのデータをどう使用するかである。2025年にEuler Finance上でdeUSDに関して発生した事件では、Chainlinkのフィードが一時的に1.03ドルという誤った価格を報告した。この一見小さな3%の乖離でも、約50万ドルの不当な清算を引き起こした。これはプロトコル側がこの種の小さな異常に対して妥当な許容範囲を設定していなかったためである。
つまり、プロトコルのオラクルの安全性を評価する際、「どのオラクルを使っているか」に加えて、より重要な問いは次の通りである:プロトコルはデータの更新タイムスタンプを確認しているか(古い価格を使わないため)?妥当な価格範囲を設定し、それを外れる異常値を一時停止または無視しているか?単一のデータソースに依存しているのか、それとも複数のソースを照合して中央値や平均値を取っているのか?これらのプロトコル側の実装の詳細こそが、単に「どのブランドのオラクルを使っているか」よりも実際の安全性の程度を左右する。
TWAP(時間加重平均価格)は瞬間的な操作を防げるように聞こえるが、実際に効果があるのか?
TWAPの設計思想は、「今この瞬間」の価格を信頼するのではなく、一定期間の加重平均を取ることである。こうすることで、攻撃者がごく短時間だけ価格を吊り上げたり押し下げたりした場合(例えば1件のフラッシュローンによって)、その瞬間的な異常は期間全体の平均の中に希釈され、1件の取引だけで最終価格を大幅に歪めることが難しくなる。これは最も単純な「単一ブロック内でのフラッシュローン操作」というタイプの攻撃を確かに防ぐことができる。
しかしTWAPは万能薬ではなく、その有効性は時間ウィンドウの設定が妥当かどうかに完全に依存する。ウィンドウを短く設定しすぎる(例えば数分程度)と、攻撃者が操作した価格を十分な期間維持できれば(複数の取引や複数のブロックにまたがって)、それでも平均値を動かすことができる。ウィンドウを長く設定すると操作は難しくなるが、価格の更新が実際の市場から大幅に遅れることになり、市場が激しく変動している時には、プロトコルが依拠する価格が現実から数分、あるいはそれ以上乖離している可能性があり、このタイムラグ自体が裁定取引者に利用されることになる。つまりTWAPは「遅延」と「耐操作性」をトレードオフしており、この取引自体がプロトコルの資産タイプとボラティリティの特性に応じてカスタマイズされる必要があり、万能な設定パラメータは存在しない。
プロトコルのオラクル技術の詳細を分析する能力がない場合、もっと簡単な判断方法はあるか?
オラクルの技術的な実装を完全に理解するには一定の技術的背景が必要だが、比較的観察しやすいいくつかのシグナルを参考にできる。第一に、プロトコルが自らどのオラクルサービスを使用しているかを公開し、複数ソースによる相互検証の設計について説明しているかどうか——こうした詳細を公開する意欲のあるプロトコルは、一般にチーム自身がこの層のリスクを重視していることを示している。第二に、プロトコルがBalance CoinやOstiumのような類似の事件を過去に経験したことがあるかどうか——過去にオラクル関連の事故が発生していながら、その後の改善措置を公に説明していないプロトコルは、相対的にリスクが高い。第三に、プロトコルが管理する総ロック価値(TVL)が、その知名度や監査履歴と釣り合っているかを観察すること——TVLが急速に成長しているにもかかわらずオラクルインフラが比較的簡素な新しいプロトコルは、一般に、成熟し何度もストレステストを経てきたプロトコルよりリスクが高い。
より根本的な判断原則は、「スマートコントラクトが監査済み」であることと「このプロトコル全体が安全である」ことを分けて考えることである。監査はその一部の問いに答えているに過ぎず、オラクルの層は別途評価する必要がある。特に、暗号資産担保の価格評価に依存するプロトコルに資金を投入することを検討している場合はなおさらである。
2026年7月22日、BNBチェーン上で稼働するアルゴリズム型ステーブルコインBalance Coin(BLC)は、わずか数ブロックの間に1ドルから約0.0014ドルまで暴落し、下落幅は99%を超えた。攻撃者は100万ドル未満の資金で、プロトコル全体のペッグメカニズムを瞬時に機能不全に陥らせた。事後の鑑識報告によれば、問題はスマートコントラクトのコード自体にはなかった——そのコントラクトはCertiKの監査を通過していた——問題はコントラクトに供給される価格オラクルそのものが操作されたことにあった。この事件は、ステーブルコインのメカニズムを理解する上で見落とされがちな層を浮き彫りにしている。コントラクトがどれほど厳密に書かれていても、それが信頼する価格が偽物であれば、あらゆる防御は意味をなさなくなる。
スマートコントラクト監査が検証するのはコード自体の論理的な欠陥である——再入攻撃、整数オーバーフロー、アクセス制御の不備など。こうした監査プロセスは通常、オラクルが返す価格を「信頼できる入力」として扱い、その価格自体が妥当かどうか、異常なボラティリティに対する保護があるか、更新の遅延許容度がどの程度かを検証しない。OWASPの2026年版スマートコントラクトトップ10は、オラクル価格操作をSC-03として明確に主要な攻撃ベクトルと認めているが、大半の監査業務はオラクルインフラ自体をコントラクトの監査範囲に含めていない。Balance Coinの事件はまさにこの監査の死角を突いた——攻撃者が狙ったのはコントラクトのコードではなく、オラクルの設定層だった。
Balance Protocolはメディアンオラクル(中央値オラクル)を使用し、プロトコル上のBTC担保を評価していた。攻撃者はこのオラクルに偽造されたBTCB価格を送り込み、プロトコルに本来健全だった担保ポジションを担保不足と誤判定させ、清算を発動させた。攻撃者はその後、この人為的に押し下げられた偽の価格で清算された担保を買い取り、その価格差を利用して裁定取引を行った。この一連の流れは単一、あるいはごく少数の取引内で完結し、人間が介入する前にそれを止めるサーキットブレーカーは存在しなかった。これは2026年で唯一の同種の事例ではない——同年の早い時期には、Ostiumプロトコルが価格報告の操作により約1800万ドルを失い、Summer.fiは操作された利回り表示によって約600万ドルを失った。セキュリティ機関が観察した共通のパターンは、単一の価格ソース、不十分な検証、そしてごく少数の取引内で完結する価値の抽出である。
異なるオラクル設計は、コスト、遅延、耐操作性の間でトレードオフを取っており、リスクゼロのものは存在しない。オンチェーンのDEX現物価格はフラッシュローンによって瞬時に吊り上げたり押し下げたりできる。時間加重平均価格(TWAP)は短時間の操作には耐性があるが、ウィンドウを短く設定しすぎると同様に突破され、長く設定しすぎると価格の更新が実際の価格から大きく遅れてしまう。ChainlinkやPythのような、複数のノードからの報告をオフチェーンで集約するオラクルは、理論上は単一の操作者による影響を受けにくいが、統合するプロトコル側がデータの鮮度を確認せず、妥当な価格帯を設定せず、データが異常な場合のフォールバックを用意していなければ、Chainlinkを使っていても問題は起こりうる。2025年にEuler Finance上でdeUSDに関して発生した事件では、Chainlinkのフィードが一時的に1.03ドルという価格を報告し、この一見小さな乖離が約50万ドルの不当な清算を引き起こした。これは、問題がしばしばオラクル自体の技術仕様ではなく、プロトコルがそのデータをどう「使用」するかにあることを示している。
USDCやUSDTのような法定通貨準備型のステーブルコインを保有している場合、オラクルリスクとの関係は比較的間接的である——これらのステーブルコインの価値のペッグは準備資産と償還メカニズムに依存しており、オンチェーンの価格オラクルには依存していない。しかし、BTCやETHのような暗号資産担保をオラクルで評価するプロトコル——貸付、合成資産、アルゴリズム型ステーブルコインを問わず——を利用している場合、あなたは実質的に資金の安全性の一部を「そのプロトコルのオラクル設計がどれだけ厳密か」という問いに委ねていることになる。そうしたプロトコルに資金を預けたり担保として差し入れたりする前に、時間をかけて確認する価値がある点がある:単一の価格ソースに依存しているか、それとも複数のソースを集約しているか?TWAPや価格帯の保護はあるか?異常な価格が出た場合、プロトコルは自動的に一時停止するのか、それともそのまま実行され続けるのか?これらの問いへの答えは、そのプロトコルがスマートコントラクト監査を通過しているかどうかよりも、あなたの資金が実際にどのようなリスクにさらされているかをよく反映している。