メインコンテンツにスキップ

価格オラクル

プロトコルがLPのポジション状態を信用関連の担保価値に変換する方法。

概要

Avanaは、ポジションを再構築し、その中の資産を評価することでLPの担保を価格設定します。代替可能なLPに対しては、プロトコルは外部資産価格とプールの残高再構築から価値を導き出します。集中流動性に対しては、流動性、レンジ、現在のティック、トークンエクスポージャー、および未収料金によってポジションを分解します。

結果は回収可能な担保価値に割引されます。借入可能額は、市場のリスク前提の下でポジションが現実的に支えられる範囲に基づいており、楽観的な純資産価値に基づくものではありません。

時価と回収可能価値の区別があるからこそ、オラクルは分析だけでなくレンディングに使えます。ERC-20 LP、NFT LP、マルチアセットプールが一つの抽象インタフェースを共有できるのは、価値が Spoke に届く前に各クラスが独自の検証と操作耐性チェックを経るからです。

LP collateral value depends on:

  • 基礎資産の価格
  • プールの予備または在庫の分割
  • Fee accrual
  • 集中流動性の場合、ポジション範囲に対する現在のティック
  • そのポジションがレンジ内か、ほとんど片側寄りかどうか

オラクルインターフェース: IOracle

DEX ごとに LP 形式が大きく異なっても、Borrow Spoke は一つのコントラクト・サーフェスを必要とします。`IOracle` がその共通形を提供し、元本価値・未収手数料・予約バッファを分離するため、後段のリスクロジックはポジションのどの部分かを推測する必要がありません:

function getValue(uint256 tokenId, address asset)
  external view returns (
    uint256 fullValue,
    uint256 feeValue,
    uint256 reserveValue
  );
fullValue後の清算ストレス調整が適用される前の元本流動性の再構築された価値。
feeValue元本と共に認識できるポジションによって発生した手数料の価値。
reserveValueオラクル、アンワインド、およびプロトコルリスクのバッファのために確保された予約部分。

インタフェースは DEX 固有の接続処理を Spoke から隠します。同じ呼び出し元が一つの戻り形で ERC-20 LP・NFT LP・マルチアセットプールを扱え、裏では保守的で担保ファミリ固有の処理を残します。

多層アーキテクチャ

LP の評価は単一の現物価格の読み取りではなく、段階的なプロセスです。オラクルの経路は以下のステップを通ります:

1

外部の信頼できるオラクルから基礎資産の価格を取得する

基礎資産のために回復力のある外部フィードから始めることで、担保が生のプールスポットの状態の全てのノイズや操作可能性を引き継がないようにする。

2

LP の値を保守的に導出する

準備金・流動性・レンジ・手数料から、代替可能 LP 残高を再構築するか集中流動性ポジションを分解します。Spoke が解釈できる決定論的パスを使います。

3

一時的損失と清算スリッページのヘアカット

理論上のNAVでのきれいな償還ではなく、ストレス、スリッページ、不完全な出口を想定した回収可能な担保価値に再構築されたマークを割引する。

4

LP ファミリーおよびプールの深さによる上限露出

LP ファミリー、プールクラス、および利用可能な深さに基づいてコントロールを適用し、より薄いまたは複雑な市場が、より深く単純な市場と同じ借入限度を受けないようにします。

5

楽観的なNAVではなく、回収可能な解消価値に基づいて清算する

借入権を付与する際や清算を決定する際には、最良ケースの時価ではなく、アンワインド経路を通じて合理的に実現可能な価値を使用してください。

DEX 固有の扱い

異なるDEXは異なる状態の部分を公開し、オラクルはそれらの入力を使用してポジションを再構築し、価格を検証します。プールから得られたデータは、直接の担保評価として盲目的に受け入れられることはありません。

