TWAPオラクルとは何か、なぜDeFiプロトコルがそれに依存するのか
— By Tony Rabbit in Tutorials

TWAPオラクル暗号価格フィードは、資産の価格を一定の時間枠で平均化するため、単一の操作されたブロックが貸付または清算エンジンを欺くことはできません。その仕組み、なぜスポット価格が危険なのか、そしてTWAPが依然として破綻する場所について説明します。
TWAP oracle crypto価格フィードは、資産の瞬間的なスポット価格ではなく、過去30分間などの定義された時間枠における時間加重平均価格(TWAP)を報告するオンチェーンメカニズムです。多くのブロックにわたって価格を平滑化することで、DeFiプロトコルが消費する数値を操作することがはるかに困難になります。攻撃者が1つのブロックで価格を急騰させても、その急騰は平均にわずかな影響しか与えず、報告される数値をほとんど動かしません。これが、貸付市場、清算エンジン、担保システムがTWAPオラクルに依存する理由です。これらは、わずかな鮮度と引き換えに多くの安全性を提供します。
主なポイント
TWAPオラクルとは
TWAPオラクルは、観測された各価格がどれだけの間有効であったかによって重み付けし、その合計経過時間で割ることによって価格を計算します。トークンが9分間100で取引され、1分間110で取引された場合、最終的な単純なスポット読み取り値は110ですが、時間加重平均は101に近くなります。オラクルは平均を返すため、一時的な変動が出力に与える影響は限定的です。
重要なことに、これは分散型取引所自身の取引履歴からオンチェーンで計算されます。信頼できるオフチェーンレポーターも、クエリするAPIもありません。価格はプールの記録された状態の決定論的関数です。この自己完結型の設計は、プロトコルがそれを評価する理由の1つですが、後で見るように、それは無料ではありません。この用語は実行戦略と重複することに注意してください。TWAP orderは、スリッページを減らすために、大きな取引を時間とともに分割します。これは取引戦術です。TWAPオラクルは価格報告ツールです。同じ数学的アイデアですが、目的はまったく異なります。
なぜスポット価格は貸付や清算にとって安全ではないのか
単一の流動性プールから瞬間的なスポット価格を読み取り、担保を評価する貸付プロトコルを想像してみてください。その価格が1つのトランザクションの期間中に動かせる場合、攻撃者は膨張した担保に対して借り入れたり、不公平な清算を引き起こしたりして、同じブロック内で立ち去ることができます。これは理論上の話ではありません。これはほとんどのオラクル操作エクスプロイトの核心です。
そのための武器は通常flash loanであり、攻撃者は同じトランザクション内で返済される限り、担保なしで巨額を借り入れることができます。その資金を使って、彼らは薄いプールのスポット価格を劇的に変動させ、被害プロトコルに歪んだ数値を読み取らせ、価値を抽出し、すべてをアトミックに元に戻します。スポットオラクルにはメモリがなく、正確に1つのブロックに対して真である価格に対する防御策もありません。Aaveで借りる際に見られるような担保チェックなど、誤った価格が実際の金銭的損失を意味するプロトコルでは、生のスポット価格を読み取ることは無謀です。
Uniswapスタイルの累積価格TWAPの仕組み
Uniswapは、長い価格履歴を保存することを避けるエレガントなオンチェーンTWAPを普及させました。プールは実行中のアキュムレータを維持します。価格が変更されるたびに、現在の価格に最後の更新からの秒数を乗じたものを累積カウンターに追加します。このカウンターは常に増加し、価格と時間の履歴全体を単一の数値にエンコードします。
任意のウィンドウの平均価格を取得するには、消費者は開始時刻と終了時刻でアキュムレータを読み取り、減算し、経過秒数で割ります。結果は、そのウィンドウ全体の正確な時間加重平均です。データはプール内に存在し、消費者が両方のエンドポイントを選択するため、プロトコルは平均化するウィンドウの長さを決定します。深い集中流動性を持つプールは、ウィンドウ全体で価格を意味のある方法で動かすには攻撃者にはるかに多くの資本がかかるため、これをさらに堅牢にします。
遅延と操作耐性のトレードオフ
ウィンドウ長は最も重要な設計上の選択であり、トレードオフを強います。ウィンドウが長いほど、短期的な操作をより強く希釈するため、攻撃者は歪んだ価格をより多くのブロックにわたって維持する必要があり、これは指数関数的に多くの資本を要し、価格を押し戻す裁定取引にさらされます。これが安全性の利点です。
コストは遅延です。長いウィンドウは、オラクルが高速な動きの際に昨日の現実を報告することを意味します。真の急激な市場下落では、遅いTWAPは担保を過大評価し続け、ポジションがすでに水没するまで清算を遅らせ、プロトコルに不良債権を残す可能性があります。したがって、ウィンドウは操作を非経済的にするのに十分な長さでありながら、ソルベンシー問題になる前に実際の動きに反応するのに十分な短さでなければなりません。普遍的に正しい数値はなく、資産のボラティリティとプールの深さに依存します。
TWAPとプッシュ・プルオラクル、そしてTWAPが失敗する場所
TWAPは唯一のオラクル設計ではなく、単一の価格ソースとしてではなく、健全性チェック層としてますます使用されています。2つの主要な代替案は非常に異なる動作をするため、より詳細なChainlinkとPythの比較と合わせて理解する価値があります。
Chainlinkモデルであるプッシュオラクルは、オフチェーンノードが多くの取引所から価格を集約し、しきい値を超えた場合、またはハートビート間隔後に更新された値をオンチェーンにプッシュします。Pythモデルであるプルオラクルは、ファーストパーティのパブリッシャーが価格に署名し、誰でもオンデマンドでオンチェーンにプルできるため、消費者は必要な瞬間に非常に新しい値を取得します。プッシュとプルはどちらも広範な市場全体のデータを利用するため、単一プール操作には耐性がありますが、レポーターネットワークの誠実さと活動性に依存します。
対照的に、TWAPは外部のレポーターを信頼せず、単一のプール自身の履歴のみを信頼します。それがその強みであり、弱みでもあります。基盤となるプールが十分に薄く、攻撃者がウィンドウ全体にわたって歪んだ価格を維持できる場合、流動性が移動してプールが真の市場を反映しなくなる場合、または資産が非常に速く動くため、遅延自体が悪い評価を生み出す場合に失敗します。現代のベストプラクティスはレイヤリングです。新鮮なプッシュまたはプルフィードを主要な価格として使用し、TWAPを最近の平均から大きく逸脱する値を拒否するガードレールとして使用します。単一のオラクル設計だけでは十分ではありません。
この記事は教育目的のみであり、金融アドバイスではありません。