ブロックチェーンオラクル攻撃のタイプ、ケース、およびマルチレイヤーの防御戦略

DeFiの出現以来、オンチェーンデータの品質とセキュリティは、特にオラクルに関して、開発者にとって最も重要な懸念事項でした。オラクルは、オンチェーンとオフチェーンのデータの重要なブリッジであり、しばしば攻撃対象となります。この記事では、オラクルのユースケース、一般的な攻撃パターン、オラクル操作の予防策について探究します。ブロックチェーンエコシステムにおけるオラクルの重要な役割を説明しながら、開発者に安全なオラクルの統合に関する実践的なガイダンスを提供します。UwU LendとBanana Gunなどの最近のインシデントを分析することで、データの信頼性がDeFiエコシステムの安定性を根底から形作る方法を強調します。

イントロダクション

2019年のDeFiの台頭から2024年までの段階的な成熟まで、データの問題は一貫して開発者にとって主要な懸念事項でした。これは、DeFiの運用が正確でリアルタイムのオンチェーンデータに依存しており、データの品質がプロトコルのセキュリティ、効率、ユーザーエクスペリエンスに直接影響するためです。データは価値交換の中心であり、プロトコルの信頼メカニズムの基礎です。スマートコントラクトの場合、データは入力ファクトとして機能しますが、スマートコントラクト自体はデータの真正性を積極的に検証することはできません。代わりに、外部ソースから提供されるデータに完全に依存しています。この特性は、入力データが改ざんされたり不正確であったりした場合、スマートコントラクトが受動的にそれを受け入れ、システミックリスクにつながる可能性があることを意味します。したがって、データの分散性、信頼性、使いやすさを確保することは、依然として継続的な課題です。この課題は、主に2つの問題に起因しています:まず、ほとんどのデータは中央集権的な機関やプラットフォームによって管理されています。第2に、送信元から伝送チャネル、最終宛先まで、パイプライン全体で信頼性を維持することが大きな課題となるため、データアクセスが困難です。

オンチェーンとオフチェーンのデータの相互作用の橋渡しとして、オラクルはしばしば攻撃の主要なターゲットになります。オラクルが操作されると、攻撃者は偽の価格や市場情報を悪用して、オラクル操作やフラッシュローン攻撃などの大規模な経済攻撃を実行することができます。2021年と2022年に頻繁に発生したオラクル操作やフラッシュローン攻撃などが示すように、2024年に至るまでこの脅威は存在し続けます。最近のUwU LendやBanana Gunを含む事件は、個々のプロトコルの成功または失敗、そしてDeFiエコシステム全体の安定性に直接影響を与えるオラクルデータの品質とセキュリティの重要性を再認識させています。

この記事では、ブロックチェーンでのオラクルの適用、攻撃の種類、および一般的なオラクル操作を防止する方法に焦点を当てます。オラクルの基本的な概念と重要性について読者に教育し、セキュリティ意識を高め、開発者がスマートコントラクトにオラクルを安全に統合するための実用的な推奨事項を提供することを目的としています。

オラクルの基本的な概念

オラクルの定義と役割

オラクルは、ブロックチェーンと外部世界の重要なインターフェースです。市場価格、天気情報、イベントの結果などのオフチェーンデータをブロックチェーンにインポートし、スマートコントラクトが外部情報にアクセスできるようにします。ブロックチェーンの本質的に閉じた性質を考慮すると、オラクルはDeFi、予測市場、保険、ゲームなどの分野で重要な役割を果たします。オラクルは、ブロックチェーンの制限に対処するだけでなく、スマートコントラクトと現実世界のデータの相互作用を促進し、ブロックチェーン技術のアプリケーション範囲を広げる役割を果たしています。ただし、オラクルには課題や痛点もあります:

  • オラクルの正確さは重要です。データソースが信頼性に欠けるか、改ざんされている場合、スマートコントラクトの誤った実行を引き起こし、財務上の損失につながる可能性があります。
  • オラクル自体も攻撃の標的になる可能性があります。たとえば、オラクルデータを操作して偽の情報を送信したり、市場操作やプロトコルの運営の妨げとなったりすることがあります。
  • 分散型オラクルネットワークは単一障害点を減らすことができますが、その分散度と信頼性に関する議論が続いています。オラクルの信頼性とセキュリティを向上させることは、重要な技術的課題となっています。

基本的な定義とオラクルの役割を理解したので、オラクルの種類、使用例、および直面するセキュリティリスクについて簡単に調査します。

オラクルの種類:中央集権型 vs 分散型

オラクルは、一般的に、中央集権型と分散型の2つの実装モデルに大別されます。Oraclizeのような中央集権型のオラクルは、オフチェーン情報を提供するために単一のデータソースに依存することが一般的です。彼らはハードウェアとソフトウェアのソリューションを組み合わせ、TLSNotaryやAndroid Proofのような技術を活用して、データの正確性を保証します。これらのオラクルは効率と安定性に優れています。しかし、彼らが信頼する単一のソースに依存することは、ブロックチェーンの分散化の本質を損ない、単一障害点を導入し、拡張性に制限をもたらすため、セキュリティと拡張性の両方の課題を引き起こします。

一方、Chainlinkのような分散化オラクルは、システムのセキュリティと信頼性の透明性を重視しています。Chainlinkのアーキテクチャでは、データの収集と検証は複数の独立したノードによって行われ、異なる参加者に分散しています。これにより、単一障害点のリスクが低減されます。チェーン上とオフチェーンの操作を調整することで、Chainlinkはデータの多様性と信頼性を確保します。この分散化設計は特に金融アプリケーションにおいて効果的であり、オラクルの攻撃耐性を向上させます。ただし、このアプローチは効率とコストの面でトレードオフがあり、低頻度のユースケースには適していない場合があります。

分散化オラクルの重要性は、データソースの操作リスクを減らし、信頼できる単一の当事者による潜在的な悪用を防ぐことにあります。分散化により、オラクルはもはやわずかなデータソースに依存せず、複数の分散ノードを通じてデータのセキュリティと信頼性を向上させます。ただし、分散化オラクルには、効果的な長期的インセンティブメカニズムの維持やオラクルネットワーク全体の安定性の確保といった課題もあります。次に、分散化オラクルに関連するセキュリティリスクとその潜在的な解決策について探っていきます。

オラクルの運用原則とリスク

オフチェーンとオンチェーンの異なるデータソースを持つオラクル

Oracleの操作では、データのソースと伝送方法は直接的にそのセキュリティと信頼性に影響します。オラクルは、オフチェーンとオンチェーンの2つのタイプのソースからデータを取得します。これら2つのアプローチの間でデータの起源と取得方法は異なります:

  • オフチェーンデータ:オフチェーンデータのボラティリティへの応答速度は、データソースと伝送メカニズムの特性に依存します。たとえば、取引所からのオフチェーン価格データは通常、迅速に更新されます。ただし、他のオフチェーンデータ(伝統的な金融市場からのデータや複雑な計算によって生成されるデータなど)は遅延が発生する場合があります。オフチェーンデータの伝送は、一部の特権を持つ機関がブロックチェーンにデータを送信することに頼っています。したがって、これらの機関がデータを悪意を持って変更したり、正しい更新を強制されたりしないようにすることが重要です。この依存関係は、分散型ブロックチェーン上のデータの信頼性と利用性を脅かす可能性があります。
  • オンチェーンデータ:オンチェーンデータには特権的なアクセスは必要ありません。常に最新の情報が提供され、強力なリアルタイム機能が提供されます。しかし、この同じ特性が攻撃者による操作に非常に脆弱であり、壊滅的な結果を招く可能性があります。開発者は、分散型取引所(DEX)に問い合わせてリアルタイム価格を計算することで、簡単にオンチェーンデータにアクセスできます。

