本文へスキップ
buybitcoinsmart

用語集 / ライトニングとレイヤー2

ルートヒント

ルートヒントとは?
ルートヒントは、ライトニングのインボイス(請求書)に記載される項目で、公開ノード、チャネルとその手数料を指定し、支払者が、自身のチャネルがアナウンスされていない受取人に到達できるようにするものです。

プライベートチャネルは公開のゴシップグラフには決して現れないため、インボイスが経路の最終区間を自ら運ぶ必要があります。BOLT 11では、受取人に公開チャネルがない場合にルートヒントが1つ必須となり、各ホップは51バイトを消費します。ノードID、チャネルID、基本手数料、比例手数料、CLTVデルタです。アナウンスされたチャネルを持たない携帯電話のウォレットへの出金が機能するのは、まさにこのバイト列があるからです。

仕組み

ルートヒントは、文字rで書かれるBOLT 11のタグ付きフィールドで運ばれ、このフィールドは単一の値ではなくリストを保持します。

各エントリは5つの値を並べたものです。264ビットのpubkey、64ビットのshort_channel_id、32ビットのfee_base_msat、32ビットのfee_proportional_millionths、16ビットのcltv_expiry_deltaです。合計408ビット、1ホップあたりちょうど51バイトになります。エントリは公開ノードから受取人へ向かう前方経路として並び、各pubkeyはそのチャネルの終端ではなく始端のノードを指します。

最後の3つの値は、公開ノードがBOLT 7に基づいてchannel_updateでブロードキャストするものです。プライベートチャネルは何もブロードキャストしないため、支払者がそのホップの手数料を知る唯一の場所がインボイスです。

作成者のルールは限定的です。受取人の鍵に公開チャネルが関連付けられていない場合、インボイスには少なくとも1つのrフィールドを含めなければなりません。作成者は代替経路を提示するために複数を含めることができ、最も優先されるものが先頭になります。上限はタグ付きフィールド自体で、そのデータは5ビットの1023グループ、すなわち639バイトを超えることができず、1つのフィールドに最大12ホップ分の余地が残ります。

ルートヒントは指示ではなく助言です。支払者は示されたチャネルの順序を使用してもよく、仕様ではこのフィールドを「限定的なルーティング支援」と呼んでいます。BOLT 4のルートブラインディングは、同じ問題に対する後発の解答です。平文のノードIDとチャネルIDの代わりに、受取人は送金者に導入点と、調整済みのノードIDおよび各ホップ向けに暗号化されたデータを渡すため、送金者は経路上に誰がいるかを知らずに使用可能な経路を得られます。

目にする場面

ルートヒントは、インボイスのデコーダーがプライベート経路の追加ルーティング情報として表示するものです。

仕様自体のメインネットのテストベクターは、20ミリビットコインのインボイスで、2つのヒント付きホップを経由します。まずチャネル66051x263430x1800、基本手数料1ミリサトシ、20ppm、CLTVデルタ3ブロック、次に197637x395016x2314、2ミリサトシ、30ppm、4ブロックです。この2つのホップはインボイスのbech32文字のうち164文字を占め、支払いハッシュと支払いシークレットを合わせたよりも多くなります。

同じ構造は実際にも現れます。当サイトがレビューしている41種類のウォレットの1つであるPhoenixは、チャネルを公開グラフではなくACINQとの間で保持しており、それらのチャネルがアナウンスされない場合、上記のルールによりすべてのインボイスがACINQのノードを明記する義務を負います。そのレビューで引用されているACINQ自身のFAQは、ACINQがあなたの支払いの宛先と金額を知っていることをすでに認めています。ルートヒントはこの開示を外へ広げます。支払う側は、あなたがどのプロバイダーと取引しているかを知るからです。Strikeのような取引所からライトニングで出金すると、支払者である取引所が、あなたのウォレットが発行したインボイスから読み取ったヒント付きホップの基本料率と比例料率を支払います。

ルートヒントvs受信流動性

ルートヒントは支払者に到達方法を伝え、受信流動性は支払いが届いたときに収まるかどうかを決めます。

両者は外から見ると同じように失敗し、インボイスを編集して直せるのは片方だけです。ルートヒントが完全に形成され正しい手数料を示していても、そのチャネルの受取側に余地がないために最後のホップで支払いは失敗します。Phoenixはそれを直す価格を公表しています。受信流動性がすでにある場合は受信は無料で、ウォレットがスペースを確保するためにオンチェーン取引を行う必要がある場合は1%に加えてマイニング手数料がかかります。送金者が経路は解決したと主張する一方で支払いが失敗する場合は、インボイスを疑う前に容量を確認してください。

混同しやすい用語

よくある質問

ルートヒントは私のプライベートチャネルを露呈しますか?

はい、インボイスを読む誰に対してでも露呈します。rフィールドには、相手ノードのノードIDと、あなたと相手の間のチャネルの短縮チャネルIDが、いずれも平文で明記されます。これが、チャネルがアナウンスされていない場合に到達可能であるための代償です。BOLT 4のルートブラインディングは、それらを導入点の背後に隠す新しい方式です。

ルートヒントが正しく見えるのに支払いが失敗するのはなぜですか?

ルートヒントは道順であり、容量ではないからです。ヒント付きのチャネルでも、金額を運ぶには相手側に十分な残高が必要であり、インボイスのどのフィールドもそれを作り出すことはできません。何かを書き換える前に、受信流動性を確認してください。

1つのインボイスに複数のルートヒントを含められますか?

はい。BOLT 11では、作成者が複数のrフィールドを代替のルーティング選択肢として含めることができ、最も優先されるものが先頭に並びます。また各フィールドは独自に複数のホップを連結できます。1つのフィールドはタグ付きフィールドデータの639バイトの上限で制限され、最大12ホップ分の余地が残ります。

次に読む

関連用語

ライトニングとレイヤー2のその他の用語

このページを英語で読む