セルフィッシュマイニング(Selfish-Mining)攻撃とは?
セルフィッシュマイニング(Selfish-Mining)攻撃は、ブロックチェーンに対する攻撃手法の1つです。セルフィッシュマイニング攻撃では、悪意のある仮想通貨(暗号資産)マイナーグループが、不当な利益を得るために戦略的にブロックの公開を操作します。
セルフィッシュマイニング攻撃の詳細
セルフィッシュマイニング攻撃では、新たに採掘したブロックを、すぐにネットワークに公開せず隠しておきます。隠している間に次のブロック採掘を秘密裏に続けることで、他のマイナーよりも作業を先に進めることができるのです。
セルフィッシュマイニング攻撃は、ブロックチェーンの透明性を妨げます。通常、マイナーがブロックを採掘すると、採掘情報をネットワーク全体に広め、全員が同じ情報を持つよう共有します。しかしセルフィッシュマイニングでは、採掘したブロックを隠し続けることで「自分たちの秘密のチェーン」と「他のマイナーが知っているチェーン」という2つのバージョンが存在する状態を作り出します。
上記の行動の目的は、以下の2つです。
- セルフィッシュマイナーがより多くの報酬を得るため。
- 他のマイナーに対して、計算資源を無駄にさせるため。
セルフィッシュマイニング攻撃により、正当なマイナーの報酬が減り、ブロックチェーンネットワークのセキュリティと一貫性が損なわれ、全体の公平性と透明性が脅かされます。
セルフィッシュマイニング攻撃の仕組み
セルフィッシュマイニング攻撃のメカニズムを理解するためには、基本的なプルーフ・オブ・ワーク(PoW)採掘プロセスを知る必要があります。
仮想通貨の世界では、マイナーが複雑な数学パズルを解く競争をしています。勝者は取引を検証し、ブロックを公開チェーンに追加することで、報酬を受け取ることができるのです。
しかしセルフィッシュマイニング攻撃では、通常とは異なる方法でマイニングプロセスが進行します。具体的なプロセスは、以下のとおりです。
- セルフィッシュマイナーがブロックを秘密裏に採掘します。
- 採掘したブロックをネットワークに公開することなく、並行して新しいブロックの採掘を続けます。
- 通常のマイナーは公開されているメインチェーンで作業を続けますが、セルフィッシュマイナーは秘密のチェーンでブロックを追加し続けます。
- セルフィッシュマイナーの秘密チェーンがメインチェーンよりも長くなったら、チェーンを公開します。
- ブロックチェーンネットワークでは、常に最も長いチェーンが正しいものと見なされます。
- 最終的にセルフィッシュマイナーのチェーンが採用され、他のマイナーが追加したブロックは破棄されてしまうため、報酬を得ることができません。
結果としてセルフィッシュマイナーは、他のマイナーよりも有利な立場を得ることができるのです。
セルフィッシュマイニング攻撃の事例
2018年5月、モナコインに対するセルフィッシュマイニング攻撃が発生しました。攻撃者はセルフィッシュマイニング手法を用いてモナコインのブロックチェーンを攻撃し、ロシアの仮想通貨取引所Livecoinで約1000万円の損失が発生しました。
上記の事件は、ブロックチェーン技術の脆弱性を露呈させ、仮想通貨の安全性に疑問を投げかけることとなります。ブロックチェーン技術のセキュリティに関する議論を活発化させ、仮想通貨業界全体でセキュリティ対策の強化や情報共有の重要性が再認識される契機となったのです。結果として、仮想通貨エコシステムの成熟と技術の進化を促す重要な転換点となりました。
セルフィッシュマイニング攻撃以外にもクリプトダスティング攻撃など仮想通貨業界を脅かす脅威は存在するので、利用する際には常に注意が必要です。
ビットコインに対するセルフィッシュマイニング攻撃は可能か?
セルフィッシュマイニングの概念は2010年に理論化され、コーネル大学の研究者であるEyalとSirerによって詳細に説明されました。彼らは、セルフィッシュマイナーがインセンティブを変更し、他の中立的なマイナーが利益を期待してセルフィッシュマイナーに加わり、最終的に51%攻撃のリスクを引き起こすという二段階の攻撃を提唱しました。
しかし実際のところ、レイヤー1ブロックチェーンであるビットコインに対してセルフィッシュマイニング攻撃を実行するのは非常に難しいと言えます。理由は以下の通りです。
- 大量の計算力が必要:セルフィッシュマイナーはプライベートチェーンを最も長くするために、非常に多くの計算力を必要とします。
- ビットコインコミュニティの監視:ビットコインコミュニティは常にネットワークを監視しており、ネットワークを損なう行為に強く抵抗します。
- 攻撃の無効化:セルフィッシュマイニング攻撃を察知した場合、関係するマイニングプールから多くのマイナーが離脱し、攻撃の脅威を無効化する可能性があります。
上記の理由から、ビットコインマイニングに対するセルフィッシュマイニング攻撃は理論的には可能ですが、実際に成功させるのは非常に難しいと言えます。
セルフィッシュマイニング攻撃への対策
セルフィッシュマイニング攻撃のリスクを軽減する、代表的な方法は以下の通りです。
- ランダム化技術:複数のフォーク(チェーンの分岐)が存在する場合、マイナーがどのフォークで作業するかをランダムに選択する方法です。マイナーは発見したすべてのブロックとフォークの詳細を公開する必要があります。ランダム化によるプロセスの予測不可能性が、セルフィッシュマイナーの優位性を無効にします。
- タイムスタンプ:採掘された各ブロックに、タイムスタンプを割り当てる方法です。秘密裏に採掘されメインチェーンに導入されたブロックは、古いタイムスタンプに基づいて識別され、拒否されます。
- Proof of Stake(PoS)システムの採用:イーサリアムが採用するProof of Stake(PoS)は、インセンティブ構造と経済的ペナルティの仕組みにより、不正行為の可能性が大幅に低下します。またブロック生成者がランダムに選ばれる確率的な性質により、攻撃者が連続してブロックを生成することが困難になります。
セルフィッシュマイニング攻撃のリスクを完全になくすためには、技術的な対策とコミュニティの協力の両方が重要です。
結論
セルフィッシュマイニング攻撃は理論的には可能ですが、ビットコインのような常に監視されている強力なネットワークでは実行が難しいと言えるでしょう。ブロックチェーンの強さは、分散型の仕組みとコミュニティの力にあります。
最近ではビットコインにもSRC-20やオーディナルNFTに代表される新しい技術が登場していますが、コミュニティがネットワークを監視し積極的な対策を取っている限り、潜在的な脅威はすぐに見つかり、対処され、ネットワークの安全性は保たれるのです。