ビットコイン研究所ではビットコインを中心に仮想通貨やブロックチェーンに関連する重要な技術、トレンド、プロジェクトやビジネスを分析、解説しています。国内でいち早くビットコイン、ブロックチェーンの研究レポートの提供を始めただけでなく、先日ブロックチェーン関連事業向けの法人プランも一般公開しました。

今回はビットコインのセカンドレイヤー技術として最も重要視されているLightning Networkについて、新たに考案された攻撃手法やLNの課題を考察した加藤氏のコラムを公開します。(Lightning Networkについては他にも基本的なことから、トレンド解説まで特に力を入れています)

LNの大部分を数日間ロックさせる攻撃について

ライトニングネットワークに対する2つの攻撃方法を記した論文が公開されました。今回はこの論文に記載されている攻撃について解説したいと思います。

攻撃① 大半のチャネルの容量をロックする

一つ目の攻撃方法は、攻撃者が「自身のノードから自身のノードへ、たくさんのノードを経由する長い経路」をたくさん用意し、それぞれをたどる大量のペイメントを実行し、正常な受け取りの証であるプレイメージを返さないことで実現します。つまり、取引にコミット済みだが未決済の状態(時間が経てば支払い失敗になる)をネットワーク全体という規模で長引かせる攻撃です。

ライトニングネットワークの支払いはHTLCという時間条件つきのマルチシグトランザクションを交換することで成り立っています。このとき、未決済のLN取引が多いとHTLCのデータが大きくなりすぎてオンチェーンで決済できなくしまうため、それぞれのライトニングノードについて同時に未決済状態で存在しうるLN取引の数には上限があります。(LNDは483、c-lightningは30)

攻撃者は、各経路においてこの上限数の支払いを実行し、かつプレイメージを返さないことによって、HTLCの時間切れに達するまで経路上のLNノードが新しい取引を処理できなくすることができます。

また、この攻撃の場合、送金元も攻撃者なので、攻撃者が負担するのはチャネルの開閉に使用した手数料のみで、LN上での支払いに使用した金額は支払い失敗によって攻撃者に返金されます。したがって攻撃コストは低く、理論上は手数料を総額で0.25BTC程度支払うだけで650BTCものライトニングネットワークの容量を3日間ロックすることができるようです。現在のライトニングネットワーク容量が900BTC程度なので、かなり大規模な攻撃だとわかります。

(※ただし、LN上にロックされているビットコインに対して実際の3日間の使用量は現状では非常に小さいと思われます)

攻撃② 特定のノードをLNから遮断する

論文に記されたもう1つの攻撃は、特定のノードをLNから遮断する攻撃です。上記の攻撃をネットワーク全体でなく、特定のノードに対して応用したものです。

攻撃者は遮断したいノードにペイメントチャネルで接続し、そのノードを経由する取引を大量に発行し、①と同じ方法で大量の取引を未決済の状態にします。これによって特定のノードに対する数日間のDoS攻撃が実現できます。 研究者たちはライトニングネットワーク上で重要なハブとして機能しているノードと、それを3日間機能不全にするのにいくつチャネルを開けばいいのか表にしています。

ちなみに、攻撃コストは対象となるノードがいくつのチャネルを持っているかにほぼ線形に比例するようです。

この論文が意味すること

コンセプト自体は2015年から存在していた今回の攻撃手順はソフトの不具合や脆弱性ではなく、根本的にはライトニングネットワークの支払いがマルチシグを利用するため、ブロックチェーンに記録できるサイズによって1つのノードが同時に未決済のままおけるLN取引数に上限があることに依ります。また、経路上のノードは経路の発着点のノードを特定することができないため、DoS攻撃を認識することも難しいです。したがって、簡単に原因を排除することが難しいのが特徴です。

論文の著者は軽減策として、片方のチャネルでのHTLCの時間切れ発生時にもう一方のチャネルにその旨を伝達し、場合によってはチャネルクローズをするようにしたり、経路の最大長を現在の20ホップから6ホップ程度に減らすこと、相手のノードへの信頼度によって最大の同時取引数を引き下げることなどを提案しています。特定のノードに対する②の攻撃に関しては特に、同一のノードを複数回経由するルートを禁止することも効果的です。

ですが、これらの対応策もライトニングネットワークの基本的な動作に関わるものであるので、慎重に検討すべきものです。例えば自動的にチャネルクローズする機能が悪用されないかなどです。

ライトニングネットワークはレイヤー1のビットコインブロックチェーンと比べて非常に自由に、速いペースで開発が進んでいます。一方で、そのスピードや自由度が規格が乱立したり、セキュリティ面での検討が不足する一因となっているとも思います。まだしばらくは信頼性の面でいろんな問題に直面し、そのたびに改善されていくものと忘れないようにしたいです。

加藤 規新 @btc_dakara

1994年生まれ、シカゴ大学でGISやコンピューターサイエンスを学び学士号取得。2016年末よりビットコインに関するリサーチをしており、今までにいくつかのブログやサロンで解説を担当。 ビットコインについて一番好きなところはパーミッションレスに誰でも使うことができること。 2019年4月よりトラストレス・サービス株式会社代表。

おすすめの記事