目次
Eclipse 攻撃の仕組み
日食攻撃の余波
確認なしの「二重支出」
N回の確認が必要な「二重支払い」
マイナー間の競争を減らす
日食攻撃の影響を遅らせる
要約する
Eclipse 攻撃は、攻撃者がネットワーク上のノードに干渉する可能性がある比較的単純な基本的な攻撃です。名前が示すように、この攻撃は、ピアツーピア ネットワーク内の攻撃されたノードが有効な情報を取得できないようにすることで、ネットワークの中断を引き起こしたり、より複雑な攻撃の準備をしたりする可能性があります。
表面的には、Eclipse Attack は Sybil Attack に似ています。これらはいくつかの類似点を共有していますが (攻撃者がノードを攻撃することでネットワークを混乱させます)、最終的な攻撃目標は異なります。 Eclipse 攻撃は単一ノードをターゲットとしますが (理由は後述します)、Sybil 攻撃はネットワーク全体をターゲットにし、ネットワーク プロトコルの評判を改ざんすることを目的としています。
この概念については、2015 年の論文「ビットコイン ピアツーピア ネットワークに対する Eclipse 攻撃」で詳しく説明されており、その中でボストン大学とヘブライ大学の研究者が、Eclipse 攻撃を行った実験の結果と、それらに対抗するための予防策を報告しています。
Eclipse 攻撃の仕組み
ビットコインマイナーは、新しいブロックを生成して検証するための特殊な機器を必要としますが、非マイニング (またはフル) ノードの動作に必要な計算能力はほとんどありません。このようにして、誰でも安価な機器でノードを運用できるようになり、ビットコインの分散化にも貢献します。ソフトウェア プログラムは、ピアと同期してネットワークとの同期を保つトランザクション データベースを維持します。
多数のノードを接続する場合の制限要因は帯域幅です。そのため、プログラムを実行できるデバイスは多数ありますが、ビットコインネットワークに設定されるコネクション数には制限があり(最大125コネクション)、通常のデバイスは他のデバイスと直接相互接続することができません。
Eclipse 攻撃では、攻撃者はターゲットへのすべての接続が攻撃者が制御するノード上で行われるようにします。攻撃者はまず自分の IP アドレスからターゲット アドレスにフラッドを送信し、被害者はプログラムの再起動時に攻撃者の IP アドレスに接続する可能性があります。強制的に再起動する (つまり、ターゲットに対して DDoS 攻撃を実行する) ことも、プログラムが自動的に再起動するまで待つこともできます。
これが発生すると、何も知らない被害者が悪意のあるノードのなすがままになり、攻撃者は実際のネットワークからは取得できない偽のデータを被害者に送り込むことになります。
日食攻撃の影響
攻撃者は、リソースを消費することでネットワーク ノードをネットワークから切り離すことができれば、そのような攻撃を実行する動機を持ちます。ノードが分離されている場合、攻撃者は複数の連続攻撃を実行する可能性があります。
確認なしの「二重支出」
独立したノードが未確認のトランザクションを受け入れると、「二重支払い」のリスクが発生します。発生したトランザクションがブロックに入る(ブロックチェーンに送信する)前にブロードキャストされた可能性がある場合、送信者は簡単に別の場所で新しいトランザクションを作成し、前のトランザクションと同じ金額を費やすことができます。新たに生成された取引手数料の方が高い場合、マイナーは取引を優先し、それを最初の取引とみなし、最初の取引は無効になります。
一部の販売者や個人は、これらの 0 確認トランザクションを受け入れます。高級車を販売する実業家のボブのことを考えてみましょう。彼は、アリスが自分のノードに対して日食攻撃を開始したことを知りませんでした。また、アリスが高級スポーツカーを注文したのを見て、何の疑いも持ちませんでした。アリスはトランザクションを作成し、ボブはそれをネットワークにブロードキャストします。支払いメッセージが確認されようとしているのを見て、彼は非常に満足し、車のキーをアリスに渡し、アリスは猛スピードで走り去った。
実際、トランザクションはネットワークにブロードキャストされず、ボブはトランザクションをアリスの悪意のあるノードに渡しただけであり、アリスによって制御される悪意のあるノードはトランザクションを実際のノードに渡しませんでした。したがって、この時点で、アリスは自分自身または他の人に同じ金額を (実際の) ネットワーク上で支払います。ボブとの最初のトランザクションが最終的に現実のネットワーク上で確認されたとしても、アリスのアカウントの資金が使い果たされているため、トランザクションを検証することはできません。
N回の確認が必要な「二重支払い」
N 回の確認が必要な「二重支出」は、確認を必要としない「二重支出」に似ていますが、より多くの準備作業が必要になります。多くの販売者は、支払いが有効であるとマークされる前に、一定回数の確認を待つことを好みます。この問題を解決するには、攻撃者はマイナー ノードとマーチャント ノードの両方を Eclipse 攻撃にさらす必要があります。攻撃者が販売者との注文を確立すると、そのトランザクションがマイナーにブロードキャストされます。販売者はブロックチェーン ネットワークで確認されたトランザクションを確認できますが、マイナーと販売者が配置されているネットワークは分離されているため、ブロックチェーンはほとんどの実際のノードによって監視されません。
攻撃者は偽のブロックチェーンネットワーク情報を販売者に送信し、販売者は取引が確認されたことを確認した後、商品を引き渡しました。 Eclipse 攻撃を受けたこれらのノードが実際のネットワークに再参加すると、実際のブロックチェーン ネットワークはこれらのノードを無効とみなし、これらのノードを隔離します (これは 51% 攻撃に似ています)。
マイナー間の競争を減らす
Eclipse 攻撃の影響を受けたノードは動作を継続し、ネットワークから隔離されても影響を受けません。マイナーはプロトコルで指定されたルール内でブロックの検証を続けますが、追加されたブロックは実際のネットワーク ノードを通過する過程で破棄されます。
理論的には、マイナーの大部分に対する大規模な日食攻撃は、51% 攻撃を促進するために使用される可能性があります。現状では、最も機知に富んだ攻撃者であっても、ビットコインの計算能力の大部分 (約 80TH/秒) を乗っ取るにはコストが高すぎ、攻撃者は少なくとも 40TH/秒を超える速度で攻撃を試みる必要があります。
この計算能力が 10 人の参加者に分散されていると仮定すると (各参加者は約 8TH/秒)、攻撃者はこれらの参加者をネットワークから隔離することで 51% 攻撃の要件を大幅に削減できます。 5 つのノードが Eclipse 攻撃を受けた場合、攻撃者は次のブロックを見つけるために計算能力を 40 TH/秒減らすことができ、攻撃者はノードを攻撃するという目標を達成するために計算能力を 20 TH/秒増やすだけで済みます。 。 コントロール。
ターゲットに対して Eclipse 攻撃を実行することで達成できる他の破壊的な活動には、ノードを操作して違法なマイニング活動を行うことや、次のブロックを取得するためにマイナー間のコンピューティング能力の競争を悪用することが含まれます。
日食攻撃の影響を遅らせる
十分な IP アドレスがあれば、攻撃者は任意のノードに対して Eclipse 攻撃を実行できます。これを防ぐ最も直接的な方法は、ノードによる不正アクセスをブロックし、特定のノード (ピアツーピア ネットワーク内の他のノードによってホワイトリストに登録されている IP など) への送信接続のみを確立することです。ただし、研究論文が指摘しているように、これは大規模に実装できるソリューションではなく、すべての参加者がこれらの措置を講じた場合、新しいノードはネットワークに参加できなくなります。
著者はビットコイン プログラムに対していくつかの調整を提案しており、その一部はホワイト ペーパーの公開後にビットコイン プログラムに統合されました。新しい接続をランダムに選択したり、アドレス ストレージを増強したりするなど、コードに小さな変更を加えることで、Eclipse 攻撃のコストが増大します。
要約する
Eclipse 攻撃はピアツーピア ネットワーク上で実行されます。スタンドアロン攻撃の展開としては、迷惑な場合があります。 Eclipse 攻撃を実行する本当の目的は、実際には、より大きな影響を与える可能性のある他の攻撃を実行すること、またはマイニングにおいて攻撃者に利点を提供することです。
一般的に言って、Eclipse 攻撃はまだ深刻な影響を与えておらず、ブロックチェーン ネットワークに安全対策が導入されているにもかかわらず、脅威は依然として存在しています。 Eclipse 攻撃は、ビットコインや他のほとんどの暗号通貨が直面するほとんどの攻撃と同様、悪意のある攻撃者にとって利益が得られないようにすることが最善の防御策です。

