暗号資産購入
マーケット
スポット
先物
金融
特別企画
さらに
reward-center新規登録ゾーン
レポート分析詳細
業界調査

Lightningネットワークにおける置換期間攻撃

CoinEx logo
投稿日: 2023-12-25

ビットコインライトニングネットワークは、ビットコインブロックチェーンのスケーラビリティの課題に対処することを目的とした、ビットコインのレイヤー2スケーリングソリューションです。即時かつ低コストのビットコイン取引を可能にし、ユーザーにとってより効率的でアクセスしやすいものとなっています。ビットコインのオンチェーン取引と比較して、ライトニングネットワーク上の取引はプライベートで、オフチェーンで行われ、全体の結果のみが記録されます。

ライトニングネットワークの主な利点の一つは、その速度と手頃な価格です。ユーザーはビットコインネットワーク上で、簡単かつコスト効率の良い方法で小額の支払いを送受信することができます。ユーザー間に支払いチャネルのネットワークを作成することで、ライトニングネットワークはすべてのトランザクションをブロックチェーンにブロードキャストすることなく、トランザクションを可能にします。これにより、ビットコインブロックチェーンの混雑が緩和され、トランザクションのスケーラビリティが向上します。

ただし、ライトニングネットワークはまだ開発中であり、一定のセキュリティリスクと中央集権化のリスクに直面していることに注意すべきです。今年10月、ライトニングネットワークにおいて「置換サイクル攻撃」と呼ばれる脆弱性が新たに発見されました。これはトランザクション置換メカニズムに関連し、ライトニングネットワークのチャネル資金の損失につながる可能性があります。この攻撃方法の出現により、ライトニングネットワークのセキュリティに関する懸念が高まり、そのプロトコルと実装のさらなる研究と改善が促されています。

ライトニングネットワークのメカニズム

ビットコインライトニングネットワークは、支払いチャネルのセキュリティを確保するためにマルチシグメカニズムを活用しています。参加者は資金をロックアップし、支払いチャネルを確立する必要があります。参加者はチャネル内で、毎回ビットコインブロックチェーンにトランザクションを提出する必要なく、高速で低コストの支払いを行うことができます。支払いチャネルは、ビットコインブロックチェーンの外部における参加者間の関係に過ぎず、チャネル内で一連のトランザクションに署名することで実現されます。これらのトランザクションは、ビットコインネットワーク全体のコンセンサスを含めることなく、チャネルの両端の間でのみ伝播されます。

具体的なプロセスとしては、支払いチャネルを開設する際、参加者はチャネル上の各当事者が公開鍵を提供する必要があるマルチシグネチャスクリプトを作成し、必要な署名の数を指定します。例えば、複数の公開鍵と署名検証ロジックを含むスクリプトを定義します。マルチシグネチャアドレスを生成する際、このスクリプトはビットコインアドレスに変換され、支払いチャネルのインフラストラクチャを形成します。

図1に示すように、例えば、ボブとアリスはまず、共同資金として2-of-2のマルチシグネチャビットコインアドレスをオンチェーンで作成します。チャネル内では、資金配分の現在の状態を記録するために、無制限のオフチェーンコミットメント取引を行うことができます。両当事者は、これらの更新をビットコインネットワーク全体にブロードキャストすることなく、新しいコミットメント取引を交渉し署名してチャネルの状態を更新できます。チャネルを閉じることを決めた場合、最終的なオンチェーン決済取引が最後に交渉された配分に従って資金を分配します。この決済取引にはボブとアリス両方の共同署名が必要であり、資金が最終的に合意された方法で配分されることを保証します。このようにして、ライトニングネットワークはビットコイン取引の効率を向上させ、コストを削減しつつ、その分散型の特性を維持しています。

図1:ステートチャネル図

State Channel Diagram

出典:https://cypherpunks-core.github.io/bitcoinbook/images/mbc2_1204.png

HTLCメカニズム

ビットコインライトニングネットワークは、ルーティング可能なマルチホップ支払いチャネルシステムを実装するために、ハッシュタイムロック契約(HTLCs)に基づく支払いチャネルも採用しています。実装では、HTLCはハッシュ条件とタイムロック条件を満たすために、スクリプト言語で定義された複雑な取引スクリプトを必要とします。このスクリプトは、支払いチャネルを開く際の初期化時に使用され、支払い時にトリガーされます。このようにして、ビットコインライトニングネットワークはクロスチェーン支払いの効率性とセキュリティを実現しています。

