51%攻撃を技術の話ぬきで説明すると
今日は割と(自分にとっては)難解な話をしてみます。いわゆる51%攻撃(51% attack)というやつです。
この言葉についてすでに聞いたことがある人、技術者の人たちにはあまり説明する必要はない気がしますが、私がビットコインについて勉強し始めた時に「何だ、これ」と思ったことの一つに51%攻撃があります。
日本語でも51%攻撃に関する情報は断片的に転がっていますが、自分の勉強もかねて非技術者の人向けに51%攻撃についてまとめて解説します。
(なお技術者の人で表現が不正確なところに気づいたり、もし間違いなどを発見された方は是非ご指摘お願いします)
51%攻撃とは何か?
51%攻撃とは何か、という情報は日本語でもたくさん転がっています。
51%攻撃 - ビットコイン用語集 - ビットコインの解説 | Bitcoin日本語情報サイト
51% Attack(51%攻撃) - Genx Notes
要は、マイニングの計算能力の過半数を悪意のある特定のグループが保持してしまう状態だと言えます。
すでにご存知の人がほとんどだと思いますが、ビットコインのマイニング(トランスアクションの確認作業)はASICなどと呼ばれるマイニング専用のマシーンを使い行われています。基本的には計算能力が高い人ほどブロックを生成できる確率(報酬のビットコインを受け取れる確率)が高くなり、過半数以上の計算能力を特定のグループが持つと、彼らは事実上マイニングネットワークをコントロールできるようになってしまいます。(具体的にどのようにコントロールするかなどはかなり技術的な話になるので割愛)
なお、過半数の計算力を握ると何ができるかについては後で説明します。
51%攻撃は本当に難しいのか?
ビットコインは2重支払いは不可能だとか、恣意的に改ざん不可能だ、とよく言われますが、それは計算力の過半数をコントロールするのは難しい(コストが高い)という前提があります。
それでは本当に51%は不可能なレベルに難しいのでしょうか?実は異論反論はたくさんあります。
マイニングプールの寡占化
昔は個人でマイニングをしている人もいたようですが、ビットコインのマイニングはすでに産業化されASICという特別なマイニング用マシーンを使い、さらに個人ではなくプールと呼ばれるマイニンググループに参加しないと収益を上げることは事実上不可能になっています。
そのプールの現在の計算力の内訳が以下のようになっています。(Blockchain.infoより)
現在F2Poolというところが最大で全体の22%の計算力を保有しています。2位がAntPoolで17%、3位はBW.COMで10%です。
これを見ると、一つのプールが過半数をコントロールしているわけではないし、問題はなさそうとも言えるかもしれません。ただし、上位4つのプールが協力すれば実は過半数を超えてしまっています。仮にそれぞれのプールが一人の代表にコントロールされているとすれば、4人が合意をすれば51%攻撃をすることが可能になってしまいます。それって不可能と言えるほど難しいことではないのでは??
それゆえに、マイニングはすでに特定の個人の判断に委ねられ、寡占化、中央化されてしまっていて、ビットコイン=分散型という図式はもう成り立たないと批判する人たちもいます。
また、1年以上前にGhashというプールが単独で50%を超えるマイニングパワーを保有してしまったこともあり、将来的に同様のことが起きても全く不思議ではありません。
企業、政府などからの攻撃
もう一つ51%攻撃が可能になる状況として、資本力のある企業や政府などがビットコインネットワークを攻撃するパターンです。現在のビットコインの市場規模は4000億円程度です。これは正直に言って大した規模ではまだありません。Appleの2015年Q2の売上が7兆円程度、利益が1兆円を超えていますから、価格が固定されていたとしたらAppleなら簡単に全てのビットコインを買い占めることができます。(もちろんそんな簡単な話ではないですが)同様に、Appleがマイニング用のASICを買い取りまくればネットワークの50%以上の計算力をコントロールすることも可能です。
同様に政府も同様の攻撃をすることはできます。政府にいたっては無尽蔵にお金を発行する力さえ持っているわけですから、やろうと思えばたいていのことは出来てしまうかもしれません。
ともかく5000億円にもみたない現状の市場規模では、ビットコインネットワークは言うほど悪意のある外部からの攻撃から守られているとは言えないと思います。
ただしもちろんそこまで簡単な話でもない
しかしAndreas Antonopoulousは、国家がビットコインを攻撃したりする懸念はないのか?という質問に対し、「彼らが攻撃をしかけたとしても、それはすぐに明らかになり、それに対応するためにプロトコルに変更が加えられるため国家がビットコインを破壊することはもうこの時点でできない」とその質問を一蹴しています。
ただし、確かにプロトコルレベルで変更を加えてしまえば悪意のある国などがネットワークを攻撃してもそれを回避することはできますが、ではその国に悪意があると誰が判断するのか、そのレベルのプロトコル変更はそんなにすんなり可能なのか、そうであればビットコインはすでに中央集権化されているのではないかと批判できてしまう気もします。
つまり、資金があれば国家が簡単にビットコインネットワークを支配できるわけではないですが、いずれにせよ金を積めばビットコインネットワーク自体を面倒で不安定な状況に追い込むことは可能だろうということです。
51%攻撃でできること、できないこと
さて、51%攻撃をしかけるのは実はそこまで難しくないのかもしれない、というのがわかった後で、では実際に51%攻撃が行われるとビットコインネットワークは簡単に崩壊するのでしょうか?必ずしもそうではありません。
51%攻撃でできることとして、
・トランスアクションが承認されるのを防ぐ
・過半数のハッシングパワーを持っている間、自分のトランスアクションを取り消すことができる(2重支払い)
・マイニングにより得られる10分に一度のブロック報酬(25BTC)を全て自分のものにすることができる。
主に上記3つです。つまり、新しい送金が起こらないように妨害したり、自分が払ったはずの送金を取り消したりすることができるだけです。
逆に51%攻撃でできないことは
・過去のトランスアクションを改ざんする
・ビットコインを新しく無尽蔵に作り出す
・他の人のWalletからビットコインを奪う
つまり、51%攻撃が成功しても、あなたのWalletに入っているビットコインがいきなりなくなるわけでも、過去の履歴が消されたりすることはないということです。その点ではあなたの管理下のビットコインは常にあなただけのものという性質は守られるわけです。
Chris DeRoseは51%が成功しても、可能なことはせいぜいビットコインネットワークを少しの間停止させることだけだと述べています。
まとめ 51%攻撃は重大な問題なのか?
51%攻撃はビットコインにとって悪夢という意見もありますが、ビットコイナーの中にも大して問題視していない人も多いです。理由として、
・プロトコルレベルで問題を回避することができる(Andreasのビデオ参照)
・攻撃が成功してもそもそもビットコインネットワークをコントロール部分は少ない(過去の履歴を改ざんしたり、他の人のビットコインを奪ったりはできない)
・上記のような理由から、そもそもマイナーや国や企業などにも、高いコストをかけて51%攻撃をしかけるインセンティブが乏しい
などが考えられます。
ただし、もちろん51%攻撃が脅威ではないわけではありません。もし51%攻撃が常態化し、送金がいきなり消されたり、2重支払いが多発したりすれば、ネットワーク自体は破壊されなくても、ユーザーの信頼は低下しビットコイン価格は暴落すると考えられます。もしそのような事態が起きれば、あなたの財布に大切に保管されているビットコイン自体がそもそもほぼ無価値になってしまうでしょう。
その点ではやはり51%攻撃の懸念や議論というのは今後も続くと考えられます。最近だとブロックサイズの拡張が提案されたりしていますが、これはさらなるマイニングの中央集権化を助長するという側面もあり、思っているより近くまた特定のプールが51%攻撃を仕掛けられるような状況になるかもしれません。私もこの状況は注意してみていきます。
それでは。
ブロックサイズの拡張についての解説↓