51%攻撃とは、悪意ある攻撃者が、ブロックチェーンネットワーク上の過半数以上の計算能力を持っている場合、「なりすまし行為」でブロックチェーンを乗っ取り、不正なトランザクション(取引)を承認させる行為のことです。
51%攻撃の手順
悪意のある攻撃者が、以下の手順で攻撃を実施し、ネットワークを乗っ取ります。
- ブロックチェーンネットワーク上で過半数以上のハッシュレートを制御する
- 不正なトランザクションを含むブロックを生成する
- ブロックをブロックチェーンに追加する
- ネットワークを乗っ取る
まず、攻撃者は多数のマイニングマシンを使用し、ネットワーク上で過半数以上のハッシュレートを制御します。
次に、同じくマイニングマシンを使用して、不正なトランザクションを含むブロックを生成します。
次に、自分が生成したブロックをブロックチェーンに追加します。攻撃者は、過半数以上のハッシュレートを持つため、攻撃者のブロックが他のブロックよりも長くなるようにマイニングを行うことができます。これにより、攻撃者が生成したブロックがブロックチェーンに追加され、不正なトランザクションが承認可能になります。
攻撃者は、不正なトランザクションを含むブロックがブロックチェーンに追加されることによって、ネットワークを乗っ取ります。
51%攻撃への対策
この攻撃を防ぐための代表的な対策は以下の4つです。
1.ハッシュレートの分散化
ハッシュレートを分散することで、攻撃者が過半数以上のハッシュレートを持つことを困難にします。現在、多くのブロックチェーンプロジェクトは、異なるマイニングプールやアルゴリズムを使うことでハッシュレートを分散化しています。
2.コンセンサスアルゴリズムの改善
よりセキュアなコンセンサスアルゴリズムを採用し、攻撃者がコンセンサスアルゴリズムを乗り越えれないようにすることで、攻撃を防止します。
3.ブロックチェーンのハードフォーク
51%攻撃を受けた時の対策として、ハードフォークの実行があります。ハードフォークを実行することで、攻撃時に分岐してしまったブロックチェーンネットワークを、再び統合することで、攻撃を無効化することができます。
4.ブロックチェーンの監視
ブロックチェーンの監視を行い、51%攻撃が行われたことを早期に検知することで、早期対応を可能にします。