> ## Documentation Index
> Fetch the complete documentation index at: https://docs.intention.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# インデックス価格

> 資産が外部マーケットでいくらの価値を持つかについての、ネットワークの見解。ソースの加重方法、外れ値の抑え込み方、ソースが落ちたときの縮退動作です。

インデックス価格は、*この資産は今この瞬間、広いマーケットでいくらの価値があるのか*という問いに対するネットワークの答えです。これは入力値であって約定価格ではありません。インデックス価格で約定するものは何もありません。[マーク価格](/ja/trading/mark-price)を係留し、[資金調達率](/ja/trading/funding)の基準を定め、その両方を通じてポジションが生き残るかどうかを左右します。

そのため、システムが取り込む外部入力の中で最も影響の大きいものになります。以下のすべては、動かせる価格は「狙いを定められる強制決済エンジン」でもあるという事実のために存在します。

<h2 id="why-the-venue-builds-its-own">
  取引所が自前で構築する理由
</h2>

代わりの選択肢は他社のオラクルを利用することですが、その構成の故障モードはよく知られています。自分のマーケットの影響を受けた価格を参照する取引所は、一方の歪みがもう一方で強制決済の連鎖になるループを作ってしまいます。

自前で構築すれば、ソース、加重、しきい値のすべてが検証可能かつ調整可能になり、そのどれもが本取引所自身の板を指し返すことはありません。

<h2 id="from-venue-quotes-to-one-number">
  各取引所の気配から1つの数値へ
</h2>

<div className="dg" data-dg="index-price-build">
  <div className="dg-c" style={{aspectRatio:"720 / 406"}}>
    <svg className="dg-w" viewBox="0 0 720 406" aria-hidden="true">
      <path className="dg-wire" d="M 165.00 78.00 L 165.00 89.60" />

      <path className="dg-head" d="M 165.00 96.00 L 160.60 89.60 L 169.40 89.60 Z" />

      <path className="dg-wire" d="M 165.00 148.00 L 165.00 159.60" />

      <path className="dg-head" d="M 165.00 166.00 L 160.60 159.60 L 169.40 159.60 Z" />

      <path className="dg-wire" d="M 165.00 218.00 L 165.00 229.60" />

      <path className="dg-head" d="M 165.00 236.00 L 160.60 229.60 L 169.40 229.60 Z" />

      <path className="dg-wire" d="M 165.00 288.00 L 165.00 299.60" />

      <path className="dg-head" d="M 165.00 306.00 L 160.60 299.60 L 169.40 299.60 Z" />
    </svg>

    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"7.3892%",width:"45.8333%",height:"10.8374%"}}><span className="dg-t">正規化と建値通貨の換算</span></div>
    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"24.6305%",width:"45.8333%",height:"10.8374%"}}><span className="dg-t">各ソースを中央値 ± バンドにクランプ</span></div>
    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"41.8719%",width:"45.8333%",height:"10.8374%"}}><span className="dg-t">出来高 · スプレッド · 安定性で加重</span></div>
    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"59.1133%",width:"45.8333%",height:"10.8374%"}}><span className="dg-t">取引所ごとに加重の上限をかける</span></div>
    <div className="dg-b dg--green" style={{left:"0.0000%",top:"76.3547%",width:"45.8333%",height:"10.8374%"}}><span className="dg-t">インデックス価格</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"50.0000%",top:"7.3892%",width:"50.0000%",height:"10.8374%"}}><span className="dg-s">続く中央値が比較可能な数値の上で取られるように</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"50.0000%",top:"24.6305%",width:"50.0000%",height:"10.8374%"}}><span className="dg-s">主要暗号資産1% · ステーブルコイン0.5% · その他3%</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"50.0000%",top:"41.8719%",width:"50.0000%",height:"10.8374%"}}><span className="dg-s">安定性は直近の出来高を長期平均と比べるため、1つの取引所での突発的な急増で影響力を買えない</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"50.0000%",top:"59.1133%",width:"50.0000%",height:"10.8374%"}}><span className="dg-s">気配がどれだけ良く見えても</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"50.0000%",top:"76.3547%",width:"50.0000%",height:"10.8374%"}}><span className="dg-s">入力値であって約定価格ではない。インデックスで約定するものはない</span></div>
    <div className="dg-free" style={{left:"0.0000%",top:"0.0000%",width:"45.8333%"}}><div className="dg-n">取引所のフィードから1つの数値へ</div></div>
    <div className="dg-free" style={{left:"50.0000%",top:"0.0000%",width:"50.0000%"}}><div className="dg-n">その手順が潰すもの</div></div>
    <div className="dg-free" style={{left:"0.0000%",top:"91.1330%",width:"100.0000%"}}><div className="dg-n">除外ではなくクランプします。除外方式では、攻撃者が1つの取引所を引き離すだけでサンプルを減らせ、残ったソースの加重が上がるからです。</div></div>
  </div>
</div>

各ステップが、結果を動かす別々の手口を潰しています。

**正規化**。フィードはそれぞれ独自のスキーマと建値通貨で届きます。決済通貨以外の通貨建ての価格は、他の処理に先立って換算します。続く中央値が、比較可能な数値の上で取られるようにするためです。

