Skip to main content
Intentionは外部のオラクル委員会を使いません。バリデータ集合がオラクルそのものです。各バリデータがすべての銘柄の価格について自分の見解を生成して署名し、ネットワークは、その価格で決済されるトランザクションをコミットするのと同じコンセンサスイベントの中で結果を認証します。 手順は二つに分かれ、それぞれ別の問いに答えます。集約が問うのはこの銘柄はいくらの価値があるかで、コンセンサス経路の外でバリデータごとに行われます。認証が問うのはこのラウンドでいくらだったとネットワークが合意するかで、コンセンサスの内側で行われます。
バリデータごと:コンセンサス経路の外
コンセンサスの内側
取引所
オラクルsidecarバリデータごと
バリデータが検証し署名
バリデータ間へgossip
エポック・ラウンドごとに認証
ブロックに載る
カーネル:マーク価格 · 証拠金 · 強制決済 · 資金調達率同じコンセンサスイベントでコミットされた価格で決済

インデックス価格の生成

どのバリデータも自前のオラクルsidecarを動かします。sidecarは複数の取引所からデータを集め、銘柄ごとにひとつのインデックス価格へ縮約します。この縮約は意図的に単純平均ではありません。平均は、ひとつの不良ソースで簡単に動いてしまうからです。
フィルタ非有限値と不正な形式の値
中央値ソース横断
丸め込み各ソースを中央値 ± バンドへ
重み付けスプレッドと安定性で
上限取引所ティアで
インデックス価格
この順序こそが設計フィルタが最初に走るのは、無限大の値がひとつでも中央値や加重和まで生き残れば、その後のすべてが汚染されるからです。破棄ではなく丸め込みにすることで、すべてのソースを数に入れたまま、どれか一つが引っ張れる距離に上限をかけます。
単純平均ではない。平均はひとつの不良ソースで簡単に動く
フィルタ。非有限値と不正な形式の値は、下流の何にも触れないうちに破棄されます。この順序が重要です。無限大の値がひとつでも中央値や加重和まで生き残れば、結果全体が汚染されます。 中央値への丸め込み。まずソース横断で中央値を取り、次に各ソースをその周囲のバンド内へ丸め込みます。バンドは銘柄ごとに設定され、市場が最も厚いところで最も狭くなります。 バンドの外を提示するソースは破棄されません。バンドの端まで引き寄せられます。この違いは重要です。破棄は攻撃者にサンプルを縮められる余地を与えますが、丸め込みはすべてのソースを数に入れたまま、どれか一つが引っ張れる距離に上限をかけます。 品質で重み付けし、上限をかける。丸め込まれたソースは、均等ではなく加重平均で合成されます。重みは、気配の品質が高いほど、また安定性が高いほど大きくなります。スプレッドが狭ければ、それだけ大きく数えられるということです。安定性は直近の出来高を長期の日次平均と比較して測るため、出来高が異常に跳ねた取引所が、それによって影響力を得ることはありません。 重みはさらにソースのティアによって上限がかけられます。気配がどれだけ良く見えても、単一の取引所が結果を支配できないようにするためです。 別の通貨建てで気配が出ている銘柄は、これらすべての前に共通のクオート通貨へ換算されます。単位の混ざった数値ではなく、比較可能な数値の上で中央値を取るためです。
ここに出てくる定数はどれも自然定数ではなく、方針上の決定です。乖離バンド、ティアの割り当て、重みの上限はいずれも設定値であり、取引所の挙動が変わったときや新しいソースを追加したときに調整されるレバーです。

認証の仕組み

sidecarが生成するインデックス価格は、ひとつのバリデータの見解にすぎません。それをネットワークが決済に使えるものへ変えるのは、コンセンサスの中です。 バリデータは自分のsidecarから価格を取得し、署名する前に検証します。設定されたしきい値に対する鮮度もそこに含まれるため、停止したsidecarは古い値を出すのではなく何も提出しません。そのうえで価格データに署名し、署名済みの提出をコンセンサスネットワークメッセージとして他のバリデータへgossipします。 認証済み価格はエポックとラウンドごとに組み立てられ、ブロック提案に載ります。したがって、ブロックのトランザクションをコミットする署名は、それらのトランザクションが決済された価格も同時にコミットします。オラクル専用のトランザクションは存在せず、価格が公開されてから使われるまでの時間差もありません。 そのラウンドの有効な価格観測がなければ、バリデータはブロックを提案できません。価格の可用性はブロック生成の前提条件であって、実行が見つかることを期待する入力ではありません。

インデックス価格とマーク価格

認証されるのはインデックス価格であり、外部市場に対するネットワークの見解です。取引が約定する価格ではありません。 カーネルはそこからマーク価格を導出します。平滑化と上下限がかけられており、インデックスの短時間の乖離が強制決済の連鎖につながらないようにしてあります。証拠金、強制決済、資金調達率が実際に使うのはマーク価格です。取引側から見た説明はマーク価格とインデックス価格を参照してください。

保証すること、保証しないこと

保証されるのは、トランザクションが決済に使った価格が、そのトランザクションをコミットしたラウンドでバリデータのクォーラムによって認証されたことと、どの実行経路も別の価格を読みえなかったことです。 価格が正しかったことは保証されません。インデックスの元になっている取引所自体が間違っていれば(複数の取引所にまたがる協調的な動きや、市場全体の乖離によって)、丸め込みと重み付けは単一のソースが結果を押せる距離を制限しますが、市場が持っていなかった情報を作り出すことはできません。
価格は、取引システムにとって最も影響の大きい外部入力です。ここでの操作耐性は程度の問題であって、あるかないかの性質ではありません。どこにリスクが残るのかはリスク開示を参照してください。

次に読む

IntentionBFT

認証が、ブロックをコミットするのと同じ署名にどう結び付けられるのかです。

クリアリングハウス

証拠金、強制決済、資金調達率が、その価格をどう使うのかです。

マーク価格

インデックスが、ポジションを動かす数値になるまでです。

リスク開示

価格リスクがどこに残り、それがいくらの損失になりうるのかです。