はじめに

日食攻撃は、ネットワーク上のノードに干渉するために悪意のある行為者が展開する比較的単純な攻撃です。名前が示すように、この攻撃はピアツーピアネットワークの参加者の視界を不明瞭にし、一般的な混乱を引き起こすか、より洗練された攻撃の準備をすることを目的としています。

日食攻撃は、表面上はシビル攻撃と似ているように聞こえるかもしれません。彼らは特定の類似点を共有しています - 悪意のある行為者は偽のピアでネットワークを洪水させます - しかし、彼らの最終的な目標は根本的に異なります。日食攻撃は単一のノードを狙います(後のセクションで説明する理由による)、一方でシビル攻撃はプロトコルの評判システムをゲームするために設計されたネットワーク全体の攻撃です。

この概念は、ボストン大学とヘブライ大学の研究者が日食攻撃の実験からの発見と、それに対抗するための可能な対策を報告した2015年の論文「ビットコインのピアツーピアネットワークに対する日食攻撃」で詳細に議論されています。


日食攻撃の仕組み

ビットコインマイナーは新しいブロックを生成するために専門の機器を必要としますが、非マイニング(またはフル)ノードは最小限の計算能力で簡単に運用できます。これは、誰でも低スペックのデバイスでノードを立ち上げることができるため、ビットコインの分散化を助けます。このソフトウェアは、直近のピアと同期する取引のデータベースを維持し、ネットワークと連動していることを保証します。

多くのノードにとって制約要因は帯域幅です。ソフトウェアを実行しているデバイスは膨大ですが、平均的なデバイスはビットコインソフトウェアによって設定された制限(最大125接続のみを許可)により、多くのデバイスに直接接続することができません。

日食攻撃では、悪意のある行為者はターゲットのすべての接続が攻撃者制御のノードに行われるようにします。実体は最初にターゲットに自身のIPアドレスを洪水させ、被害者はソフトウェアの再起動時にそれに接続する可能性が高いです。再起動は強制されることも(つまり、ターゲットに対するDDoS攻撃によって)、または攻撃者が単にそれが起こるのを待つこともできます。

これが発生すると、無防備な被害者は悪意のあるノードの思惑に振り回されます – より広いネットワークの視界がなく、攻撃者から不正確なデータを与えられる可能性があります。


日食攻撃の結果

攻撃者がピアをネットワークから排除するためにリソースを費やしている場合、彼らはおそらくそうする動機があります。ノードが窒息させられた後、より容易に実行できるいくつかの連続攻撃があります。


0確認ダブルスパン

個人が確認なしで取引を受け入れる場合、彼らはダブルスパンのリスクにさらされています。取引はブロードキャストされているかもしれませんが、ブロックに含まれるまで(したがってブロックチェーンにコミットされるまで)、送信者は同じ資金を別の場所で使う新しい取引を簡単に作成できます。新しい取引がより高い手数料を持っている場合、マイナーは元の取引を無効にし、新しい取引を優先して含めるでしょう。

一部のビジネスや個人はこれらの0確認取引を受け入れています。高級車を販売する商人のボブを考えてみてください。彼はアリスが彼のノードを日食していることに気づかず、彼女が高級スポーツカーの注文をする際に何も疑っていません。彼女は取引を作成し、ボブはそれをネットワークにブロードキャストします。支払いが進行中であることに満足し、彼は車の鍵を渡し、アリスはスピードを上げます。

もちろん、取引はネットワークにブロードキャストされていません – ボブは単にそれをアリスの悪意のあるノードに中継しただけであり、これらのノードは誠実なノードに中継しません。この取引が宙に浮いている間、アリスは同じ資金を(実際の)ネットワーク上で他のパーティや彼女が所有するアドレスに使います。ボブへの最初の取引が最終的に見られても、コインはすでに使われているため拒否されます。


N確認ダブルスパン

N確認ダブルスパンは、0確認のものに似ていますが、より多くの準備が必要です。多くのビジネスは、支払いを有効と見なす前に特定の確認数を待つことを好みます。これを回避するために、攻撃者はマイナーと商人の両方を日食しなければなりません。攻撃者が商人との注文を設定した後、彼らは(日食された)マイナーに取引をブロードキャストします。取引は確認され、ブロックチェーンに含まれます – しかしこのブロックチェーンは、ネットワークの大多数が観察するチェーンではありません。

そこから、攻撃者はこのバージョンのブロックチェーンを商人に中継し、取引が確認されたと信じて商品をリリースします。日食されたノードが実際のネットワークに再参加すると、彼らが無効であると誤信しているブロックチェーンは、ネットワークの他の部分が作業しているものによって孤立します(これは51%攻撃にいくつかの類似点を持っています)。


競争するマイナーを弱体化させる

日食されたノードは、ネットワークから分離された事実に気づかずに動作を続けます。マイナーはプロトコルによって定められたルール内でブロックを掘り続けますが、追加されたブロックは誠実なピアと同期する際に破棄されます。

理論的には、大規模な日食攻撃が主要なマイナーに対して51%攻撃を促進するために使用される可能性があります。現状では、ビットコインのハッシュパワーの大多数を掌握するためのコストは、最も資源の豊富な攻撃者にとっても非常に高すぎます – 約80TH/sで、その実体はこのような動きを試みるために40TH/s以上を必要とします。

このハッシュパワーが10のパーティ間で分配されている仮定のシナリオでは(各パーティが8TH/sを所有していると仮定)、攻撃者はこれらのパーティをネットワークから切り離すことで51%攻撃の要件を大幅に下げることができます。もし5つのノードが日食された場合、次のブロックを見つけるためのレースから40TH/sが除外され、攻撃者は制御を得るために20TH/s以上を取得する必要があるだけです。

日食ターゲットを通じて達成できる他の妨害には、自己中心的なマイニングのためのノードの操作や、次のブロックを見つけるためのマイナー間のレースのエンジニアリングが含まれます。


緩和策

十分なIPアドレスを持つ攻撃者は、任意のノードを日食させることができます。このような事態を防ぐ最も簡単な方法は、オペレーターが受信接続をブロックし、特定のノード(他のピアによってホワイトリストに登録されたノードなど)のみにアウトバウンド接続を行うことです。しかし、研究論文が指摘するように、これはスケールで機能するアプローチではありません – すべての参加者がこれらの対策を採用すれば、新しいノードがネットワークに参加できなくなります。

著者たちはビットコインソフトウェアに対していくつかの調整を提案しており、そのいくつかは論文の発表以来統合されています。これらは、新しい接続のランダムな選択やアドレスを保存するためのより大きな容量など、コードの軽微な修正を通じて日食攻撃のコストを高くしています。


結論

日食攻撃はピアツーピアネットワークレベルで実行されます。スタンドアロン攻撃として展開されると、少々の迷惑になることがあります。彼らの真の効果は、対象に財政的に影響を与える他の攻撃を促進することや、攻撃者にマイニングの面での優位性を提供することにあります。

実際のところ、日食攻撃からの深刻な結果はまだ見られていませんが、ネットワークに統合された対策にもかかわらず、その脅威は依然として存在します。ビットコインや他の暗号通貨に存在するほとんどの攻撃ベクターと同様、最も強力な防御は、悪意のある当事者がそれらを試みることを財政的に禁止するものです。