オンチェーンおよびオフチェーンオラクル
オフチェーンとオンチェーンのデータソースの選択は、特定のプロジェクトの要件とそれぞれのアプローチのトレードオフに依存します。開発者は関連するリスクを注意深く評価し、対処する必要があります。このバランスの必要性は、より安全で信頼性の高いデータ処理方法に関する継続的な研究につながっています。以下のセクションでは、オラクルの運用原則と潜在的な脆弱性について調査します。

Oracle開発の簡単な例

このセクションでは、ブロックチェーンにおけるオラクルのユースケースを理解するための簡略化された開発シナリオを紹介します。実際のブロックチェーンスマートコントラクト開発では、スマートコントラクトがオラクルから価格データにアクセスするための複数の方法があります。一般的な方法には、オラクルコントラクトを直接呼び出すか、Chainlink CCIP(クロスチェーン相互運用プロトコル)などの技術を使用することが含まれます。これらの方法の主な違いは次のとおりです:

  1. ターゲットアプリケーションが同じブロックチェーン上に存在する場合、開発者は通常、オラクルコントラクトを直接呼び出してリアルタイムの価格情報を迅速に取得します。
  2. マルチチェーンのDeFiアプリケーションでは、Chainlink CCIPが一般的に使用されています。CCIPは、クロスチェーンのシナリオで異なるブロックチェーン間でデータを安全に転送する方法を提供します。

ここでは、オラクル契約への直接コールの使用方法を示します。Ethereumエコシステムのスマートコントラクト開発者であり、契約内のオラクルを使用してETH/USD価格データを取得する必要があると想像してください。まず、オラクル契約に接続するためのインターフェースを定義し、価格データを取得するための関数を記述します。

このシンプルな契約の例は、どのようにしてPriceConsumer契約はリアルタイムの価格データを取得し、それを使用して決定を行います。これにより、スマートコントラクトがオラクルとやり取りして価格データにアクセスする方法についての基本的な理解が得られます。次に、2つの観点から関連するリスクを分析します。

内部契約の観点から、オラクルを使用する攻撃者は、低流動性市場や小さな取引所を悪用して、大口取引を通じてETH/USD価格を操作し、異常な価格変動を引き起こす可能性があります。いくつかのオラクルは複数の取引プラットフォームからのデータ集約に依存しているため、これらの異常な変動はPriceConsumerのfetchPrice()メソッドに迅速に伝播し、価格の歪みを引き起こす可能性があります。この状況は、オラクルのデータソースがあまりにも中央集権化されており、リスクが十分に多様化されていない場合に通常発生し、システムが価格操作により脆弱になります。

外部の契約の視点から、分析は異なるアプリケーションシナリオを考慮する必要があります。PriceConsumer契約がETHを担保として他の資産を借りるための貸付プラットフォームで使用される場合を想定してください。攻撃者はまずフラッシュローンを使用して大量の資金を借り入れ、一時的にこれらの資金を自動マーケットメーカー(AMM)や他の流動性プールに預けます。AMMが取引の深さが低い場合、プールに急速に大量の単一の資産が入ることは、直接的に価格のスリッページを引き起こすでしょう。

このシナリオでは、攻撃者の大規模な取引がAMMによって報告される価格を変更し、それがオラクルの操作された価格に反映されます。価格を操作した後、攻撃者はさまざまな方法で利益を得ることができます。たとえば:

  1. レンディングプロトコルでの担保の清算: 操作された価格が特定の担保資産の清算を引き起こす可能性があります。攻撃者はその後、清算中にこれらの資産を安値で購入して利益を得ることができます。
  2. プラットフォーム間の裁定取引:操作された価格がプラットフォーム間で大きな価格格差を作り出した場合、攻撃者はこの差を利用して収益性の高い裁定取引を実行することができます。

攻撃者が操作を完了すると、すぐに資金を引き出し、AMM価格を回復し、利子をつけてフラッシュローンを返済し、操作プロセスを終了できます。

次に、私たちはオラクル攻撃の具体的なケースを分析し、その手法を調査し、DeFiプロトコルやオンチェーンエコシステムへの破壊的な影響を検証しながら、基本的な論理と主要な技術的詳細を解説していきます。

オラクルによって直接および間接的に引き起こされるリスク

市場操作とオラクル攻撃は、価格の歪みや資産損失など、類似の結果をもたらす可能性がありますが、その方法や失敗点は異なります。ブロックチェーン空間での大部分の損失は、オラクルの固有の設計上の欠陥ではなく、市場操作によるものです。主な違いは次の通りです:

  • マーケット操作は、供給と需要を人為的に変更して資産価格を膨らませたり収縮させたりすることを指します。一般的な戦術には、偽の取引や市場間操作が含まれます。例えば、流動性の低い資産は操作の標的にされやすく、DeFiプロトコルにおいて不良債権や流動性リスクを引き起こす可能性があります。
  • オラクル攻撃は、オラクルのデータソースを妨害し、実際の市場と一致しない価格を報告させます。これは意図的な操作、データソースの不足、またはオラクルのセキュリティの脆弱性によるものかもしれません。攻撃者はフィードと実際の市場価格の不一致を利用して、担保化や清算などのDeFiプロトコルの操作を操作します。

このケースを分析しましょう:

本質的には、マーケット操作は実際の市場価格を変更することによって達成され、オラクルはこれらの操作された価格を忠実に反映します。一方、オラクル攻撃は、市場価格が正常のままで不正な価格を報告することを含みます。オラクルと価格操作の違いを理解した後、次のステップはオンチェーンとオフチェーンのデータ取得の違いを探求し、オラクルがデータを伝達する方法をさらに理解することです。

オラクル関連攻撃事例

多数のオラクル攻撃事件の中で、一般的なタイプには、価格操作、オラクルの歪みとフラッシュローンの組み合わせ、オフチェーンデータのエラー、およびプロトコル設計の脆弱性の悪用が含まれます。以下では、オンチェーンオラクルの悪意のある操作に対する脆弱性を明らかにしたUwU Lend価格操作事件と、オフチェーンオラクルの失敗による外部データエラーがオンチェーン契約に与える深刻な影響を示したSynthetixオフチェーンオラクルの事例について説明します。

UwU Lend価格操作事件

2024年6月10日、EVMチェーンに基づくデジタル資産貸出プラットフォームであるUwU Lendは、攻撃を受け、約1930万ドルの損失を被った。 この事件は、DeFiプロトコル内のオラクル機構の潜在的な脆弱性を露呈しました。

UwU Lendは、価格オラクルによって決定される暗号通貨sUSDEを利用しました。貸出プロトコルの重要な部分として、オラクルの主な責任は、公正かつ安定した価格に基づいて貸出や清算などの主要な操作を保証するために正確な価格データを取得および提供することでした。しかし、この重要なメカニズムが攻撃の突破口となりました。

攻撃者は、Curve Finance流動性プール内で大規模な取引を行うことで、sUSDEの市場価格を操作しました。この行為により、UwU Lendが依存するオラクルによって生成された価格データが歪められました。sUSDEの価値が膨らんだことを悪用し、攻撃者はそれを担保としてUwU Lendから他の資産を抽出し、結果としてプラットフォームの資産が大幅に減少することにつながりました。