HTLC(Hashed Timelock Contract)はハッシュタイムロック契約であり、ブロックチェーン上でクロスチェーントランザクションを実装するための重要な構成要素の1つです。HTLCには2つの一般的な応用があります:クロスチェーンアトミックスワップと、ライトニングネットワークにおける支払いチャネルです。HTLCは送金をロックし、特定の時間内に特定の情報を提供するなどの解除条件を設定することができます。これにより、条件が満たされた場合にのみ、受取人が資金を引き出すことができることが保証されます。

技術的には、HTLCはコミットメントトランザクションにおける追加のアウトプットであり、固有のアウトプットスクリプトを持ちます。これはOP_HASH160、OP_EQUALVERIFYなどの操作を含むScriptスクリプトであり、資金をロックするために使用され、事前イメージ値Rを提供することでのみアンロックできます。このスクリプトには2つの可能なパスがあります。最初のパス(OP IFで定義)は、ボブがRを提供できる場合、資金をボブに送ります。2番目のパスは、支払いトランザクションでnLockTimeを使用してタイムロックを強制し、ロックの期限が切れた後にアリスに払い戻しを許可します。

OP_IF

OP_HASH160 <Hash160 (R)> OP_EQUALVERIFY

2 <Alice2> <Bob2> OP_CHECKMULTISIG

OP_ELSE

2 <Alice1> <Bob1> OP_CHECKMULTISIG

OP_ENDIF

ルーティング例

ライトニングネットワークでは、アリスがエリックに1ビットコインを支払いたいが、アリスとエリックの間に直接の支払いチャネルがない場合があります。そこでアリスは、支払いチャネルネットワークの中間ノード(ボブ、キャロル、ダイアナ)を通じて支払いをルーティングし、安全な支払い経路を構築して、間接的にエリックに1ビットコインを支払うことができます。支払いのルーティングにはHTLCが使用され、特定の時間枠内に正しい「秘密」を提供することでのみ資金がアンロックされ、支払いの安全性が確保されます。

この例では、ステップ1で、エリックがシークレットR(解)を生成し、ハッシュ値H(パズル)を計算し、そのハッシュ値Hをアリスに与えます。

ステップ2-5:アリス、ボブ、キャロル、ダイアナ、エリックがそれぞれペアでHTLCを構築し、一定期間内にR(解決策)を提供して上流の当事者からロックされた資金を取り戻すことが要求されます。

ステップ6-9:エリックはダイアナにR(解決策)を提供して1 BTCを取り戻します。ダイアナはそのRを使ってキャロルからBTCを取り戻し、Rはこのように後方に渡されて、最終的にアリスの1.003 BTC(うち0.003 BTCは中間ノードのサービス手数料)が取り戻されます。

この例では、ステップ6でエリックが固定時間内にR(解決策)を提供しなかった場合、時間切れ後、ステップ2-5でロックされた資金は直接ロック解除され、返還されます。

図2:ルーティングの例

Routing Example

出典:https://cypherpunks-core.github.io/bitcoinbook/images/mbc2_1210.png

リプレイスメントサイクリング攻撃

ビットコインのトランザクション置換メカニズムは、トランザクションが置換可能とマークされている場合、ブロックで確認される前に、より高い手数料を持つ別のトランザクションによってネットワーク上で置き換えられる可能性があることを指します。より高い絶対手数料とより高い手数料率を支払うトランザクションは、それと直接競合する保留中の未確認トランザクションを置き換えることができます。置換トランザクションを受信した後、ノードはより低い手数料率の元のトランザクションをメモリプールから削除し、置換トランザクションのみを保持します。トランザクション置換メカニズムにより、トランザクションが確認される前に手数料やその他のパラメータを調整することが可能になります。しかし、このメカニズムは、トランザクション拒否サービス攻撃を実装するために使用される可能性もあります。例えば、重要なトランザクションを繰り返し置き換えることで、確認に失敗させることができます。したがって、トランザクション置換メカニズムはトランザクションの調整に便利さを提供しますが、同時に悪用のリスクも導入します。

