ライトニングユーザーがプライバシーを最重視するならどう使う?
ライトニングネットワークはオンチェーンの送金と比較してプライバシーの高い側面と低い側面があります。今日紹介するMutiny Walletはライトニングをプライバシーを最重視して使うユーザーを想定して開発されている奇特なウォレットです。
ちなみにSpiral (Square Crypto)が開発するLDKを使ったSenseiというライトニングノードをバックエンドに採用しています。
※まだ実際に利用できるクオリティではありません。
LNのプライバシー
ライトニングネットワークでの送金はオフチェーンで行われるため不特定多数の目にさらされることはなく、これがオンチェーンの送金と比較してプライバシーが高いと言われる主要因です。ところが、送金に関する情報が他者にリークしてしまうLN特有の問題がいくつかあります。以下に大きなものを2つ挙げます。
1つ目は、ノードとオンチェーンのアクティビティとの関連付けです。チャネル開閉時のトランザクションから、ライトニングノードとオンチェーンの別の活動が関連付けられる可能性があります。特に受取を行うときはインボイスの情報からオンチェーンのアドレスが調べられてしまうかもしれません。特にチャネルを多数開いたり閉じたりしていると、主要なライトニングウォレットのコインコントロール機能(送金時に使用するUTXOを選択することで「関連付けたくないコインを混ぜない」運用を可能にする)が軒並み落第点なのもあり多数のオンチェーンアクティビティが紐付いてしまっているかもしれません。また、インボイスを送ったサービス間、受け取った人の間でもユーザーを突合できてしまいます。
後述しますが、scid_aliasという「チャネル開設時のUTXOをネットワーク全体には知らせない」タイプのチャネルが普及するとオンチェーン丸見え問題はある程度軽減されます。
2つ目は、中継ノードのネットワークグラフ内の位置によって送金経路が絞り込まれる可能性です。もちろん、非公開のチャネルやカストディ型のウォレットの利用などで不正確な可能性はありますが、例えばBreezのようにルーティングを行わないエンドユーザーによく接続されるノードは高い確率で送金元または宛先のユーザーを判断できてしまうでしょう。また、プロービングによってネットワークの大半のチャネルのバランス情報(経路選定の制約となる残高の偏り)が取得できている場合、大きな金額の送金は取れる経路が限られるため、送金元・宛先候補のノードが遠方からでも絞り込める場合があります。
他にもネットワークレベルでの分析など様々な手法が考えられるなど、ライトニングでも厳密にプライバシーを守ることは難しいことがわかります。Mutiny Walletはそこに目をつけ、プライバシー最優先のLNウォレットがどんな形になるかを探究しています。
Mutiny Wallet (pLN)の工夫
Mutiny Walletでは上記の問題に大胆な解決方法で取り組んでいます。あまりにも潔いものもあり、その割り切り方に笑ってしまうかもしれません。
まず、 Mutiny Walletは支払い専用のウォレットです。受け取りはできません!(きっぱり)
受取専用にすることで、ノード・チャネルとLN上・オンチェーンのアクティビティが強く関連付けられてしまうことを防ぎます。インボイスの突合を防いだり、インボイスからチャネル開設トランザクションまで辿ってオンチェーンアクティビティを覗くことも防ぎます。
次に、特徴的な機能としてMutinyではチャネルを開設する際、毎回「新しいノードを立ち上げて」チャネルを開設します。つまり、ユーザーから見ると1つのウォレットにまとまっていますが、他者から見ると互いに関連のない別々のノードで、同一ユーザーと考える根拠はないのです。ノードが持っている複数のチャネルはたとえネットワークに宣伝していないチャネルであったとしても情報流出などで関連付けられてしまいうるものですが、ノード自体を分けることでこれを防ぎます。
ところで複数のノードを起動することのリソース的な負荷が気になりますが、チャネルごとのノードはそれぞれ1つのチャネル関連の処理だけを行い、ゴシップやグラフの管理、パスファインディングなどを行うノードは1つだけで良いので、チャネルを追加するごとに増加する負荷は小さいでしょう。LDKもLNDなんかと比べると軽量です。
また、多くのライトニングウォレットのコインコントロール機能の欠如に対する簡潔なアンサーとして、Mutiny Walletはチャネル開設時にUTXOを使い切ってお釣りが出ないようにします。こうすることで、開設後にそのお釣りのコインが間違って他のオンチェーン活動に紐付けられることを未然に防げるためです。ここはミキシングでも事後的に匿名性が低下し問題になりやすいポイントなので、Mutiny Walletのこの特徴はミキシング後のコインの使い道として考慮されてそうです。(ミキシングで取得した多数のUTXOを、それぞれ別のノードのチャネルとして使いきる)
ただし、ミキシングの出力で開設していることはチャネルを開設される側からは明らかなので、その点でのプライバシーは現時点ではありません。scid_aliasに対応したノード相手にチャネルを開設することで、その相手以外のネットワーク全体には開設時のUTXOを知らせずに済みます。(Mutinyでも対応予定です)
またMutinyの開発者はプライバシーを意識させるUI・UXにも関心があるようで、例えばパスファインディングの際に最低限通らないといけないノード数が既定で設定されていたり(手数料は増加するが最短経路より推測されにくい)、大手ノードへのチャネル開設を非推奨にするなどの機能を考えているようです。
まとめ
・ライトニングの送金にはプライバシー面でメリットとデメリットがある
・Mutiny Walletはプライバシーに全振りしたLNウォレットを作る実験
・大手ウォレットに足りていない視点なので新鮮だが、UIが課題
・ミキシングと相性が良さそう
次の記事
読者になる
一緒に新しい世界を探求していきましょう。
ディスカッション