レッスン0 — 永久先物とは何か、そしてなぜ期限がないのか
問い
DIY Perp track の実装レッスンは「premium = (mark − index) / index、divisor 8、cap ±4%」のように 15 文字に perp 用語 6 つを詰め込む。Rust infra から来たエンジニアには「数式が難しいパート」に見えるが、実は数式は易しい。難しいのはメカニズムのほうだ。 Perp とは何か、なぜ期限がないのに価格が anchor され続けるのか?
原理(最小モデル)
- 3 つの市場、3 つの契約. Spot(現物保有、即時決済)/ 伝統的 futures(期限あり、満期で spot に収束)/ Perp(期限なし、収束メカニズムは内蔵されない)。
- 「期限なし」が本物のエンジニアリング課題. 伝統的 futures の収束力は「満期そのものが anchor」、Perp はその anchor を外す = 価格は orderbook 需給だけで決まる → 投機的熱狂で 5-10% 乖離、パニックで反対側に走る、bull market で premium 持続。
- 解決策 = funding payment(L1 で詳述). Mark が index より上に離れたとき long → short に gap 比例の周期的手数料、下に離れたとき short → long、収束させる経済インセンティブ。Funding が perp に対して果たす役割は expiry が伝統的 futures に対して果たす役割と同じ、違いは 1 点でなく連続的に作用する点。
- Perp が存在する場所. CEX(Binance / OKX / Bybit / BitMEX — BitMEX が 2016 年に現代型 perp 発明)/ 既存 L1 上の DEX(dYdX / Drift / Aevo)/ 専用 L1 上の DEX(Hyperliquid 最大、出来高 $300B+ /year)。
- なぜ Hyperliquid を例に取るか. 専用 L1 = perp UX に必要な全層(latency / gas / orderbook 深さ)を perp 向けにチューニング可能、現状 closed-source(HyperBFT / HyperCore / HyperEVM)、
psyto/openhlがオープンリファレンス、rethlab DIY Perp track はそれを作ることを教える。 - Hyperliquid 固有のパラメータ(残りレッスンで繰り返し登場). Funding interval 1 時間 / divisor 8 / cap ±4% / interval / Initial margin ~10% / Maintenance margin ~2% / Liquidation fee ~1.5% notional / Cross-margin デフォルト / Insurance fund + ADL。
- よくある 3 誤解. ① 「perp = 自動 roll futures」(違う、roll は basis cost が乗る、perp は funding が代替)、② 「perp は spot より危険」(leverage 使わなければ 1× perp ≈ spot、funding コストだけ違う)、③ 「Hyperliquid は Ethereum スマコン」(違う、独立 L1)。
具体例 + ステップで組み立てる
永久先物とは何か — そしてなぜ期限がないのか
30秒要約
- 対象: Rust 実装に入る前に、perp の仕組みを先に理解したい人。
- 得られるもの: spot / futures / perp の違いと、funding が必要な理由。
- このあと: Step 1 以降の実装レッスンで出る用語が読めるようになる。
完了条件
- 「なぜ perp には funding が必要か」を 2-3 文で説明できる。
- 「spot と perp の違い」を 1 つ以上具体例で説明できる。
ゴール
このレッスンで掴む概念:
- 永久先物(perpetual future)の正体。 期限がない、決済イベントもない、満期で spot 価格に収束する仕組みも持たない、そういう派生商品だ。本 primer の残り 3 レッスンの形状は、この 1 つの設計選択から導かれる。
- 「期限なし」が実際に解くべきエンジニアリング課題だった理由。 その課題を解くために新しい経済メカニズム(レッスン1 で扱う)を発明する必要があった。
- perp、spot、伝統的 futures の違い。 3 つの市場、3 つの価格動態、3 つのトレーダーインセンティブ。
- なぜ本コースで Hyperliquid を例に取るのか。 現状は closed-source。rethlab DIY Perp track は、その open 版を作ることを教える。
このレッスンを終えると、以下に答えられる:
- 「BTC を spot で買うのと、BTC perp を long するのは何が違う?」
- 「perp に期限がないのに、なぜ価格が原資産から離れずに済むのか?」
- 「Hyperliquid とは何で、Rust EVM エンジニアにとってなぜ重要なのか?」
なぜこの primer が存在するか
rethlab の DIY Perp track は、openhl という open-source の Hyperliquid 実装をゼロから組み上げるコース群だ。Consensus substrate、CLOB matching engine、EVM precompile、funding state machine、liquidation engine — すべて openhl 本体と byte 単位で一致するように書かれている。
ただしコードは、perp が何かを分かっていて初めて意味を持つ。 Funding コースが「premium = (mark − index) / index、divisor 8、cap ±4%」と書く瞬間、15 文字の中に perp 用語が 6 つ詰まる。Rust の infra 仕事から流れてきたエンジニアなら、「数式が難しいパートだろう」と思っても無理はない。実は数式は易しい。難しいのはメカニズムのほうだ。
この primer は、DIY Perp track が暗黙のうちに前提にしていた概念レイヤーを 4 レッスンで明示化する。コードなし、openhl reference なし — その後の Rust コードを読み解くために必要な perp の仕組みだけを扱う。
3 つの市場、3 つの契約
BTC の価格に対してポジションを取る方法は 3 種類ある:
| 市場 | 保有するもの | 決済 | 例 |
|---|---|---|---|
| Spot(現物) | 実物の BTC そのもの | 即時 — 所有する | Coinbase で 0.1 BTC を買う。手元に 0.1 BTC が残る。 |
| 伝統的 futures(先物) | 将来の特定日付に BTC を固定価格で買う/売る契約 | 満期に — 差金(現金)または現物で決済 | CME 2026 年 12 月 BTC future。12 月 31 日に $100k で買う約束。 |
| 永久先物(perp) | BTC 価格に連動する契約。期限なし | なし — ポジションを閉じるまで継続(差金決済) | Hyperliquid の BTC-USD perp。10× long を取り、margin が足りているかぎり開いたまま。 |
Spot は最もシンプル。資産を保有しているので、価格の動きがそのまま自分の損益になる。
伝統的 futures はそこに leverage(notional 全額を前払いしなくていい)と expiry(契約は固定日に終了し、その時点で arbitrage によって価格が spot に収束する)を加える。1800 年代から商品市場で使われてきた、数百年かけて洗練された設計だ。
永久先物は、伝統的 futures から leverage はそのまま取り、expiry を外す。一見地味な変更に聞こえる。実際には、現代のデリバティブで最も重大な設計選択だ。
期限がないことが本物の課題だった
伝統的 futures には収束メカニズムが組み込まれている。満期では契約価格は必ず spot 価格に等しくなる。等しくなければ arbitrage で差が削られる。満期そのものが anchor の役目を果たす。
その満期を外すと、anchor が消える。Perp の価格は、その venue の orderbook の需給だけで決まる。契約自体に spot を追わせる力は何もない。
結果として、perp は乖離する。それも大幅に。
- 投機的熱狂: long が short より多い → mark price が index より 5%、10% 上に走る
- パニック: short が long より多い → mark が index より下に走る
- 偏った建玉: retail の long が大半を占める venue(bull market など)では、premium が長期間プラス側に張り付く
補正メカニズムがなければ、perp は「ステップが余計に多い futures」になる。しかもその余計なステップはすべて誤った方向に作用する。BTC を追うはずの契約の価格が、BTC を追わない。
解決策が funding payment。 これが レッスン1 のテーマだ。30 秒版で言うと: mark が index より上に離れたとき、long は short に少額の周期的な手数料を gap に比例して支払う。この手数料が mark を引き戻す経済インセンティブになる。Mark が index より下に離れたときは、対称的に short が long に支払う。
Funding が perp に対して果たす役割は、expiry が伝統的 futures に対して果たす役割と同じだ。収束させる力。違いは、1 点ではなく連続的に作用する点。それが innovation のすべてだ。
Perp が存在する場所
| Venue タイプ | 例 | 補足 |
|---|---|---|
| CEX(中央集権) | Binance、OKX、Bybit、BitMEX | BitMEX が 2016 年に現代型 perp を発明。Binance は世界最大の出来高。 |
| 既存L1上の DEX | dYdX(Cosmos)、Drift(Solana)、Aevo(Optimism rollup) | Composable で on-chain だが、ホストチェーンの latency と gas を継承する。 |
| 専用L1上の DEX | Hyperliquid、Aevo、Vertex | Perp UX に最適化した purpose-built L1。Hyperliquid は出来高で最大。 |
「専用L1上の DEX」カテゴリが、Rust エンジニア視点で最も興味深い。Perp DEX を Ethereum L1上のアプリとして作ると遅くて高い。Rollup として作ると速度のために集権性を引き換える。Perp 専用L1として作れば、UX に必要なすべての層を perp 向けにチューニングできる。 これが Hyperliquid のやったことで、DIY Perp track が教えることだ。
なぜ Hyperliquid を例に取るのか
Hyperliquid は出来高で最大の perpetual DEX、2025 年に $300B+ を捌いた。スタックは完全 closed-source: HyperBFT consensus、HyperCore matching engine、HyperEVM execution。L1 の中身を読みたいエンジニア向けに公開された Rust リファレンスは存在しない。
psyto/openhl がその open-source リファレンス実装だ。rethlab の DIY Perp track は、それを作ることを教える。本 primer を終えた読者は、コードを読むのに必要な perp の知識を持っている状態になる。
primer の残りで何度も出てくる Hyperliquid 固有の数値を、ここでまとめて挙げる:
- Funding interval: 1 時間(レッスン1)
- Funding rate divisor: 8(レッスン1)
- Funding rate cap: ±4% / interval(レッスン1)
- Initial margin: ~10%(レッスン2)
- Maintenance margin: ~2%(レッスン2; tier で変わる)
- Liquidation fee: notional の ~1.5%(レッスン3)
- Cross-margin がデフォルト(レッスン2)
- Insurance fund あり、最後の手段として ADL(レッスン3)
レッスン1 / レッスン2 / レッスン3 の計算例ではこれらの数値が繰り返し登場する。DIY Perp track のコード例も同じ数値を使う。
よくある誤解
「perp は自動でロールする futures だろう」。 近いが違う。自動ロール futures にも expiry はある。サイクルごとに新しい契約に乗り換えるだけだ。各ロールには basis spread のコストがかかる。Perp にはロール自体がない — funding payment がロールコストの代わりを果たす。
「perp は spot より危険だ」。 比較の方向が誤っている。Perp が追加するのは leverage の risk(underwater になれば預けた collateral 以上を失いうる。ただし regulated な venue では insurance fund が通常それを吸収する)。Leverage を使わなければ、1× の perp position は spot とほぼ同じ risk しか持たない。差し引きの funding コストだけ違う。
「Hyperliquid は Ethereum 上のスマートコントラクトだ」。 違う — Hyperliquid は 独立したL1 だ。DIY Perp track を作る理由は、汎用L1上のスマートコントラクトより、perp UX(sub-second の latency、gas なし、深い orderbook)に最適化した app-chain のほうが勝るから、というのが核心。
次のレッスン(レッスン1)
レッスン1 — Mark、index、funding。期限がない中で mark price が index に anchor され続ける仕組みを組み立てていく。Premium の式 (mark − index) / index、それを per-interval rate に変換する divisor、最悪ケースを抑える cap、Hyperliquid の実パラメータでの計算例 — それぞれを順に見る。
レッスン1 を終えると、Build OpenHL — Funding コースの レッスン4「compute_premium」が「premium とは何か?」ではなく「すでに理解している式の実装」として読めるようになる。
合格基準
- 3 市場(spot / futures / perp)の決済の違いを即答できる。
- 「期限なし」が解くべき課題(anchor 不在 → 乖離持続)を 1 文で説明できる。
- Funding payment が解決策である理由(連続的な収束インセンティブ)を 1 文で説明できる。
- Perp が存在する 3 venue タイプ(CEX / 既存 L1 DEX / 専用 L1 DEX)を即答できる。
- Hyperliquid を例に取る理由(出来高最大 + closed-source + openhl オープン化)を即答できる。
- Hyperliquid 固有 8 パラメータ(interval / divisor / cap / margin 2 種 / fee / cross-margin / insurance + ADL)を即答できる。
- 3 誤解(自動 roll / 危険度 / Ethereum スマコン)を即答 + 各々の正解を言える。
まとめ(3行)
- Perp = 期限なし leverage 付き futures、現代デリバティブ最重要の設計選択、anchor 不在 → 乖離持続 → funding payment が連続的に補正(expiry が伝統 futures に対して果たす役割を 1 点でなく連続で)。
- 3 venue タイプ(CEX / 既存 L1 DEX / 専用 L1 DEX)、Hyperliquid が出来高最大($300B+ /year)の専用 L1 perp DEX、closed-source、
psyto/openhlがオープンリファレンス。 - 次レッスン以降の前提パラメータ(interval 1h / divisor 8 / cap ±4% / margin 10%-2% / liquidation fee 1.5% / cross-margin / insurance + ADL)を内面化、L1 で funding 詳細、L2 で margin model、L3 で liquidation + insurance + ADL。