この事件の根本的な原因は、UwU Lendのオラクルの不十分な設計にありました。この脆弱性により、攻撃者は市場価格を操作し、オラクルから報告されたデータを歪め、ターゲット型攻撃を実行することができました。この事例は、DeFiプラットフォームの一般的な欠陥である、特に流動性の低い市場環境においてそのリスクがより顕著なオラクルの不十分な操作防止メカニズムを浮き彫りにしています。

この事件とフラッシュローン攻撃との類似性には注目する価値があります。フラッシュローン攻撃は通常、大規模かつ短期的な資本流入によって価格の異常を作り出し、オラクル価格フィードバックメカニズムを妨害して資産の裁定取引やその他の悪意のある目的を達成します。この類似性は、DeFiシステムのセキュリティの重要な要素であるオラクルにおける堅牢な不正操作防止設計の重要性を更に強調しています。

将来、DeFiプラットフォームは、オラクルメカニズムを構築する際に、マルチソース価格データ集約、価格更新頻度の最適化、異常価格の監視などの戦略に焦点を当てるべきです。操作防止能力の強化は、単一障害点の失敗や市場の変動によるシステムリスクを減少させることができます。

Synthetix Oracle Failure

2019年6月25日、Ethereum上の派生物流動性プロトコルであるSynthetixは、カスタムのオフチェーン価格オラクルシステムで重大な障害を経験し、予期しない巨額の利益を生み出す単一のトランザクションが発生しました。Synthetixは価格フィードに機密情報源を依存し、固定された間隔で価格を集計し、オンチェーンで公開し、ユーザーに長期またはショートの合成資産の取引価格を提供していました。

しかしながら、価格チャネルの1つが誤って韓国ウォン(KRW)の為替レートを実際の値の1000倍と報告しました。システムはこの異常なデータをフィルタリングすることに失敗し、これがオンチェーンで誤った価格の受け入れと公表につながりました。取引ボットはこのエラーを検知し、sKRW市場で迅速に買いと売りの取引を実行し、アービトラージを通じて相当な利益を上げました。チームは問題を迅速に発見し、トレーダーと交渉することで、バグバウンティと引き換えに利益を返還させ、10億ドルを超える潜在的な損失を回避しました。

Synthetixチームは、1つのソースからの不正確さに対処するために複数のソースから価格データを集約する対策を実施していましたが、このインシデントは、オフチェーンデータオラクルの固有のリスクを浮き彫りにしました。上流データソースが誤ると、オンチェーン契約は価格計算プロセスに対する洞察を持っておらず、したがって自動的に異常を検出することができませんでした。

予防措置

上記のケースは、オラクルが直面する課題がデータソースの正確性を超えており、操作に対する抵抗力やオフチェーンデータ統合のセキュリティも含まれていることを強調しています。そのため、オラクル攻撃を防止することは非常に重要です。オラクルのセキュリティ、信頼性、および操作防止能力を向上させることは、設計と利用時の重要な要素となります。このセクションでは、異なるタイプの攻撃に対抗し、オラクルシステムの総合的なセキュリティを強化するための効果的な対策を探求します。

1. データの正確性を保証するために複数のデータソースを使用する

ケース分析:UwU Lendの価格操作事件では、攻撃者がCurve Financeプール内のsUSDEの価格に影響を与えることで、UwU Lendの価格オラクルを成功裏に操作しました。価格操作の脆弱性を悪用することで、攻撃者はシステムが正しく評価できなかった資産を抽出しました。もしUwU LendがsUSDEの価格を決定するために複数のデータソースを使用していたら、システムは他のソースを通じて価格を検証することができ、攻撃リスクを軽減することができたでしょう。

拡張分析:このインシデントは価格操作を伴い、十分な流動性に関連する問題が露呈しました。トークンに十分な市場流動性がない場合、浅い取引深度により取引の少数によって価格が容易に影響を受けるため、オラクルの脆弱性が増大します。その結果、新しいトークンを立ち上げる際には、プロジェクトチームは市場の流動性を慎重に評価し、価格の歪みと関連するセキュリティリスクを防ぐための対策を講じる必要があります。たとえば、Aave、Kamino、Scallopなどの貸出プロトコルでは、低流動性トークンに対してより厳しい制限を設けて市場の安定性とセキュリティを確保しています。

最適化アプローチ:データの正確性を確保するために、プロトコルは複数の分散型オラクル(ChainlinkやBand Protocolなど)を組み込むことで、さまざまな取引所や流動性プールからデータを集約するマルチデータソース戦略を採用すべきです。このアプローチにより、単一のデータソースが操作された場合でも、システム全体のセキュリティへの影響を軽減できます。

2. データの送信セキュリティを保証する分散型データ集約システム

ケース分析:Synthetixのオフチェーンオラクルの障害は、オフチェーンデータソースのエラーのリスクを露呈しました。このインシデントでは、誤った韓国ウォン(KRW)の価格が報告され、取引ボットがそのエラーを悪用してアービトラージを行いました。Synthetixが分散型データアグリゲーターを採用していれば、他の分散型データソースが問題を迅速に修正できたかもしれません。たとえオフチェーンデータソースの1つが失敗しても。

最適化アプローチ:Uniswap V3の改善と同様に、分散データ集約者を利用することで、データ伝送のセキュリティを向上させることができます。TLSなどの暗号プロトコルと署名検証を活用し、分散リレーノードと組み合わせることで、システムは中間者攻撃やデータ改ざんを防ぐことができます。たとえば、Chainlinkオラクルでは、すべてのデータソースが複数の独立したノードによって検証され、暗号化技術で保護されており、送信されるデータの完全性と変更不可性が確保されています。

4. アプリケーションアーキテクチャのモジュラーデザインによる単一障害点リスクの低減

ケース分析:多くの攻撃事件がDeFiプロトコルのモジュラーデザインの不備を明らかにし、これらはしばしば十分な防御メカニズムを欠いています。独立したモジュールを注意深く設計し構築することで、単一の脆弱性を悪用されて全体のシステムに壊滅的な被害をもたらすことを防ぐことが可能です。例えば、Synthetixのオフチェーンオラクルの障害では、開発チームが予めモジュラーアラートシステムを設計していれば、異常なデータをより迅速に特定し修正できた可能性があります。

最適化アプローチ:攻撃に対する耐性を高めるために、開発者は開発プロセス中にレイヤードアーキテクチャを採用し、各モジュール(データソース、検証ロジック、送信モジュール)が独立して動作することを確保することができます。例えば、Uniswap V3のように、異なる流動性プールからの価格情報を別々の観測プールに格納することで、プロトコルは複数のプール間で価格を比較し、単一のプールでの操作リスクを低減することができます。実際の開発では、インターフェースのカプセル化や依存性の注入などの技術を使用して、データの検証モジュールを他のロジックから分離し、システムの柔軟性と保守性を確保することができます。

5. スマートコントラクトの適応型防御メカニズム

ほとんどのオラクルは静的な防御策に頼っていますが、スマートコントラクトは高度に動的な攻撃手法に対抗するために適応型の防御戦略を採用できます。例えば、異常な価格変動の頻度を監視することにより、システムは攻撃が発生しているかどうかを判断し、そのような異常に応じて追加の検証またはロールバックメカニズムをトリガーすることができます。この適応型アプローチにより、システムは突然の価格操作中に潜在的な損失から自動的に保護することができます。

