Topological Analysis of Bitcoin’s Lightning Network
2019年6月8日から9日にかけて、アムステルダムで Breaking Bitcoin というカンファレンスが行われました。 本コラムは、公開された動画や書きおこしをもとに、その発表内容を追いかけ、Bitcoin のセキュリティに関する取り組みの最先端を知ろうという試みです。 発表内容を日本語で、かつ実際の事例などを交えて解説することで、少しでも皆様が Bitcoin の仕組みや最新の研究について詳しくなるための一助になれることを願います。
今回は、Istvan Andras Seres氏の「Topological Analysis of Bitcoin’s Lightning Network」という発表です。 用語が分からないという方は雰囲気だけでも感じて頂ければと思いますが、もしご興味があればグラフ理論などについても学んでいただくと良いかもしれません。
ライトニングネットワークについて
私たちは Bitcoin が VISA やマスターカードの仕組みと比べ、はるかに遅いことを知っています。これを高速化するのは容易なことではありません。 一方で、より多くの人に使ってもらうにあたり、スケーリング、つまり規模が大きくなっても動作する仕組みをつくることは非常に大切です。この話を聞くときには、ライトニングネットワークだけでなく、オフチェーン、HTLC、Roasbeef氏といったキーワードが重要になります。 細かい実装は置いておくと、ライトニングネットワークでは、人や組織がノード、ノード間のエッジが支払いチャネルとして、重み付きマルチグラフとしてモデル化ができます。エッジの重みは、支払いチャネルのキャパシティとなります。 なお、ライトニングネットワーク自体については多くのウェブサイトで説明されているので、ここでは割愛します。
HTLC: https://en.bitcoin.it/wiki/Hash_Time_Locked_Contracts ライトニングネットワーク: https://ja.wikipedia.org/wiki/%E3%83%A9%E3%82%A4%E3%83%88%E3%83%8B%E3%83%B3%E3%82%B0%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF
ライトニングネットワークの分析
ライトニングネットワーク上では、ほとんどのユーザーが自分のIPアドレスで使っているようです。Tor を使っているのは数十人だけでした。つまり、多くのユーザーは誰がどのような人か、特定が可能ということです。 検証として、高次のノードをひとつ削除し、グラフ内の対応する支払いチャネルも削除し、そのあとで接続してきたコンポーネント数をカウントしました。30ノードを削除した結果、400以上のコンポーネントが接続されていました。 つまり、400人以上が、ネットワークから遮断するだけでライトニングネットワークが使えなくなってしまうのです。標的型攻撃も考えられるでしょう。
ネットワークの堅牢性を評価するためには、浸透閾値(percolation threshold)が使えます。 実際のネットワークで見られるとすれば、ノードの削除、ノードの攻撃、ノードとネットワーク内の対応する支払いチャネルエッジの削除、などでしょうか。 ネットワークは浸透閾値の値までは堅牢であり、そこからひとつでもノードを削除すると破綻します。
さまざまな攻撃
さらに、いくつかの攻撃も考えてみましょう。
まずはノード削除攻撃です。 先ほど説明したように、高次のノードを 30個削除すれば、パスの長さが劇的に増加し 3.3 となります。この場合、標的型攻撃に遭遇しても、支払いを他にルーティングするのが難しくなります。 素晴らしい点としては、Bitcoinコミュニティはこういった研究を好意的にとらえてくれています。より多くの人がライトニングネットワークのトポロジーを分析し、検討を始めています。
次に支払いチャネル枯渇攻撃。 詳しい説明は Elias Rohrer氏の論文 “Discharged Payment Channels” にありますが、ノード削除ベースの攻撃がまず考えられるでしょう。しかしこれに留まらず、チャネル削除ベースの攻撃も検討しました。 この攻撃は支払いチャネル枯渇攻撃と呼ばれ、ライトニングネットワークは影響を受けやすいことが示されています。
ノード分離攻撃。 アウトバウンドキャパシティの枯渇、つまり外向けのネットワーク帯域を使い尽くす攻撃です。これにより、ノードがネットワーク支払いをルーティングすることを妨害し、ライトニングネットワーク上でノードを分離させ、役に立たない状態にします。 Elias氏は同様に、ライトニングネットワークはノード分離攻撃の影響を受けやすいことを示しました。
おわりに
論文の紹介ということで具体的なノードの挙動についての説明が多い発表でしたが、難しい部分は割愛し、一般的な知識として役立ちそうな部分を抜粋してみました。 私も目を通した程度ですが、興味を持たれた方は、ぜひ論文もお読みいただくと良いと思います。Elias Rohrer氏の論文も含め、いずれも 10ページ前後です。
記事中の表現については講演資料を筆者なりに読み解きつつ、前後で独自の解説を加えておりますが、なにぶん新しい技術に関する内容ですので、もしも間違いなどございましたらお気軽にご指摘くださいませ。(特に技術的な指摘は大歓迎です)
【寄稿者情報】
- 前回の記事はこちら
- Neutrinoプロトコル、BIP37とBIP158