ライトニングによる支払いはオンチェーンの支払いと大きく異るプライバシーの特性があります。一般にオンチェーンの取引と比較してプライバシーが高いと言われることの多いライトニングですが、それでもプライバシー面で独自の課題がたくさんあります。
その1つである、ライトニングで送金を受け付ける際にインボイスにノードIDやチャネルIDを含める必要がある問題に対しての、ルートブラインディングという機能提案を紹介しようと思います。
ついでに似たコンセプトであるランデブールーティング、そしてトランポリンペイメントと組み合わせた際の効果についても説明します。
ランデブールーティング
冒頭で触れた通り、通常のライトニングインボイスにはノードIDやプライベートチャネルの情報などが含まれてしまうため、インボイスが漏洩するだけでノードやチャネルの情報、ひいてはオンチェーンの資金に関する情報まで漏れてしまいかねません。また、複数のインボイスを入手した攻撃者はそれらの情報を照らし合わせることで同じ支払先のインボイスを結びつけることもできてしまいます。
そこでランデブールーティングではインボイスを発行する際に請求者が途中の第三者ノードを指定し、そのノードから自分までの経路のオニオンルーティング情報、そして送金者が指定する経路との接続に使用する一時鍵をインボイスに含めます。言い換えると、通常は送金者が選択するルートのうち、後半の任意の長さの部分を請求者が指定・秘匿します。そのため支払い者も経由ノードも最終的な支払先はわからないという仕組みです。
これによって、例えばプライベートチャネルの存在やノードIDを(直接つながっているノード以外の)ネットワークから秘匿することができ、規制下などの状況において情報漏えいの可能性を下げることができます。
ランデブールーティングの課題としては、インボイスに追加で含めなければならない情報量が非常に多いため実現が阻まれている点と、支払いが途中のノードで失敗した際に新たなオニオンルーティング情報を取得する必要が挙げられます。
Torにも通信をランデブールーティングする機能があり、この提案のインスピレーションとなっています。
ルートブラインディング
ルートブラインディングはランデブールーティングに非常によく似ているため、提案者によってランデブールーティングの軽量版と表現されたことがあります。
請求者が指定したノードから先のオニオンルーティングされた経路を提供する点まではランデブールーティングと同じですが、オニオン部分の再利用が可能で、そのおかげで送金失敗時にすぐ手数料やタイムアウトをブラインドされたチャネルごとに調整して再試行することができます。
この裏返しで、送金者がパラメータを調整してプロービング(試行)することで経路情報を推定しうる点はルートブラインディングの欠点といえます。また、経路上のノードがすべてルートブラインディングに対応している必要があります。
インボイスに最後のプライベートチャネルの情報を含めるルートヒントを延長して秘匿化したものと捉えるとルートブラインディングの大まかなイメージが掴めそうです。
トランポリンルーティングとのシナジー
ランデブールーティングもルートブラインディングも、トランポリンルーティングという仕組みと組み合わせるとさらに拡張できます。