実用的なアプリケーション:一部のDeFiプロトコルは、「閾値アラート」メカニズムを実装して、リアルタイムで大幅な価格変動を検知します。価格変動が事前に設定された閾値を超える場合、システムは自動的に追加の検証プロセスを開始したり、操作のエスカレーションを防ぐためにロールバックをトリガーしたりします。たとえば、Balancerプロトコルでは価格の偏差閾値を使用しており、価格が異常に高いまたは低いと検知されると、価格の妥当性のさらなる確認が行われるまで一部の取引を停止します。

オラクルの設計とアプリケーションの最適化に関する議論を基に、DeFiアプリケーション内で具体的な解決策を探ることができます。次に、Uniswap V2の時間加重平均価格メカニズムとそのV3での改善点について紹介します。

DeFiオラクルアプリケーションにおけるセキュリティ最適化ケース

オラクルのセキュリティはDeFiプロトコルにとって重要な関心事です。多くのDeFiプロトコルは、オラクル攻撃を効果的に防止するために価値あるイノベーションを導入しています。例えば、Uniswapは、オンチェーン価格生成と防御メカニズムの最適化を通じて、オラクル設計の新しいアイデアを提供しています。Uniswap V2とV3の比較は、技術的な改良がオラクルの抗操作能力を向上させることができることを示し、スマートコントラクトの安全な設計の明確なパスを提供しています。

Uniswap V2のTWAP

Uniswap V2は、初めてTWAP(Time-Weighted Average Price)オラクルを導入し、オンチェーン開発者が分散型取引所(DEX)から価格データにアクセスできるようにしました。TWAPは、オフチェーンデータに依存せず、Uniswap自体のオンチェーン取引データからデータを提供するオンチェーンオラクルです。

インザUniswapV2Pair契約、_update()functionは、トレードペアの準備と価格蓄積器を更新するための中核的な非公開関数です。その主な目的は、時間加重価格蓄積器を使用して、オラクル攻撃を防止するのに役立つことです。

