ブロックチェーンは非中央集権化された仕組みで非常にセキュアであるとされる一方でさまざまな問題も存在しています。
そのひとつに51%攻撃の問題があげられます。そこでここでは、いつ、何を、どうやって攻撃することが51%攻撃であるのか、また51%攻撃により何ができて、何ができないのかお伝えしていきます。
また、当記事ではビットコインに関するブロックチェーンの内容となっています。
51%攻撃とは
51%攻撃とは、悪意のあるマイナーが全体の51%以上の計算能力を持ってしまうことです。これにより、ブロックチェーンネットワークをある程度コントロールできるようになります。
ここで「ある程度」と表現したのは、51%攻撃によりブロックチェーンのすべてをコントロールできるだけではないことを強調するためです。詳しくは後述しますが、51%攻撃により二重支払いなどの不正取引などはできたとしても他人のビットコインを奪うようなことはできません。
また、正確には51%攻撃には「51%」という閾値は存在しません。なぜならマイニングは確率的な事象であり51%未満でもコントロールできる確率がありますし、逆に51%より大きくてもコントロールできない確率があるからです。ある研究グループの発表では全体に対する30%程度のハッシュパワーを持つことでもさまざまなタイプの攻撃が可能になると提唱されています。
51%攻撃が行われる仕組み
ブロックチェーンの分岐
ビットコインのブロックチェーンではネットワーク参加者のマイニングによりブロックが生成していきます。マイニングではブロックのハッシュ値を求めるために「ナンス」の計算を行なっています。この計算を最初に行えたマイナーがブロックを生成できマイニング報酬を得ることができるのです。
しかし、たまに複数のマイナーが同時にナンスの計算をし終えることがあります。この場合はブロックチェーンのルールに基いて、まずはそれらのブロックチェーンはどちらも正式なブロックとして承認します。
そして、その後もブロックをつなげていき、最終的に長い方のブロックチェーンが正式なブロックチェーンとして採用され、短い方のブロックチェーンはブロックそのものがなかったこととされます。
ビットコインのブロック生成時間が10分に調節されていることを考えると、ほとんどの場合分岐(フォーク)したとしても1ブロックのみです。なぜなら、複数のノード同時にナンスを計算し終えることが2回連続起こらないとセカンダリーチェーン(フォーク後のサブチェーン)が2ブロック続くことはないからです。
51%攻撃
51%攻撃はこのブロックチェーンが分岐することを利用して行われます。つまり、不正な方のブロックチェーンを伸ばし続け、正当な方のブロックチェーンを捨ててしまうのです。
ブロックを生成した後に、そのブロックの取引情報が本当に正しいのか承認が行われます。この承認にはネットワーク参加者の計算量の過半数が必要です。
ということは、悪意のあるノードが51%以上の計算力を保持していたら理論上、そのノードの好きな方のブロックチェーンを伸ばすことができてしまうのです。
51%攻撃の可能性
マイニングプールの寡占化
(引用:blockchain.info)
昔はCPUで個人がビットコインのマイニングをすることも可能でした。しかし、現在はマイニングの競争が激化し個人がマイニングで利益を得ることはほとんど不可能になっています。
現在、マイニングはASIC(Application Specific Integrated Circuit)というマイニング専用のマシンを用い、さらに個々のマイナーがグループを作り協力し合うことでマイニングプールを形成しています。このようにマイニングプールを作らないとマイニング競争に勝つことはできなくなってきているのです。
マイナーはマイニングプールに参加することで分配金を得ることができます。自分がマイニングを成功させなくても同じマイニングプールに参加している他のノードが成功すれば、そのマイニング報酬はマイニングプール内で分配されるのです。
この得られる分配金は、マイニングプールへの計算貢献度により変わってきます。マイニングプール内でビットコインのブロックチェーンマイニングよりも簡単なナンスを設定することで、そのナンスの発見で貢献度を測ることができます。要は、マイニングプール内ではより低いdifficultyを想定してマイニングを行なっており、その低いdifficultyでのマイニングに成功した一部のマイナーが本来のブロックチェーンでのマイニングにも成功していることがあるということです。
また、マイナーがマイニングプールに参加することのメリットは安定した分配金を得られること以外にもあります。マイニングプールに存在するプールサーバーが、そのプールに参加しているマイナーの代わりにブロックやトランザクションの検証を行なってくれるのです。
マイナーはマイニング(ナンス計算)だけでも大変なのに、フルブロックチェーンを持ちブロックやトランザクションの計算を行なっていくことは大きな負荷になります。マイニングプールに参加していればフルノードを運営することなくマイニングに集中することができるのです。
上図の円グラフは2017年10月現在において、ビットコインマイニングプールの市場シェアを示しています。多数のマイニングプールが存在することが分かりますが、同時にマイニングプールの寡占化が起きていることも見て取れます。
つまり上位4位のプールを合計すると全体の51%を越してしまうのです。よく言われることですが、これら上位のプールの結託により理論上51%攻撃は可能となります。
さらに、最近ではビットコインのブロックチェーンを小さいままのブロックにしておくか(small block派)、大きなサイズのブロックにするか(big block派)の対立が顕著になっています。
もしbig block派が主流になってくるとマイナーの寡占がさらに加速することが予想されます。
なぜなら、ブロックサイズの拡大によりマイナーが生成したブロックがネットワーク内に伝搬する時間がよりかかることになります。ということは、ブロックを生成することができたマイナーは他のマイナーより先に次のブロックのマイニングをスタートできるのです。
当然、ハッシュパワー(計算力)を多く持つマイナーの方がブロックを生成する機会が多いわけですから、大規模なマイニングプールがよりブロックを生成しやすくなりマイニング報酬を受取りやすくなるのです。
この状況が進んでいくと、マイニングプールの寡占化がより加速することがイメージできると思います。
実際に2013年12月にはGHash.ioというビットコインマイニングプールが50%以上の計算能力を持ちそうになったということがあります。これに伴いビットコインの価格も大幅に下落しました。
当時に比べ現在はビットコインの時価総額や市場も広がっていますが、ビットコインがPoWというコンセンサスアルゴリズムを採用している以上、51攻撃は無視することができない問題なのです。
参考:プルーフオブワーク(PoW)の仕組みを知らずにビットコインは語れない
政府や大企業による資本の投入
他に考えられる51%攻撃の可能性として政府や大企業による大規模な資本投入が考えられます。つまり、ビットコインネットワーク外部からの攻撃です。
大きな組織がマイニング事業に乗り出し51%以上の市場シェアを取ってしまうなどのケースです。もちろん、攻撃をすることがなくてもマイニング市場では過半数以上のシェアを取っていること自体が脅威となります。
ただし、マイニング速度(ハッシュレート)は近年加速度的に上昇しており外部からの攻撃は困難になってきています。
以下がマイニングのhash rateです。
(引用:blockchain.info)
また、Mastering Bitcoinの著者でもあるAndreas Antonopoulos氏はマイニングプールの多くが中国企業であるけれど、国による51%攻撃はとても難しいと考えています。
51%攻撃による影響
ここまで51%攻撃の具体的な仕組みや可能性について見ていきましたが、実際に51%攻撃が起きた場合はどのようなことが起こり、逆にどのようなことは起こらないのでしょうか。
つまり、51%攻撃にできることとできないことは何なのでしょうか。ここでは51%攻撃が与える影響について見ていきます。
できること
51%攻撃は上述したようにブロックチェーンが分岐したときに、不正(ブロックに含まれるトランザクションが誤っている)方のブロックチェーンを正式に採用し、伸ばし続けることです。
このことを考えると51%攻撃により実現することは以下の通りです。
- 取引の二重支払い
- 取引承認の妨害
- マイニングの独占
取引の二重支払いとは、同じビットコインで2回の取引を行うことです。例えば、僕が持っている100BTCを太郎さんに送ります。取引の二重支払いが可能な場合は、この100BTCを花子さんにも遅れてしまいます。
つまり、僕は100BTCの支払いだけで太郎さんと花子さんに100BTCずつ送ることができたので結果的に100BTCが200BTCに増えたことになります。
この取引の二重支払いができることは攻撃者にとって大きなメリットですね。他にも取引の承認を妨害したり、送金が消されたり、マイニングの独占によりマイニング報酬をすべて手に入れることなどが可能になります。
このように一見、51%攻撃をすると大きな利益を得られるように見えますが攻撃が行われたことがユーザーに分かると、ビットコインの価格自体が暴落することが予想されます。
つまり、攻撃者が得たビットコインの価値も大幅に低下してしまうのです。
これがPoWでは不正をするほど損をすると言われる所以です。ただ、51%攻撃を行いその事実が発覚する前に攻撃者は持っているビットコインを法定通貨に換金してしまうなどは可能なのではないかと思われます。
できないこと
また、51%攻撃によりできないことは以下のことがあげられます。
- 過去の取引の改ざん
- 他人のビットコインを盗む
51%攻撃は分岐を起点に行われますので、分岐以前のブロックチェーンに記録された取引データは書き換えることができません。なので、2017年10月に51%攻撃が行われたとしても2017年1月に太郎さんが花子さんに100BTC送ったという事実も消えませんし、花子さんが100BTC受け取ったという履歴も残ります。
ただし、最新のブロックから遡って6ブロックくらいであればそのブロックからフォーク(分岐)することでトランザクションの事実を変えることは可能です。なぜなら、51%以上のハッシュパワーを持っているということは本来のメインチェーンよりも速い速度でブロックチェーンを伸ばせるということであり、ある程度過去に遡って再度マイニングをすることで新しいブロックチェーンを伸ばしていくことが可能であるからです。
ただし、過去のブロックになるほどマイニングの計算量は膨大になるため1時間以上前のトランザクションを改ざんすることは非常に困難となります。
また、51%攻撃によって他人のビットコインを盗むことはできません。なぜなら、51%攻撃と秘密鍵(Private Key)は無関係だからです。
2014年にビットコイン取引所の「マウントゴックス」が攻撃されビットコインが不正流出したという事件がありました。
これは51%攻撃とは無関係であり、ブロックチェーンへの攻撃ではなく取引所のサーバーに対する攻撃です。取引所にビットコインを預けているということは、秘密鍵を取引所に預けているということであり、取引所のサーバーにハッキングされたことで秘密鍵が流出してしまったからビットコインが奪われてしまったのです。
それに対し、51%攻撃はブロックチェーンネットワークにおける攻撃です。あなたの秘密鍵はブロックチェーンのどこにも記録されていません。秘密鍵が保存されているのは、あなたのWalletです。
なので51%攻撃によりあなたのビットコインが盗まれることはありません。