仕組みの詳細
価格:BBOプリコンパイル
Exchangeは、EVMのプリコンパイルを通じて、Hyperliquid自身の板から価格を直接読みます。オフチェーンのオラクルも、価格ボットも、価格の署名者もいません。
BBOプリコンパイルの技術的な実装
無期限先物取引所が価格を必要とする仕事は二つあります。取引を約定させることと、ポジションをいつ清算するかを決めることです。多くのチェーンでは、そのためにオラクル運営者を信頼するか、遅くて高価な分散型フィードに頼るか、価格を出す側が止まるだけで市場を凍結できてしまうリスクを受け入れるしかありません。
HyperEVMには別の方法があります。Hyperliquidの板を動かしているレイヤーであるHyperCoreは、読み取り用プリコンパイルを通じてHyperEVMのコントラクトから読めます。これは固定アドレスにあるシステムコントラクトで、価格を含むHyperCoreの最新の状態を返します。ExchangeはBBOプリコンパイル(0x000000000000000000000000000000000000080e)を使います。Hyperliquidのアセットインデックス(メインネットではBTCが0、ETHが1)を渡すと、その無期限先物の現在の最良買い気配と最良売り気配を返します。
(ok, bid, ask) = HyperCore.readBbo(assetIndex, precompileGas) // a static call with a fixed gas allowance
require(ok && bid != 0 && ask != 0 && ask >= bid) // an empty or crossed book reverts
約定価格は、マーケットの生の価格単位(Hyperliquidの価格にマーケットごとのスケールを掛けたもの)での中間値を切り捨てたものです。
price = (bid + ask) / 2
価格決定の仕組みはこれだけです。同じブロック内の読み取りはすべて同じスナップショットを見ます。さらにExchangeは各マーケットの価格を呼び出しの残りの間キャッシュするので、同じブロック内の同じマーケットの新規建て、決済、清算はすべて同じ価格を使います。
失うものと得るもの
代償ははっきりしています。上場できるのは、すでにHyperliquidの板で取引されているマーケットだけです。Hyperliquidが上場していないものは、ここでは取引できません。
その代わり、価格決定にオフチェーンの部分は一切ありません。BBOはHyperCoreの状態であり、台帳上の残高と同じくHyperliquidのコンセンサスで検証されています。価格の署名者もオラクル委員会もいません。Exchangeが見る価格は、そのブロックでHyperliquidのマーケットメイカーが提示している価格で、どのコントラクトでも読めます。
乖離ブレーカーはありません
誰かが、スプレッドを広げたり最良気配をずらしたりして、一ブロックの間Hyperliquidの板を動かし、ゆがんだミッド価格でここで取引しようとする可能性があります。これはBBOを直接使うことによる現実のリスクです。
読み取りでは、プリコンパイルが応答しないとき、板のどちらかの側がゼロのとき、板がクロスしているときに取引をリバートします。買いと売りが同値のロックした板は受け付けます。コントラクトには価格ガードもあります。最大スプレッドと、ミッド価格をHyperliquidのマーク価格やオラクル価格と比べるバンドです。ただし、デプロイ済みの設定ではこれらを意図的にオフにして、約定を生のミッド価格に保っています。そのため、操作されていてもゼロではなくクロスもしていない板は受け付けられます。デッドバンド、インパクトカーブ、片側ごとの建玉上限、建てたばかりのポジションの決済に対するリレイヤーの短い保留(6秒)は、一部の利益を減らし、エクスポージャーを制限します。しかし、操作を割に合わないものにしたり、LPの損失に上限を設けたりするものではありません。リスクをご覧ください。
リアルタイムで使える唯一の手段:マーケットの廃止
価格に関する管理操作のうち、即座に効果を持つものが一つあります。マーケットの廃止です。ガーディアンがpauseMarket(instrumentId)を呼ぶと、現在のBBOが凍結された買い気配と売り気配として保存され、マーケットは廃止済みになります。それ以降は次のとおりです。
- そのマーケットでの新規建てはリバートします。
- 決済と清算は引き続き可能で、ライブの板ではなく凍結された板が使われます。
廃止は恒久的です。所有者を含めて誰も、そのマーケットIDを再開できません。廃止したマーケットが復活できるとすると、保有者は凍結価格と後のライブ価格のどちらかを選べることになり、再開のタイミングそのものが駆け引きの対象になってしまいます。マーケットを戻す場合は、新しいIDで改めて上場します。凍結価格があるので、ポジションを閉じ込めずにマーケットを止められます。運営者が介入した時点で妥当だった価格で、引き続き決済できるからです。廃止はマーケット単位なので、一つの銘柄の問題でほかが止まることはありません。
その時点で板自体が使えない、または信頼できない場合、ガーディアンは代わりに、Hyperliquidのマーク価格かオラクル価格でマーケットを廃止できます(そのソースを指定したretireMarket)。BBOの読み取りに失敗した場合は、自動的にマーク価格が使われます。ガーディアンはsetTradingPaused(true)で全マーケットの取引を一時停止することもできます。この場合は価格を凍結せず、決済と清算はライブの板を使い続けます。一時停止を解除できるのは所有者だけです。
マーケットキーパーによる建玉上限と取引の最低額、時間外キーパーによる二つの支払いカーブの選択、ガバナンス・マルチシグによるビルダーの削除を除けば、そのほかの管理操作(手数料、インパクトのパラメーター、上場、キーパー、アップグレード)はすべて、タイムロックを経由する所有者の操作です。