Amboss Ghost Addressはライトニング送金を受け取る際のプライバシーを改善できるのか?
さて、しばらくBRC20やマイニングの話題が続いていましたが、久しぶりのライトニング回です。
今回は読者様から寄せられた以下の匿名質問にお答えします。
Amboss Ghost Addressesの仕組みについて、LN Markets blogの説明を読みましたが理解できませんでした。
解説をお願いします!
Amboss Ghost Addressとは「独自のサーバーを立てずにノンカストディアルにLightning Addressを利用してプッシュ型の送金を受け付けたい」という課題を改善する1つのプロダクトです。ところが、名前のせいかプライバシー面でのメリットが期待されやすいプロダクトで、実際そういう側面にも少しポテンシャルを感じる技術的な部分はあります。
今日はLN送金を受け取る際のプライバシー面での課題についておさらいして、Amboss Ghost Addressの具体的な仕組みと、もし使用する場合に理解しておきたいトレードオフを解説します。
・「LN送金を受け取る」際のプライバシー問題
・Ghost Addressは第一にはノンカストディアルなLightning Addressサービス
・Ghost Addressを利用するにあたって意識すべきトレードオフとは?
「LN送金を受け取る」際のプライバシー問題
ライトニング送金は必ず宛先ノードが送金額・期限などを指定した「インボイス」を発行するところから始まります。これを「プル型」の送金と言います。(オンチェーンでは宛先の許可なくコインを送りつけることができ、これは「プッシュ型」の送金となります。)
ライトニングで送金を受け取る際のプライバシー面の問題はすべてこの仕組みに起因していると言っても過言ではありません。なぜなら、送金者に必ず渡さないといけないインボイスに「ノードID」という宛先ノードの識別子が含まれているためです。送金者はこの情報を使って送金経路を作成します。
したがって、自分でノードを動かしてセルフカストディしているライトニングユーザーが送金を受け取るとき、自分のノードを相手に開示することになります。すると、送金者(や、そのインボイスを共有された第三者)はそのノードに絡むチャネル開設・閉鎖などのオンチェーントランザクションも調べることができてしまい、それらのトランザクションから連鎖して資産額や利用している取引所などまで推測可能な場合もあります。
この問題については既に使用できるものから提案されているものまで様々な軽減方法があります。
例えば受け取り時にはカストディ型のウォレットを使い、後に自身のウォレットに出金することで送金者からは自身のノードを秘匿できます。(ただし、カストディ型のウォレットの出金手数料がかさみます。) 本末転倒感もありますが、この亜種としてLNは極力送金にしか使わない、という手もあります。
あるいは、トランポリンルーティングという提案されている仕組みでは送金者が宛先ノードまでの経路を途中までしか計算しないため、送金者にノードIDを教える必要がありません。トランポリンルーティングについては以下の記事をどうぞ:

