ブロックチェーン/レベル V · レイヤー/5.1 Lightning/レッスン 2
HTLCを用いたルーティング
1つのシークレット、多数のホップ、そしてルートを隠すオニオン
用意するものライトニングネットワークエクスプローラー(例:1MLやmempool.space)BOLT #2および#4の仕様
問い
- 支払いは、どのようにして全参加者にとって成功するか、全員にとって失敗するかのどちらかになるのか?
- ルート上の各ノードが直前と直後のノードしか知らないようにしなければならないのはなぜか?
- 最終受取人が受け取りを請求しなかった場合、転送された支払いはどうなるのか?
探究
- アリスは直接のチャネルを持たずに、ボブを経由してキャロルに支払う。各ホップは同じペイメントハッシュにロックされたHTLCであり、タイムロックはルートに沿って短くなっていくため、各転送者は下流に支払った後に上流から請求する時間を確保できる。キャロルが受け取りを請求するためにプリイメージを明かすと、それがホップごとに逆向きに伝わり、すべてのHTLCが決済される。
- 送信者はゴシップで共有されたチャネルグラフからルートを選び(ソースルーティング)、指示を多層の暗号化で包む(Sphinxオニオンルーティング)。そのため各ノードは直前と直後のノードしか知らない。転送者は基本手数料に加えて比例手数料(100万分率、ppm)を課す。ホップの流動性が不足すると支払いは失敗し、再試行される。マルチパスペイメントは大きな金額を分割して送る。
- HTLCはコミットメントトランザクション内のアウトプットであり、独立した存在ではない。保留中のHTLCがある状態でチャネルがクローズされると、オンチェーンのトランザクションには有効な各コントラクトごとに追加のアウトプットが含まれる。チャネルが開いたままHTLCが期限切れまたは成功すると、新しいコミットメントトランザクションがそれらのアウトプットを取り除き、確定した状態を反映する。
- ライトニングの金額はミリサトシ単位で数えられるが、オンチェーンのアウトプットはダストリミットを上回る価値を持たなければならない。オンチェーンで扱うには小さすぎて経済的でないHTLCは「トリム」される。つまり、コミットメントトランザクション内に独自のアウトプットを持たず、その価値は代わりにトランザクション手数料に計上される。
- したがって、トリムされたHTLCは相手方の誠実な振る舞いによってのみ守られている。保留中にチャネルが強制クローズされると、その金額はマイナーに渡る。ノードは受け入れるトリム済みHTLCの合計額に上限を設けており、多くのノードは最小HTLCサイズも設定している。ごく少額の支払いをそもそもサポートするために、わずかなリスクを受け入れているのである。
- 有効なHTLCが残っている状態で協調クローズを行う場合、両当事者は新たな支払いの受け付けを停止し、既存のコントラクトが解決または期限切れになるのを待つ。これにより、HTLC関連のアウトプットを含まない軽量なクローズトランザクションを公開でき、オンチェーンの手数料を抑え、係争時のクローズに伴う必須のタイムロック待機を回避できる。
重要な事実
- HTLCはコミットメントトランザクション内のアウトプットであり、複数のチャネルをまたぐトラストレスなルーティングを可能にする。
- Sphinxオニオンルーティングにより、各ノードは直前と直後のノードしか知らない。
- 転送者は基本手数料に加え、100万分率(ppm)で表される比例手数料を課す。
- ダストリミット未満のHTLCは「トリム」され、独自のアウトプットを持たずに手数料として計上される。
- 有効なHTLCがある状態での協調クローズでは、タイムロックによる待機を避けて手数料を抑えるため、HTLCの解決を待つ。
- マルチパスペイメントは、成功率を高めるために大きな金額を複数のルートに分割して送る。
演習 九・六・三・一
9集めるライトニングネットワークのノードまたはサービスを9つ挙げてください。それぞれのルーティングポリシー、手数料体系、チャネル容量についても記載してください。
6まとめる9つを、HTLCの扱い方に基づいて6つに分類してください:高手数料・大容量、低手数料・小容量、マルチパス対応、ダスト未満許容、協調クローズ優先、その他。
3絞り込む6つを、運営者がルーティングポリシーと手数料体系を調整する3つの理由にまとめてください。
1結晶化するHTLCが何を保証し、何がその保証をアトミックに保つのかを1文で書いてください。
事実確認
日付、数字、主張は、下記に記載された公表資料と照合して確認しました。