**外れ値のクランプ**。全ソースにわたる中央値を計算し、各ソースをその周囲のバンド内に引き寄せます。バンドは、マーケットが厚いところほど狭くなります。

| 銘柄区分     | 中央値まわりのバンド |
| -------- | ---------- |
| 主要暗号資産   | 1%         |
| ステーブルコイン | 0.5%       |
| その他      | 3%         |

外れ値を*除外*せず*クランプ*するのは意図的な選択です。除外方式では、攻撃者が1つの取引所を引き離すだけでサンプルを減らせてしまい、残ったソースの加重が上がります。クランプ方式なら、全ソースを数え続けたまま、どれか1つが引っ張れる距離だけを制限できます。

**品質による加重**。ソースは均等にではなく、三つの要素にもとづく加重平均で合成します。

* **出来高**。実際の売買代金が大きい取引所ほど多くの情報を持つ
* **スプレッド**。板が狭いほど確度の高い気配
* **安定性**。直近の出来高を長期平均と比較し、1つの取引所での突発的な急増で影響力を買えないようにする

**取引所ごとの上限**。三要素すべてで高得点のソースにも上限をかけます。気配がどれだけ良く見えても、単一の取引所が支配することはありません。

これらを合わせた効果は、操作コストの下限です。インデックス価格を意味のある幅で動かすには、複数の独立した取引所を同時に、実際の板の厚みの分だけ動かし、それを維持し続ける必要があります。

<h2 id="when-a-source-misbehaves">
  ソースが異常をきたしたとき
</h2>

三つの防御が常時動いており、それぞれ異なる故障に対応します。

| 防御            | 発動条件               | 応答                          |
| ------------- | ------------------ | --------------------------- |
| **外れ値クランプ**   | ソースが中央値からバンドを超えて乖離 | バンドの端まで引き寄せ                 |
| **陳腐化による降格**  | ソースの更新が停止          | 猶予期間は直近の有効価格を使用し、その後は加重をゼロに |
| **板の妥当性チェック** | 板のクロス、または片側3階層未満   | 更新を拒否し、直前の価格を維持             |

あるソースの加重がゼロになると、残りの加重が比例して引き上げられます。取引所が1つ切断されたからといって、インデックス価格が飛ぶことはありません。

<Note>
  板のクロス、つまり買い気配が売り気配以上になっている状態は、取引可能なマーケットではなく壊れたフィードです。これを受け入れると、故障した取引所が任意の仲値を合成値に注入できてしまいます。
</Note>

<h2 id="update-cadence-and-staleness">
  更新頻度と陳腐化
</h2>

インデックス価格はおよそ3秒ごとに再計算され、コンセンサスの内側で認証されます。したがって、トランザクションが決済に用いる価格は、そのトランザクションをコミットしたのと同じバリデータのクォーラムが署名したものです。認証の仕組みは[オラクル](/ja/protocol/architecture/oracle)を参照してください。

バリデータが署名する前に鮮度をチェックします。古い値は、そのまま提出されるのではなく、提出そのものが行われません。下流では、[マーク価格](/ja/trading/mark-price)がおよそ10秒より古いインデックス価格をそのブロックでは利用不可とみなし、それなしで処理を進めます。

<h2 id="index-price-is-not-mark-price">
  インデックス価格はマーク価格ではない
</h2>

|              | インデックス価格          | マーク価格                 |
| ------------ | ----------------- | --------------------- |
| 答える問い        | 外部でいくらの価値があるか     | このポジションはここでいくらの価値があるか |
| 構成要素         | 外部取引所のフィード        | 4つの入力。うち1つがインデックス価格   |
| 用途           | 資金調達率の基準、マーク価格の入力 | 証拠金、強制決済、未実現損益        |
| 本取引所の板を反映するか | しない               | 部分的にする                |

両者を分けているからこそ、マーク価格はローカルな状況、つまり本取引所での実際のプレミアムやディスカウントを反映しつつ、ローカルな状況だけを映す数値にはならずに済みます。

<Warning>
  これらの仕組みは、単一のソースがインデックス価格を動かせる幅を制限します。インデックス価格を正しくするものではありません。市場全体の乖離が起きた場合や、複数の主要取引所で協調した動きがあった場合、インデックス価格はマーケットとともに動きます。その時点でそれは操作されているのではなく、報告しているからです。[リスク開示](/ja/protocol/security/risks)を参照してください。
</Warning>

<h2 id="where-to-go-next">
  次に読む
</h2>

<CardGroup cols={2}>
  <Card title="マーク価格" href="/ja/trading/mark-price">
    インデックス価格が、ポジションを左右する数値になるまでです。
  </Card>

  <Card title="資金調達率" href="/ja/trading/funding">
    マーク価格とインデックス価格の差が、どう価格づけされ決済されるのかです。
  </Card>

  <Card title="オラクル" href="/ja/protocol/architecture/oracle">
    コンセンサスでの認証と、価格の可用性がブロック生成を制約する理由です。
  </Card>

  <Card title="リスク開示" href="/ja/protocol/security/risks">
    残る価格リスクと、それが生みうる損失です。
  </Card>
</CardGroup>