他にも、Private Channelと呼ばれる種類のチャネルはネットワーク全体には存在を配信(Announce)しないためプライバシー面のメリットがありそうですが、これもデフォルトではインボイスにそのチャネルのFunding UTXOの情報(scid: ブロック高・トランザクション位置・Outputの番号)をリークしてしまいます。
ちなみに2022年からは両者がScid Aliasというオプションを有効化してPrivate Channelを開設していればインボイス内でこのscidを公開せずに済みます。自ノードのすべてのチャネルがscid aliasを利用しているPrivate Channelで、かつ他に”Public Channel"が1つもなければインボイスのノードIDに紐付けるノードの情報が送金者に非常に見つかりにくいのである程度プライバシーは改善します。
ちなみに最近はプライバシー面で過大な期待を抱かせないように"Unannounced Channel"と呼ぶようになってきています。
では、Amboss Ghost Addressはどのような仕組みになっているのでしょうか?
Ghost Addressは第一にはノンカストディアルなLightning Addressサービス
Amboss Ghost Addressのリリース時のブログ記事を見ると最初の段落にアピールポイントが書いてありました:
(訳)これを使えば自身でライトニングノードを実行している誰もがカストディアルな第三者を信頼したり公開のサーバーを立てたりすることなくLightning Addressを持つことができるようになります。
This means that anyone running their own lightning node will be able to have a Lightning Address without needing a custodial third party and without needing a publicly accessible server.
つまり、第一にGhost AddressとはノンカストディアルにLightning Addressを取得し利用する方法で、プライバシー面でのメリットが得られるとすればそれは使用している技術の副効用なのです。もう少し具体的に見ていきましょう。
正攻法でノンカストディアルなLightning Addressを取得するには自身のライトニングノードに紐づけたLightning Addressサーバー(LNURLサーバー)を用意する必要があります。送金者はこのサーバーに問い合わせてインボイスを取得し、そのインボイスに対して送金を行います。ここにプライバシー面でのメリットはありませんが、インボイスの自動発行機としてプッシュ型の送金を実現します。
Amboss Ghost Addressの一番の特徴は「Ambossがユーザーの代わりにインボイスを発行する」仕組みです。順序立てて見ていきましょう。ここからはAmboss Ghost Addressに登録して利用する送金先ノードを「ユーザー」と呼びます。
1.ユーザーはAmbossが運用するLightning AddressサーバーにLightning Addressを割り当ててもらいます。送金者はAmbossに問い合わせてインボイスを取得することになります。
2.通常ならノンカストディアルに送金を受け取りたい場合、Ambossはユーザーからインボイスを発行してもらって送金者に渡す必要がありますが、それだと結局ユーザーもサーバーを運用する必要があり本末転倒です。
3.ここでPhantom Nodes / Phantom Paymentsというコンセプトが登場します。Ambossはあたかも「ユーザーの先に(実在しない)Private Channelで繋がっている(実在しない)宛先ノード」としてインボイスを発行し、送金者に渡します。もちろん、決済に必要なPreimageもAmbossが生成したものです。
4.このインボイスに対する送金経路は必ず最後の経由地としてユーザーを経由します。ユーザーのノードは実在しないPrivate Channelから出て行きたがる支払いをGhost Address宛の送金だと判断し、AmbossにAPI経由でPreimageを問い合わせます。
5.ユーザーがAmbossから受け取ったPreimageをあたかもPhantom Nodeから受け取ったかのように送金者側のチャネルでの決済に使えば、あとは通常のLN支払いと同様に送金者まで各チャネルで支払いが決済されていきます。
このように、ノンカストディアルに第三者(Amboss)にPreimageを発行させる仕組みとしてPhantom Nodeを使ったことによってプライバシー面でのメリットを得られそうになっています。「得られそう」としたのは現時点では次項で述べる問題があるためです。
キーワードとなるPhantom Nodes / Phantom Paymentsですが、これも過去にカバーしているのでぜひご覧ください。
Ghost Addressを利用するにあたって意識すべきトレードオフとは?
さて、まずはノンカストディアルなLightning Addressサーバーとしての特徴を考えていきましょう。比較対象はLNMarketsのニュースレターにあるように「Lightning Address Bridge」と呼ばれる、代理でLightning Addressサーバーを運用してくれるサービスです。
サーバーを公開する必要がなく、ユーザーのIPアドレスを送金者から秘匿できる
この点はAmboss Ghost Address、Lightning Address Bridgeに共通しています。ただしライトニングノードのIPアドレスは特に対策していない場合は公開情報です。(Torのみで利用するか、VPS経由で公開しない限り、結局ノードが動いている自宅ネットワークやクラウドなどのIPになります)
サービス提供者が自分になりすましたインボイスで本来は自分宛の送金を着服しないことをトラストする必要がある
これはLightning Addressサーバーの運用を委託していることの弊害で、そのサーバーに問い合わせて得られたインボイスが本当にユーザーのものかを保証することはできません。一種の中間者攻撃で、ユーザーはされていても送金者からの報告がなければ気づきません。
またGhost Addressの場合は追加でAmbossがPreimageを教えてくれない・教えられなくなるリスクがあり、その場合は送金を受け取ることはできません。(エラーとしてキャンセルすることになります)
ライトニングノードが予想していない使い方であり、ウォレットの挙動が不便
これはライトニングあるあるですが、こういう「ハッキー」な仕組みはウォレット開発者が想定していないので表示がわかりにくかったりします。具体的には自身で発行したインボイスではないので受信履歴に残らず、気づいたら残高が増えているという気持ち悪めな挙動になります。Lightning Address Bridgeでは自分で発行したインボイスなので通常通りの履歴が残ります。
さて、本題ですがGhost Addressという名前からプライバシー面での効果を期待しやすく、実際にPhantom Nodeの利用によってプライバシー面を強化するポテンシャルのある仕組みと言えますが、現状では決定的な問題があります:
プライバシー面でのメリットは現状ではほぼない
前述の通りLNでは送金者が送金経路を決定しますが、ghst.toで終わるLightning AddressはGhost Addressであると推定されるため、そこから取得したインボイスの実際の宛先ノードは最終の一歩手前のノードだと推測できてしまいます。
この問題はより不規則・複雑なルートヒントの使用などで改善可能だとは思いますが、現状ではAmboss Ghost Addressがプライバシー面を売りにできない根本的な理由です。(リリース時のブログ記事ではカストディアルなLightning Address、つまりカストディアルウォレットに対する優位性のみ述べられており、ノンカストディアルなLightning Address Bridgeに対しては現状では優位性があるとは言えません)
もし将来的により上手に「本当の宛先」を秘匿できるようになったら見直される可能性がある技術だとは思うので、これからの創意工夫に期待したいところです。
ちなみに以下の記事もプライバシー関連で面白いので、読んでいない方がいればおすすめです。
他に回答してほしいご質問がある方はぜひ匿名質問投稿フォームよりお願いします。
次の記事
読者になる
一緒に新しい世界を探求していきましょう。

ディスカッション