この機能の核心アイデアは、時間加重価格変動を記録することによって、攻撃者が一度に価格を操作する能力を制限することです。具体的には、この機能は、各ブロックの時間加重価格変動を計算します。関数は、時間の差を計算します(timeElapsed現在時刻と前回更新時刻との差を計算し、その差を取引ペアの現在価格で乗算して、その結果を価格蓄積器に加算します。price0CumulativeLastそしてprice1累積最終この蓄積は、潜在的な価格変動を滑らかにするために時間加重平均価格を記録します。価格は一定期間にわたって蓄積されるため、攻撃者は価格を大幅に変更するために複数のブロックを連続して操作する必要があり、それにより操作コストが増加します。

さらに、この機能は価格累積器を更新するのみです。経過時間は0より大きいため、価格はブロックごとにのみ更新されます。この設計は、攻撃者の操作頻度を短時間内に制限します。価格を効果的に操作するには、攻撃者は1つのブロックではなく、複数のブロックにわたって継続的に介入する必要があります。これにより、操作の可能性がさらに低くなります。

セキュリティの観点から、このメカニズムは堅牢です。この機能には、予備の最大値がシステムの限界値を超えないようにオーバーフローチェックが含まれており、累積価格計算もオーバーフローに対して保護されています。これらの設計要素により、外部の操作は格段に困難になります。

ただし、オラクルのV2バージョンにはいくつかの実用上の制限があります。たとえば、公式の契約は最新の累積価格データのみを提供し、開発者は過去の価格データを記録して取得する必要があります。これにより、技術的なハードルが高くなります。さらに、V2オラクルは取引ペアの深さを直接記録しません。取引ペアの深さは、オラクルの安定性にとって重要であり、攻撃に対してより容易に価格を操作することができる下位の深さは問題です。

Uniswap V3

前身の制限に対処するために、UniswapはV3バージョンでオラクル機能を改善しました。V3契約は、時間の経過とともに累積価格値を保持し、最大65,535レコードをサポートする歴史的価格情報を格納する機能を追加しました。これにより、開発者が歴史データを手動で格納する必要がなくなりました。

さらに、V3バージョンのオラクルは、さまざまな手数料ティアの時間加重流動性値を記録します。これにより、開発者はボリュームの高い流動性プールを価格参照ソースとして選択し、より高い価格の正確性を確保することができます。すべてのオラクル関連のロジックはOracleライブラリにカプセル化されており、外部のユーザーメンテナンスを必要とせずに、各トランザクションの累積価格と流動性情報を自動的に記録することができます。

もう一つ注目すべき改善点は、価格計算方法の調整です。Uniswap V2では、TWAPの計算は算術平均に基づいていましたが、V3では幾何平均を採用しています。算術平均に比べて、幾何平均は実装の安定性が高く、価格の大幅な変動がある環境に適しており、操作リスクをさらに低減することができます。

将来のトレンド

オラクル攻撃者には、組織化されたグループ、独立したハッカー、外部の関係者と協力する可能性のある内部者が含まれます。このような攻撃は通常、中程度の技術的複雑さを伴い、攻撃者はブロックチェーンとスマートコントラクトの基礎的な理解と脆弱性を悪用するための特定のスキルを持っている必要があります。技術的な障壁が低くなるにつれて、オラクル攻撃の複雑さが低下し、技術的な専門知識の少ないハッカーも参加することができるようになりました。

オラクル攻撃は自動化に大きく依存しています。ほとんどの攻撃者は、自動化ツールを使用してオンチェーンデータをスキャンし、分析し、価格変動やオラクルのデータ遅延などのセキュリティの脆弱性を迅速に特定し、悪用しています。たとえば、アービトラージボットや自動化スクリプトは、ミリ秒単位で価格変動に対応し、攻撃者が市場が調整する前に利益を確保します。ブロックチェーンネットワークが分散化を続ける中、これらの自動化された手法はますます効率的になり、オラクル攻撃がより精密で検出が困難になっています。

先を見据えると、タイム加重平均価格(TWAP)や暗号化された複数ソースデータ検証などの標準化された価格メカニズムの普及により、オラクルデータの信頼性と操作耐性が向上する可能性が高い。これによりオラクル攻撃の実現可能性が低くなる可能性があるが、新しい脅威が現れる可能性がある。特に様々なアービトラージテクニックを組み合わせてセキュリティチェックを回避する高度な手法が登場する可能性がある。DeFi開発者は警戒を続ける必要があり、オラクルセキュリティの未来は、分散型データ保護措置の継続的な強化と新興攻撃ベクトルに対する積極的な防御にかかっている。

結論

この記事では、DeFiシステムにおけるオラクルの重要な役割とそのセキュリティの脆弱性について、オラクルの種類、開発の例、事例研究、予防策を調査しました。分析は、フラッシュローンを利用したオラクル攻撃とオラクルの障害から発生するランダム攻撃という2つの主要な領域に焦点を当てました。この調査を通じて、オラクルのセキュリティアーキテクチャにおける基本的な重要性と、オラクル攻撃を防ぐための実践的な方法を示しました。

免責事項:この記事の内容は参考用であり、オラクル攻撃に関する知識の学習と交換を目的としています。実際の操作または教育的な場合のガイダンスを構成するものではありません。

著者: Doris
翻訳者: Sonia
レビュアー: Piccolo、Edward、Elisa
翻訳レビュアー: Ashely、Joyce
* 本情報はGate.ioが提供または保証する金融アドバイス、その他のいかなる種類の推奨を意図したものではなく、構成するものではありません。
* 本記事はGate.ioを参照することなく複製/送信/複写することを禁じます。違反した場合は著作権法の侵害となり法的措置の対象となります。

ブロックチェーンオラクル攻撃のタイプ、ケース、およびマルチレイヤーの防御戦略

上級1/7/2025, 8:36:55 AM
DeFiの出現以来、オンチェーンデータの品質とセキュリティは、特にオラクルに関して、開発者にとって最も重要な懸念事項でした。オラクルは、オンチェーンとオフチェーンのデータの重要なブリッジであり、しばしば攻撃対象となります。この記事では、オラクルのユースケース、一般的な攻撃パターン、オラクル操作の予防策について探究します。ブロックチェーンエコシステムにおけるオラクルの重要な役割を説明しながら、開発者に安全なオラクルの統合に関する実践的なガイダンスを提供します。UwU LendとBanana Gunなどの最近のインシデントを分析することで、データの信頼性がDeFiエコシステムの安定性を根底から形作る方法を強調します。

イントロダクション

2019年のDeFiの台頭から2024年までの段階的な成熟まで、データの問題は一貫して開発者にとって主要な懸念事項でした。これは、DeFiの運用が正確でリアルタイムのオンチェーンデータに依存しており、データの品質がプロトコルのセキュリティ、効率、ユーザーエクスペリエンスに直接影響するためです。データは価値交換の中心であり、プロトコルの信頼メカニズムの基礎です。スマートコントラクトの場合、データは入力ファクトとして機能しますが、スマートコントラクト自体はデータの真正性を積極的に検証することはできません。代わりに、外部ソースから提供されるデータに完全に依存しています。この特性は、入力データが改ざんされたり不正確であったりした場合、スマートコントラクトが受動的にそれを受け入れ、システミックリスクにつながる可能性があることを意味します。したがって、データの分散性、信頼性、使いやすさを確保することは、依然として継続的な課題です。この課題は、主に2つの問題に起因しています:まず、ほとんどのデータは中央集権的な機関やプラットフォームによって管理されています。第2に、送信元から伝送チャネル、最終宛先まで、パイプライン全体で信頼性を維持することが大きな課題となるため、データアクセスが困難です。

オンチェーンとオフチェーンのデータの相互作用の橋渡しとして、オラクルはしばしば攻撃の主要なターゲットになります。オラクルが操作されると、攻撃者は偽の価格や市場情報を悪用して、オラクル操作やフラッシュローン攻撃などの大規模な経済攻撃を実行することができます。2021年と2022年に頻繁に発生したオラクル操作やフラッシュローン攻撃などが示すように、2024年に至るまでこの脅威は存在し続けます。最近のUwU LendやBanana Gunを含む事件は、個々のプロトコルの成功または失敗、そしてDeFiエコシステム全体の安定性に直接影響を与えるオラクルデータの品質とセキュリティの重要性を再認識させています。

この記事では、ブロックチェーンでのオラクルの適用、攻撃の種類、および一般的なオラクル操作を防止する方法に焦点を当てます。オラクルの基本的な概念と重要性について読者に教育し、セキュリティ意識を高め、開発者がスマートコントラクトにオラクルを安全に統合するための実用的な推奨事項を提供することを目的としています。

オラクルの基本的な概念

オラクルの定義と役割

オラクルは、ブロックチェーンと外部世界の重要なインターフェースです。市場価格、天気情報、イベントの結果などのオフチェーンデータをブロックチェーンにインポートし、スマートコントラクトが外部情報にアクセスできるようにします。ブロックチェーンの本質的に閉じた性質を考慮すると、オラクルはDeFi、予測市場、保険、ゲームなどの分野で重要な役割を果たします。オラクルは、ブロックチェーンの制限に対処するだけでなく、スマートコントラクトと現実世界のデータの相互作用を促進し、ブロックチェーン技術のアプリケーション範囲を広げる役割を果たしています。ただし、オラクルには課題や痛点もあります:

  • オラクルの正確さは重要です。データソースが信頼性に欠けるか、改ざんされている場合、スマートコントラクトの誤った実行を引き起こし、財務上の損失につながる可能性があります。
  • オラクル自体も攻撃の標的になる可能性があります。たとえば、オラクルデータを操作して偽の情報を送信したり、市場操作やプロトコルの運営の妨げとなったりすることがあります。
  • 分散型オラクルネットワークは単一障害点を減らすことができますが、その分散度と信頼性に関する議論が続いています。オラクルの信頼性とセキュリティを向上させることは、重要な技術的課題となっています。

基本的な定義とオラクルの役割を理解したので、オラクルの種類、使用例、および直面するセキュリティリスクについて簡単に調査します。

オラクルの種類:中央集権型 vs 分散型

オラクルは、一般的に、中央集権型と分散型の2つの実装モデルに大別されます。Oraclizeのような中央集権型のオラクルは、オフチェーン情報を提供するために単一のデータソースに依存することが一般的です。彼らはハードウェアとソフトウェアのソリューションを組み合わせ、TLSNotaryやAndroid Proofのような技術を活用して、データの正確性を保証します。これらのオラクルは効率と安定性に優れています。しかし、彼らが信頼する単一のソースに依存することは、ブロックチェーンの分散化の本質を損ない、単一障害点を導入し、拡張性に制限をもたらすため、セキュリティと拡張性の両方の課題を引き起こします。

一方、Chainlinkのような分散化オラクルは、システムのセキュリティと信頼性の透明性を重視しています。Chainlinkのアーキテクチャでは、データの収集と検証は複数の独立したノードによって行われ、異なる参加者に分散しています。これにより、単一障害点のリスクが低減されます。チェーン上とオフチェーンの操作を調整することで、Chainlinkはデータの多様性と信頼性を確保します。この分散化設計は特に金融アプリケーションにおいて効果的であり、オラクルの攻撃耐性を向上させます。ただし、このアプローチは効率とコストの面でトレードオフがあり、低頻度のユースケースには適していない場合があります。

分散化オラクルの重要性は、データソースの操作リスクを減らし、信頼できる単一の当事者による潜在的な悪用を防ぐことにあります。分散化により、オラクルはもはやわずかなデータソースに依存せず、複数の分散ノードを通じてデータのセキュリティと信頼性を向上させます。ただし、分散化オラクルには、効果的な長期的インセンティブメカニズムの維持やオラクルネットワーク全体の安定性の確保といった課題もあります。次に、分散化オラクルに関連するセキュリティリスクとその潜在的な解決策について探っていきます。

オラクルの運用原則とリスク

オフチェーンとオンチェーンの異なるデータソースを持つオラクル

Oracleの操作では、データのソースと伝送方法は直接的にそのセキュリティと信頼性に影響します。オラクルは、オフチェーンとオンチェーンの2つのタイプのソースからデータを取得します。これら2つのアプローチの間でデータの起源と取得方法は異なります:

  • オフチェーンデータ:オフチェーンデータのボラティリティへの応答速度は、データソースと伝送メカニズムの特性に依存します。たとえば、取引所からのオフチェーン価格データは通常、迅速に更新されます。ただし、他のオフチェーンデータ(伝統的な金融市場からのデータや複雑な計算によって生成されるデータなど)は遅延が発生する場合があります。オフチェーンデータの伝送は、一部の特権を持つ機関がブロックチェーンにデータを送信することに頼っています。したがって、これらの機関がデータを悪意を持って変更したり、正しい更新を強制されたりしないようにすることが重要です。この依存関係は、分散型ブロックチェーン上のデータの信頼性と利用性を脅かす可能性があります。
  • オンチェーンデータ:オンチェーンデータには特権的なアクセスは必要ありません。常に最新の情報が提供され、強力なリアルタイム機能が提供されます。しかし、この同じ特性が攻撃者による操作に非常に脆弱であり、壊滅的な結果を招く可能性があります。開発者は、分散型取引所(DEX)に問い合わせてリアルタイム価格を計算することで、簡単にオンチェーンデータにアクセスできます。

オンチェーンおよびオフチェーンオラクル
オフチェーンとオンチェーンのデータソースの選択は、特定のプロジェクトの要件とそれぞれのアプローチのトレードオフに依存します。開発者は関連するリスクを注意深く評価し、対処する必要があります。このバランスの必要性は、より安全で信頼性の高いデータ処理方法に関する継続的な研究につながっています。以下のセクションでは、オラクルの運用原則と潜在的な脆弱性について調査します。

Oracle開発の簡単な例

このセクションでは、ブロックチェーンにおけるオラクルのユースケースを理解するための簡略化された開発シナリオを紹介します。実際のブロックチェーンスマートコントラクト開発では、スマートコントラクトがオラクルから価格データにアクセスするための複数の方法があります。一般的な方法には、オラクルコントラクトを直接呼び出すか、Chainlink CCIP(クロスチェーン相互運用プロトコル)などの技術を使用することが含まれます。これらの方法の主な違いは次のとおりです:

  1. ターゲットアプリケーションが同じブロックチェーン上に存在する場合、開発者は通常、オラクルコントラクトを直接呼び出してリアルタイムの価格情報を迅速に取得します。
  2. マルチチェーンのDeFiアプリケーションでは、Chainlink CCIPが一般的に使用されています。CCIPは、クロスチェーンのシナリオで異なるブロックチェーン間でデータを安全に転送する方法を提供します。

ここでは、オラクル契約への直接コールの使用方法を示します。Ethereumエコシステムのスマートコントラクト開発者であり、契約内のオラクルを使用してETH/USD価格データを取得する必要があると想像してください。まず、オラクル契約に接続するためのインターフェースを定義し、価格データを取得するための関数を記述します。

このシンプルな契約の例は、どのようにしてPriceConsumer契約はリアルタイムの価格データを取得し、それを使用して決定を行います。これにより、スマートコントラクトがオラクルとやり取りして価格データにアクセスする方法についての基本的な理解が得られます。次に、2つの観点から関連するリスクを分析します。

内部契約の観点から、オラクルを使用する攻撃者は、低流動性市場や小さな取引所を悪用して、大口取引を通じてETH/USD価格を操作し、異常な価格変動を引き起こす可能性があります。いくつかのオラクルは複数の取引プラットフォームからのデータ集約に依存しているため、これらの異常な変動はPriceConsumerのfetchPrice()メソッドに迅速に伝播し、価格の歪みを引き起こす可能性があります。この状況は、オラクルのデータソースがあまりにも中央集権化されており、リスクが十分に多様化されていない場合に通常発生し、システムが価格操作により脆弱になります。

外部の契約の視点から、分析は異なるアプリケーションシナリオを考慮する必要があります。PriceConsumer契約がETHを担保として他の資産を借りるための貸付プラットフォームで使用される場合を想定してください。攻撃者はまずフラッシュローンを使用して大量の資金を借り入れ、一時的にこれらの資金を自動マーケットメーカー(AMM)や他の流動性プールに預けます。AMMが取引の深さが低い場合、プールに急速に大量の単一の資産が入ることは、直接的に価格のスリッページを引き起こすでしょう。

このシナリオでは、攻撃者の大規模な取引がAMMによって報告される価格を変更し、それがオラクルの操作された価格に反映されます。価格を操作した後、攻撃者はさまざまな方法で利益を得ることができます。たとえば:

  1. レンディングプロトコルでの担保の清算: 操作された価格が特定の担保資産の清算を引き起こす可能性があります。攻撃者はその後、清算中にこれらの資産を安値で購入して利益を得ることができます。
  2. プラットフォーム間の裁定取引:操作された価格がプラットフォーム間で大きな価格格差を作り出した場合、攻撃者はこの差を利用して収益性の高い裁定取引を実行することができます。

攻撃者が操作を完了すると、すぐに資金を引き出し、AMM価格を回復し、利子をつけてフラッシュローンを返済し、操作プロセスを終了できます。

次に、私たちはオラクル攻撃の具体的なケースを分析し、その手法を調査し、DeFiプロトコルやオンチェーンエコシステムへの破壊的な影響を検証しながら、基本的な論理と主要な技術的詳細を解説していきます。

オラクルによって直接および間接的に引き起こされるリスク

市場操作とオラクル攻撃は、価格の歪みや資産損失など、類似の結果をもたらす可能性がありますが、その方法や失敗点は異なります。ブロックチェーン空間での大部分の損失は、オラクルの固有の設計上の欠陥ではなく、市場操作によるものです。主な違いは次の通りです:

  • マーケット操作は、供給と需要を人為的に変更して資産価格を膨らませたり収縮させたりすることを指します。一般的な戦術には、偽の取引や市場間操作が含まれます。例えば、流動性の低い資産は操作の標的にされやすく、DeFiプロトコルにおいて不良債権や流動性リスクを引き起こす可能性があります。
  • オラクル攻撃は、オラクルのデータソースを妨害し、実際の市場と一致しない価格を報告させます。これは意図的な操作、データソースの不足、またはオラクルのセキュリティの脆弱性によるものかもしれません。攻撃者はフィードと実際の市場価格の不一致を利用して、担保化や清算などのDeFiプロトコルの操作を操作します。

このケースを分析しましょう:

本質的には、マーケット操作は実際の市場価格を変更することによって達成され、オラクルはこれらの操作された価格を忠実に反映します。一方、オラクル攻撃は、市場価格が正常のままで不正な価格を報告することを含みます。オラクルと価格操作の違いを理解した後、次のステップはオンチェーンとオフチェーンのデータ取得の違いを探求し、オラクルがデータを伝達する方法をさらに理解することです。

オラクル関連攻撃事例

多数のオラクル攻撃事件の中で、一般的なタイプには、価格操作、オラクルの歪みとフラッシュローンの組み合わせ、オフチェーンデータのエラー、およびプロトコル設計の脆弱性の悪用が含まれます。以下では、オンチェーンオラクルの悪意のある操作に対する脆弱性を明らかにしたUwU Lend価格操作事件と、オフチェーンオラクルの失敗による外部データエラーがオンチェーン契約に与える深刻な影響を示したSynthetixオフチェーンオラクルの事例について説明します。

UwU Lend価格操作事件

2024年6月10日、EVMチェーンに基づくデジタル資産貸出プラットフォームであるUwU Lendは、攻撃を受け、約1930万ドルの損失を被った。 この事件は、DeFiプロトコル内のオラクル機構の潜在的な脆弱性を露呈しました。

UwU Lendは、価格オラクルによって決定される暗号通貨sUSDEを利用しました。貸出プロトコルの重要な部分として、オラクルの主な責任は、公正かつ安定した価格に基づいて貸出や清算などの主要な操作を保証するために正確な価格データを取得および提供することでした。しかし、この重要なメカニズムが攻撃の突破口となりました。

攻撃者は、Curve Finance流動性プール内で大規模な取引を行うことで、sUSDEの市場価格を操作しました。この行為により、UwU Lendが依存するオラクルによって生成された価格データが歪められました。sUSDEの価値が膨らんだことを悪用し、攻撃者はそれを担保としてUwU Lendから他の資産を抽出し、結果としてプラットフォームの資産が大幅に減少することにつながりました。

この事件の根本的な原因は、UwU Lendのオラクルの不十分な設計にありました。この脆弱性により、攻撃者は市場価格を操作し、オラクルから報告されたデータを歪め、ターゲット型攻撃を実行することができました。この事例は、DeFiプラットフォームの一般的な欠陥である、特に流動性の低い市場環境においてそのリスクがより顕著なオラクルの不十分な操作防止メカニズムを浮き彫りにしています。

この事件とフラッシュローン攻撃との類似性には注目する価値があります。フラッシュローン攻撃は通常、大規模かつ短期的な資本流入によって価格の異常を作り出し、オラクル価格フィードバックメカニズムを妨害して資産の裁定取引やその他の悪意のある目的を達成します。この類似性は、DeFiシステムのセキュリティの重要な要素であるオラクルにおける堅牢な不正操作防止設計の重要性を更に強調しています。

将来、DeFiプラットフォームは、オラクルメカニズムを構築する際に、マルチソース価格データ集約、価格更新頻度の最適化、異常価格の監視などの戦略に焦点を当てるべきです。操作防止能力の強化は、単一障害点の失敗や市場の変動によるシステムリスクを減少させることができます。

Synthetix Oracle Failure

2019年6月25日、Ethereum上の派生物流動性プロトコルであるSynthetixは、カスタムのオフチェーン価格オラクルシステムで重大な障害を経験し、予期しない巨額の利益を生み出す単一のトランザクションが発生しました。Synthetixは価格フィードに機密情報源を依存し、固定された間隔で価格を集計し、オンチェーンで公開し、ユーザーに長期またはショートの合成資産の取引価格を提供していました。

しかしながら、価格チャネルの1つが誤って韓国ウォン(KRW)の為替レートを実際の値の1000倍と報告しました。システムはこの異常なデータをフィルタリングすることに失敗し、これがオンチェーンで誤った価格の受け入れと公表につながりました。取引ボットはこのエラーを検知し、sKRW市場で迅速に買いと売りの取引を実行し、アービトラージを通じて相当な利益を上げました。チームは問題を迅速に発見し、トレーダーと交渉することで、バグバウンティと引き換えに利益を返還させ、10億ドルを超える潜在的な損失を回避しました。

Synthetixチームは、1つのソースからの不正確さに対処するために複数のソースから価格データを集約する対策を実施していましたが、このインシデントは、オフチェーンデータオラクルの固有のリスクを浮き彫りにしました。上流データソースが誤ると、オンチェーン契約は価格計算プロセスに対する洞察を持っておらず、したがって自動的に異常を検出することができませんでした。

予防措置

上記のケースは、オラクルが直面する課題がデータソースの正確性を超えており、操作に対する抵抗力やオフチェーンデータ統合のセキュリティも含まれていることを強調しています。そのため、オラクル攻撃を防止することは非常に重要です。オラクルのセキュリティ、信頼性、および操作防止能力を向上させることは、設計と利用時の重要な要素となります。このセクションでは、異なるタイプの攻撃に対抗し、オラクルシステムの総合的なセキュリティを強化するための効果的な対策を探求します。

1. データの正確性を保証するために複数のデータソースを使用する

ケース分析:UwU Lendの価格操作事件では、攻撃者がCurve Financeプール内のsUSDEの価格に影響を与えることで、UwU Lendの価格オラクルを成功裏に操作しました。価格操作の脆弱性を悪用することで、攻撃者はシステムが正しく評価できなかった資産を抽出しました。もしUwU LendがsUSDEの価格を決定するために複数のデータソースを使用していたら、システムは他のソースを通じて価格を検証することができ、攻撃リスクを軽減することができたでしょう。

拡張分析:このインシデントは価格操作を伴い、十分な流動性に関連する問題が露呈しました。トークンに十分な市場流動性がない場合、浅い取引深度により取引の少数によって価格が容易に影響を受けるため、オラクルの脆弱性が増大します。その結果、新しいトークンを立ち上げる際には、プロジェクトチームは市場の流動性を慎重に評価し、価格の歪みと関連するセキュリティリスクを防ぐための対策を講じる必要があります。たとえば、Aave、Kamino、Scallopなどの貸出プロトコルでは、低流動性トークンに対してより厳しい制限を設けて市場の安定性とセキュリティを確保しています。

最適化アプローチ:データの正確性を確保するために、プロトコルは複数の分散型オラクル(ChainlinkやBand Protocolなど)を組み込むことで、さまざまな取引所や流動性プールからデータを集約するマルチデータソース戦略を採用すべきです。このアプローチにより、単一のデータソースが操作された場合でも、システム全体のセキュリティへの影響を軽減できます。

2. データの送信セキュリティを保証する分散型データ集約システム

ケース分析:Synthetixのオフチェーンオラクルの障害は、オフチェーンデータソースのエラーのリスクを露呈しました。このインシデントでは、誤った韓国ウォン(KRW)の価格が報告され、取引ボットがそのエラーを悪用してアービトラージを行いました。Synthetixが分散型データアグリゲーターを採用していれば、他の分散型データソースが問題を迅速に修正できたかもしれません。たとえオフチェーンデータソースの1つが失敗しても。

最適化アプローチ:Uniswap V3の改善と同様に、分散データ集約者を利用することで、データ伝送のセキュリティを向上させることができます。TLSなどの暗号プロトコルと署名検証を活用し、分散リレーノードと組み合わせることで、システムは中間者攻撃やデータ改ざんを防ぐことができます。たとえば、Chainlinkオラクルでは、すべてのデータソースが複数の独立したノードによって検証され、暗号化技術で保護されており、送信されるデータの完全性と変更不可性が確保されています。

4. アプリケーションアーキテクチャのモジュラーデザインによる単一障害点リスクの低減

ケース分析:多くの攻撃事件がDeFiプロトコルのモジュラーデザインの不備を明らかにし、これらはしばしば十分な防御メカニズムを欠いています。独立したモジュールを注意深く設計し構築することで、単一の脆弱性を悪用されて全体のシステムに壊滅的な被害をもたらすことを防ぐことが可能です。例えば、Synthetixのオフチェーンオラクルの障害では、開発チームが予めモジュラーアラートシステムを設計していれば、異常なデータをより迅速に特定し修正できた可能性があります。

最適化アプローチ:攻撃に対する耐性を高めるために、開発者は開発プロセス中にレイヤードアーキテクチャを採用し、各モジュール(データソース、検証ロジック、送信モジュール)が独立して動作することを確保することができます。例えば、Uniswap V3のように、異なる流動性プールからの価格情報を別々の観測プールに格納することで、プロトコルは複数のプール間で価格を比較し、単一のプールでの操作リスクを低減することができます。実際の開発では、インターフェースのカプセル化や依存性の注入などの技術を使用して、データの検証モジュールを他のロジックから分離し、システムの柔軟性と保守性を確保することができます。

5. スマートコントラクトの適応型防御メカニズム

ほとんどのオラクルは静的な防御策に頼っていますが、スマートコントラクトは高度に動的な攻撃手法に対抗するために適応型の防御戦略を採用できます。例えば、異常な価格変動の頻度を監視することにより、システムは攻撃が発生しているかどうかを判断し、そのような異常に応じて追加の検証またはロールバックメカニズムをトリガーすることができます。この適応型アプローチにより、システムは突然の価格操作中に潜在的な損失から自動的に保護することができます。

実用的なアプリケーション:一部のDeFiプロトコルは、「閾値アラート」メカニズムを実装して、リアルタイムで大幅な価格変動を検知します。価格変動が事前に設定された閾値を超える場合、システムは自動的に追加の検証プロセスを開始したり、操作のエスカレーションを防ぐためにロールバックをトリガーしたりします。たとえば、Balancerプロトコルでは価格の偏差閾値を使用しており、価格が異常に高いまたは低いと検知されると、価格の妥当性のさらなる確認が行われるまで一部の取引を停止します。

オラクルの設計とアプリケーションの最適化に関する議論を基に、DeFiアプリケーション内で具体的な解決策を探ることができます。次に、Uniswap V2の時間加重平均価格メカニズムとそのV3での改善点について紹介します。

DeFiオラクルアプリケーションにおけるセキュリティ最適化ケース

オラクルのセキュリティはDeFiプロトコルにとって重要な関心事です。多くのDeFiプロトコルは、オラクル攻撃を効果的に防止するために価値あるイノベーションを導入しています。例えば、Uniswapは、オンチェーン価格生成と防御メカニズムの最適化を通じて、オラクル設計の新しいアイデアを提供しています。Uniswap V2とV3の比較は、技術的な改良がオラクルの抗操作能力を向上させることができることを示し、スマートコントラクトの安全な設計の明確なパスを提供しています。

Uniswap V2のTWAP

Uniswap V2は、初めてTWAP(Time-Weighted Average Price)オラクルを導入し、オンチェーン開発者が分散型取引所(DEX)から価格データにアクセスできるようにしました。TWAPは、オフチェーンデータに依存せず、Uniswap自体のオンチェーン取引データからデータを提供するオンチェーンオラクルです。

インザUniswapV2Pair契約、_update()functionは、トレードペアの準備と価格蓄積器を更新するための中核的な非公開関数です。その主な目的は、時間加重価格蓄積器を使用して、オラクル攻撃を防止するのに役立つことです。

この機能の核心アイデアは、時間加重価格変動を記録することによって、攻撃者が一度に価格を操作する能力を制限することです。具体的には、この機能は、各ブロックの時間加重価格変動を計算します。関数は、時間の差を計算します(timeElapsed現在時刻と前回更新時刻との差を計算し、その差を取引ペアの現在価格で乗算して、その結果を価格蓄積器に加算します。price0CumulativeLastそしてprice1累積最終この蓄積は、潜在的な価格変動を滑らかにするために時間加重平均価格を記録します。価格は一定期間にわたって蓄積されるため、攻撃者は価格を大幅に変更するために複数のブロックを連続して操作する必要があり、それにより操作コストが増加します。

さらに、この機能は価格累積器を更新するのみです。経過時間は0より大きいため、価格はブロックごとにのみ更新されます。この設計は、攻撃者の操作頻度を短時間内に制限します。価格を効果的に操作するには、攻撃者は1つのブロックではなく、複数のブロックにわたって継続的に介入する必要があります。これにより、操作の可能性がさらに低くなります。

セキュリティの観点から、このメカニズムは堅牢です。この機能には、予備の最大値がシステムの限界値を超えないようにオーバーフローチェックが含まれており、累積価格計算もオーバーフローに対して保護されています。これらの設計要素により、外部の操作は格段に困難になります。

ただし、オラクルのV2バージョンにはいくつかの実用上の制限があります。たとえば、公式の契約は最新の累積価格データのみを提供し、開発者は過去の価格データを記録して取得する必要があります。これにより、技術的なハードルが高くなります。さらに、V2オラクルは取引ペアの深さを直接記録しません。取引ペアの深さは、オラクルの安定性にとって重要であり、攻撃に対してより容易に価格を操作することができる下位の深さは問題です。

Uniswap V3

前身の制限に対処するために、UniswapはV3バージョンでオラクル機能を改善しました。V3契約は、時間の経過とともに累積価格値を保持し、最大65,535レコードをサポートする歴史的価格情報を格納する機能を追加しました。これにより、開発者が歴史データを手動で格納する必要がなくなりました。

さらに、V3バージョンのオラクルは、さまざまな手数料ティアの時間加重流動性値を記録します。これにより、開発者はボリュームの高い流動性プールを価格参照ソースとして選択し、より高い価格の正確性を確保することができます。すべてのオラクル関連のロジックはOracleライブラリにカプセル化されており、外部のユーザーメンテナンスを必要とせずに、各トランザクションの累積価格と流動性情報を自動的に記録することができます。

もう一つ注目すべき改善点は、価格計算方法の調整です。Uniswap V2では、TWAPの計算は算術平均に基づいていましたが、V3では幾何平均を採用しています。算術平均に比べて、幾何平均は実装の安定性が高く、価格の大幅な変動がある環境に適しており、操作リスクをさらに低減することができます。

将来のトレンド

オラクル攻撃者には、組織化されたグループ、独立したハッカー、外部の関係者と協力する可能性のある内部者が含まれます。このような攻撃は通常、中程度の技術的複雑さを伴い、攻撃者はブロックチェーンとスマートコントラクトの基礎的な理解と脆弱性を悪用するための特定のスキルを持っている必要があります。技術的な障壁が低くなるにつれて、オラクル攻撃の複雑さが低下し、技術的な専門知識の少ないハッカーも参加することができるようになりました。

オラクル攻撃は自動化に大きく依存しています。ほとんどの攻撃者は、自動化ツールを使用してオンチェーンデータをスキャンし、分析し、価格変動やオラクルのデータ遅延などのセキュリティの脆弱性を迅速に特定し、悪用しています。たとえば、アービトラージボットや自動化スクリプトは、ミリ秒単位で価格変動に対応し、攻撃者が市場が調整する前に利益を確保します。ブロックチェーンネットワークが分散化を続ける中、これらの自動化された手法はますます効率的になり、オラクル攻撃がより精密で検出が困難になっています。

先を見据えると、タイム加重平均価格(TWAP)や暗号化された複数ソースデータ検証などの標準化された価格メカニズムの普及により、オラクルデータの信頼性と操作耐性が向上する可能性が高い。これによりオラクル攻撃の実現可能性が低くなる可能性があるが、新しい脅威が現れる可能性がある。特に様々なアービトラージテクニックを組み合わせてセキュリティチェックを回避する高度な手法が登場する可能性がある。DeFi開発者は警戒を続ける必要があり、オラクルセキュリティの未来は、分散型データ保護措置の継続的な強化と新興攻撃ベクトルに対する積極的な防御にかかっている。

結論

この記事では、DeFiシステムにおけるオラクルの重要な役割とそのセキュリティの脆弱性について、オラクルの種類、開発の例、事例研究、予防策を調査しました。分析は、フラッシュローンを利用したオラクル攻撃とオラクルの障害から発生するランダム攻撃という2つの主要な領域に焦点を当てました。この調査を通じて、オラクルのセキュリティアーキテクチャにおける基本的な重要性と、オラクル攻撃を防ぐための実践的な方法を示しました。

免責事項:この記事の内容は参考用であり、オラクル攻撃に関する知識の学習と交換を目的としています。実際の操作または教育的な場合のガイダンスを構成するものではありません。

著者: Doris
翻訳者: Sonia
レビュアー: Piccolo、Edward、Elisa
翻訳レビュアー: Ashely、Joyce
* 本情報はGate.ioが提供または保証する金融アドバイス、その他のいかなる種類の推奨を意図したものではなく、構成するものではありません。
* 本記事はGate.ioを参照することなく複製/送信/複写することを禁じます。違反した場合は著作権法の侵害となり法的措置の対象となります。
今すぐ始める
登録して、
$100
のボーナスを獲得しよう!