Bitcoin Coreの開発者Antoine Riardの電子メールによると、置換サイクル攻撃は主にビットコインライトニングネットワークの支払いチャネルに関係しています。攻撃者は、より高い絶対手数料と手数料率を持つHTLC-プレイメージトランザクションをブロードキャストして、誠実なノードのHTLC-タイムアウトトランザクションを置き換えます。置換の間、攻撃者は追加の入力や出力を加えて、置換トランザクションがネットワークに確実に受け入れられるようにすることができます。この攻撃方法により、支払いチャネル内の資金の二重支出が発生する可能性があります。つまり、誠実なノードがHTLC-タイムアウトトランザクションをブロードキャストした後、攻撃者が置換を通じて資金を正常に取り戻すことができます。簡単な例を挙げて説明できます。前の例と同様に、パスがAlice、Bob、Ericの3者のみに簡略化されており、AliceとEricが共謀してBobのBTCを盗むと仮定します。

ステップ1:AliceはBobを通じてEricに1 BTCを支払おうとします。Alice\BobとBob\EricがそれぞれHTLCを構築します。Ericはブロック1020(現在の高さが1000と仮定)までにR(解決策)をBobに提供する必要があります。そうしなければ、Bobはロックされた1 BTCを取り戻すことができます。同様に、Bobはブロック1080までにAliceに応答する必要があります。そうしなければ、Aliceは彼女の1 BTCを取り戻すことができます。

ステップ2:Ericはブロック1020までにR(解決策)をBobに提供しませんでした。BobはHTLC-タイムアウトを含むトランザクションをブロードキャストします。このトランザクション内の資金はBobに返金されます。

ステップ3:EricはBobのHTLC-タイムアウトトランザクションを監視し、より高い手数料率のHTLC-プレイメージトランザクションで置き換えます。その後、Ericは前のHTLC-プレイメージをメモリプールから排除するための別のトランザクションを開始します。

ステップ4:Bobのノードはブロック1080までHTLC-タイムアウトトランザクションを再ブロードキャストし続けます。Ericは毎回置換を開始できます。ブロック1080までに、他のチャネル当事者であるAliceのトランザクションが確認され、Aliceはロックされていたビットコインを取り戻します。

ステップ5:Ericは自身のHTLC-プレイメージが確認されたため、Bobがロックしていた1 BTCはEricに転送されます。

このように、BobはAliceから支払われるべきBTCを受け取れないまま、Bobの1 BTCがEricに転送されました。

要約

2023年11月現在、ライトニングネットワークには16,000以上のライトニングノードと5,000 BTCが存在しています。実際の置換サイクル攻撃の事例は確認されていませんが、ライトニングネットワークにおける継続的なセキュリティ研究と改善の必要性が浮き彫りになっています。Antoine Riardは、ローカルメンプールと中継トランザクションの監視、マイナーとライトニングノード間のオーバーレイネットワークの構築、HTLCタイムアウトトランザクションの積極的な再生による攻撃者コストの増加など、置換サイクル攻撃を回避または緩和するためのいくつかの対策を提案しました。しかし同時に、プロトコルレベルのセキュリティ脆弱性に対するソリューションの調整を含む、ライトニングネットワークとその実装作業への参加を中止することを発表しました。

ライトニングネットワークが拡大するにつれ、置換サイクル攻撃の潜在的な脅威がその発展の障害となる可能性があり、コミュニティはセキュリティ研究と改善により多くの注意を向けざるを得なくなっています。しかし、セキュリティ問題に真剣に取り組み改善することで、将来的にライトニングネットワークが潜在的なリスクを徐々に解決し、より健全で信頼性の高いエコシステムを実現する可能性があります。

会社概要

2017年に設立されたCoinExは、取引をより簡単にすることに専念するグローバルな暗号通貨取引所です。プラットフォームは、200以上の国と地域にまたがる500万人以上のユーザーに、スポット取引、マージン取引、先物取引、スワップ、マーケットメイクアカウント(AMM)、金融管理サービスなど、幅広いサービスを提供しています。設立以来、CoinExは「ユーザーファースト」のサービス原則を堅持してきました。公平で敬意を払い、安全な暗号通貨取引環境を育成するという誠実な意図のもと、CoinExは使いやすい製品とサービスを提供することで、ユーザーが暗号通貨の世界に容易にアクセスできるようにしています。

参考文献

https://cypherpunks-core.github.io/bitcoinbook/

https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-October/022032.html

https://lightning.network/lightning-network-paper.pdf

https://github.com/ariard/mempool-research/blob/2023-10-replacement-paper/replacement-cycling.pdf