LNの送金者・支払先を互いに秘匿する
ライトニングによる支払いはオンチェーンの支払いと大きく異るプライバシーの特性があります。一般にオンチェーンの取引と比較してプライバシーが高いと言われることの多いライトニングですが、それでもプライバシー面で独自の課題がたくさんあります。
その1つである、ライトニングで送金を受け付ける際にインボイスにノードIDやチャネルIDを含める必要がある問題に対しての、ルートブラインディングという機能提案を紹介しようと思います。
ついでに似たコンセプトであるランデブールーティング、そしてトランポリンペイメントと組み合わせた際の効果についても説明します。
ランデブールーティング
冒頭で触れた通り、通常のライトニングインボイスにはノードIDやプライベートチャネルの情報などが含まれてしまうため、インボイスが漏洩するだけでノードやチャネルの情報、ひいてはオンチェーンの資金に関する情報まで漏れてしまいかねません。また、複数のインボイスを入手した攻撃者はそれらの情報を照らし合わせることで同じ支払先のインボイスを結びつけることもできてしまいます。
そこでランデブールーティングではインボイスを発行する際に請求者が途中の第三者ノードを指定し、そのノードから自分までの経路のオニオンルーティング情報、そして送金者が指定する経路との接続に使用する一時鍵をインボイスに含めます。言い換えると、通常は送金者が選択するルートのうち、後半の任意の長さの部分を請求者が指定・秘匿します。そのため支払い者も経由ノードも最終的な支払先はわからないという仕組みです。
これによって、例えばプライベートチャネルの存在やノードIDを(直接つながっているノード以外の)ネットワークから秘匿することができ、規制下などの状況において情報漏えいの可能性を下げることができます。
ランデブールーティングの課題としては、インボイスに追加で含めなければならない情報量が非常に多いため実現が阻まれている点と、支払いが途中のノードで失敗した際に新たなオニオンルーティング情報を取得する必要が挙げられます。
Torにも通信をランデブールーティングする機能があり、この提案のインスピレーションとなっています。
ルートブラインディング
ルートブラインディングはランデブールーティングに非常によく似ているため、提案者によってランデブールーティングの軽量版と表現されたことがあります。
請求者が指定したノードから先のオニオンルーティングされた経路を提供する点まではランデブールーティングと同じですが、オニオン部分の再利用が可能で、そのおかげで送金失敗時にすぐ手数料やタイムアウトをブラインドされたチャネルごとに調整して再試行することができます。
この裏返しで、送金者がパラメータを調整してプロービング(試行)することで経路情報を推定しうる点はルートブラインディングの欠点といえます。また、経路上のノードがすべてルートブラインディングに対応している必要があります。
インボイスに最後のプライベートチャネルの情報を含めるルートヒントを延長して秘匿化したものと捉えるとルートブラインディングの大まかなイメージが掴めそうです。
トランポリンルーティングとのシナジー
ランデブールーティングもルートブラインディングも、トランポリンルーティングという仕組みと組み合わせるとさらに拡張できます。
トランポリンルーティングとは、送金時に経路全体を計算せずに経路計算をトランポリンノードという第三者ノードに委託する方法です。低スペックなデバイスで経路計算が困難な場合に使用することを想定して生まれましたが、複数のトランポリンノードを経由させることで「LN上のオニオンルーティング」のような概念が実現できます。
具体的には、トランポリンノード・ランデブーノードを複数経由することで送金者・支払先が互いを知らないのみならず、送金を中継するトランポリンノード・ランデブーノードも元の送金者・最終的な支払先を知らない、という状況が作り出せます。(中継するノードが増える分、手数料も高くはなりますが、それはそれでルーティングノードがトランポリンルーティングに対応するインセンティブになります)
トランポリンノード・ランデブーノードから自分を秘匿するには少なくとも中継ノードを1つ経由させる必要がありますが、それでも経路作成に必要なグラフは非常に小さいため、モバイル機器でも扱いやすいと考えられます。
プライバシーへの脅威としてのプロービング
今日のライトニングネットワークのプライバシー面での欠点として大変よく話題にされているものとしてプロービングが挙げられます。
プロービングとは、経路の最後に必ず失敗するチャネルを含めるなどして経路上のチャネルのバランスを調べる手法で、LNでは支払いの試行自体に手数料が課せられないことから実質無料でチャネルのバランスに関する情報を収集できるという点を突いた攻撃です。
主に大型のルーティングノードがデータを収集してチャネルの手数料調整の参考にしたり、新たに開設する位置を決定するのに使用しているようですが、小刻みに多くのチャネルのバランス情報の変化を察知できればせっかく秘匿されているはずの支払い経路が検出できてしまうことも想像がつきます。(非常に多くのプロービングが必要になりますが可能です)
したがって、ライトニングネットワークのプライバシー面での改善に関する提案も多くはルーティングのプライバシーを改善するものです。1つの支払いを多数の細かい支払いに分割するMPPや、シュノア署名の導入によって実現に一歩近づくPTLCなど、インボイスと経路の同定を難しくしようというものが多数あります。
まとめ
ライトニングネットワークはオニオンルーティングによって支払いの経路を秘匿化するが、ランデブールーティング・ルートブラインディングでは支払いの経路をいくつかに分割し別々のノードに提供させ、トランポリンルーティングではそれに加えて複数のトランポリンノードをオニオンルーティングすることによって宛先・中継者・送金者の誰もが互いを知らない状況を作ることができる。(手数料はそのぶんかかる)
次の記事
読者になる
一緒に新しい世界を探求していきましょう。
ディスカッション