DEX / LP 種別オラクルソース補足
Curve 安定/安定 ERC-20 LPs外部ステーブルコインフィード + プール状態チェック + TWAP 検証外部の価格が資産を固定し、プール残高と手数料の蓄積が割引後の担保価値を決定する。
Uniswap V2 ERC-20 LPChainlink + 予約再構築 + TWAP 検証標準LPトークンは、再構築された基礎残高から評価され、TWAPは操作耐性のある相互確認として使用されます。
Uniswap V3 の NFT 流動性提供者Chainlink + ポジション分解 + ティック/TWAP チェックNFTは、流動性、アクティブレンジ、現在の価格によって分解され、その後、回収可能な清算価値のためにヘアカットされます。
Balancer マルチ資産 LPChainlink + 加重在庫再構築マルチトークンプールは、外部価格と加重プール在庫を使用して、保守的な担保価値を見積もります。
SushiSwap / AerodromeChainlink + 予約再構築 + TWAP 検証プール由来の観測は、再構築された価値を検証し、流動性の低い市場での同一取引による不正利用に対抗するのに役立ちます。
PancakeSwapChainlink + ブロックベースのTWAP確認外部価格は依然として基準となり、ブロックベースの観測はポジションの状態を検証し、仮定を解除する。

DEX 別 TWAP 計算

TWAPは検証用の入力です。これらは、プールの状態が信頼できる解消経路と一致しているかどうかを確認するために、外部資産価格や決定論的なポジション再構築の横に配置されます。これにより、疑わしいまたは短期間の歪みを排除するのに役立ちますが、単独でより広範なオラクルモデルの代わりにはなりません。

Uniswap V2 と SushiSwap

On-chain cumulative price data over a 1-hour window is used to cross-check the reconstructed reserve picture and reduce sensitivity to flash swaps or other short-lived pool distortions.

Uniswap V3

ポジション認識のチェックはティック範囲、流動性分布、および発生した手数料を組み込み、プロトコルが各NFT LPの分解されたトークンエクスポージャーを検証できるようにし、NFTをブラックボックスとして扱うことを避けます。

Balancer

加重トークンの観測値は、オラクルが保守的な担保価値を割り当てる前に、複数資産の在庫分割を検証するためにプールの重みと組み合わされます。

Curve

ステーブルコインの観察は主に、外部価格が主要な基準のままである間、古くなったフィード、準備金の逸脱、短期的な異常を検出するために使用されます。

Trader Joe と Aerodrome

30〜60分のウィンドウでの累積価格観測は、低流動性プールの状態を検証し、担保チェック中の同一取引による操作に抵抗するのに役立ちます。

安全性と操作防止

  • 乖離しきい値

    プール由来の検証データが外部の参照価格からあまりにも離れた場合、新しいローンや清算は一時停止されることがあります maxDifference.

  • maxPoolPriceDifference

    これにより、プールが示す状態は基礎となるトークン価格と一致し、瞬時のプール操作や同一トランザクション内でのオラクルの不正利用を制限できます。

  • 建玉キャップ

    エクスポージャーはLPファミリー、プールの深さ、担保の複雑さによって制限されるため、市場が薄い場合は借入上限が厳しくなる。

  • 回収ヘアカット

    オラクルは、借入可能枠が付与される前に、理論上のLPの価値から、非恒久的損失、解消スリッページ、およびストレス下での清算の仮定を割り引きます。

  • Oracle Sentinel

    Oracle Sentinelの時計は、健康および検証の入力を監視し、データが古い、破損している、または位置状態チェックと一致しない場合にフォールバック動作を引き起こすことができます。

設定可能なオラクルパラメータ

プール固有のオラクル設定は、各トークンごとに設定されます setTokenConfig以下の表は、トークンとそれに関連するプールをどのように確認すべきかを定義するパラメータを示しています。

パラメータ説明
トークン担保トークンのアドレス
AggregatorV3InterfaceChainlink の基礎となるトークンのフィード
maxFeedAgeChainlink給餌の最大許容年齢
プール特定のDEXプール(Uniswap V3、Balancer、Curveなど)
twapSecondsTWAP 計算用ウィンドウ
モードオラクル運用モード(標準/フォールバック)
maxDifferenceDEXと検証価格の間の最大許容偏差

実際には、オラクルの挙動は、外部資産の価格設定、LP の再構築ロジック、回収可能価値の処理、およびトークンごとに設定された設定の組み合わせから生じますsetTokenConfig.