概念を知っておこう!ビットコインの51%攻撃とは
初心者向けにビットコインの51%攻撃について解説しています。ブロックチェーンの特性上生まれる可能性のある51%攻撃ですが、そもそも何なのか起きるとどうなるのか説明。仮想通貨を持つ上で理解しておきたい知識でしょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
今回は、51%攻撃について解説します。
ビットコインの51%攻撃とは何なのか、今後ビットコインがどうなる可能性があるのか解説しています。ブロックチェーンの特性上生まれる可能性があるものなので、ぜひ知っておきましょう。
今回はビットコインの51%攻撃についての話をしよう。
田島メンター!51%攻撃ってよく聞く言葉ですが、具体的にはどういう問題なんですか~?
マイニングを行うひとつの大きな組織が51%を占めることで、不正な取引を行うことが可能になることを指すんだ。まずブロックチェーン全体の仕組みから見ていこう。
お願いします!
51%攻撃とは
51%攻撃とは、ビットコインのブロックチェーン理論で考えると、51%のノードが虚偽のトランザクションデータを含むブロックに対して支持する表明を行った場合、虚偽のトランザクションデータを含むブロックが、虚偽のまま正しいブロックとして成立することを言います。
虚偽のトランザクションデータを含むブロックに対して支持するということは、虚偽のトランザクションデータを含むブロックを生成することから始まります。
トランザクションデータを含むブロックを生成すること自体をマイニングと言います。
つまり、虚偽のトランザクションデータを含むブロックを生成する、ハッキングのようなマイニングを51%のノードが支持することが51%攻撃になります。
トランザクションとは何か分からない方向けの記事も合わせてご覧ください。
マイニングとは
そもそも、ビットコインにおいて、どようにマイニングを行っているかを考えます。
マイニングは、分散台帳の管理・運営処理を行うための計算処理を、マイナー(ノード)と呼ばれるクライアントPC側で行うことです。
一言で言うと、今まではインターネット上のサーバーで行っていた計算処理を、世界中のインターネットに繋がった手元のパソコンで行うということです。
マイニングについて詳しく解説した記事も参考にして下さい。
正しいブロックが決定する仕組み
マイニングを行っている時に、同時に新しいブロックが生成される場合や、虚偽のブロックが生成されるなどして、2つ以上のブロックが正しいブロックとして生成されることがあります。
その際、ビットコインの場合次のような過程を経て最終的に正しいとされるブロックが決定されます。
- 同時に2つのブロックが生成されました。これをブロックAとブロックBと仮定します。
- ブロックAとブロックBの値が同じ場合でも、どちらかが虚偽の場合でも構いません。
- ブロックAの次にブロックAA–ブロックAB–ブロックACとブロックが生成され続けます。
- ブロックBの次にブロックBA–ブロックBB–ブロックBCとブロックが生成され続けます。
- 各ノードはどちらのブロックを支持しても構いません。この支持自体は各ノードが任意に行います。
- 最終的に支持が多いブロックチェーンが生き残り、支持が少なかったブロックチェーンは消えます。
- 支持しても消えるブロックチェーンを支持し続けるということは、支持するために使用するマイニングに必要なマシンパワーが無駄になるということです。
- つまり、悪意がない限りは正しいブロックチェーンを支持することが、ノード自身の利益に成るということです。
この証明過程を経ることで、ビットコインはブロックチェーンを使用する仮想通貨の中で最も51%攻撃に強い仮想通貨となりました。
今回解説した、正しいブロックを証明する過程のことを、PoW(プルーフ・オブ・ワーク)と呼びます。
PoWとは、Proof-of-Workの略称で、日本語で言うと仕事により証明することを意味します。
ここで言う仕事とはマイニングを意味します。
PoWをサイコロで解説
Powについて、サイコロを投げるゲームで説明してみます。
複数人のプレイヤーが2つのサイコロを投げます。
勝利条件は、サイコロの和が、特定数値以下であれば勝ちとします。
ここでサイコロを投げることをビットコインで言うマイニングと考えます。
サイコロの和をNonce(ノンス)と呼びます。
この勝利条件である特定数値をDifficulty Target(閾値)と呼びます。
参加者が1人の場合のDifficulty Targetは非常に高く、ある程度のNonceでも勝利できます。
しかし、参加者が1000万人のように増えていくと、Difficulty Targetの値は低い数値になり、サイコロでNonceを出すことが非常に難しくなります。
現在のビットコインは参加ノードが多いため、Difficulty Target(閾値)が非常に低く、Nonceを出すことが難しいです。
結果的に、正しいブロックを支持し続けても、利益を得ることが難しい状態で、虚偽のブロックを支持して利益を得ることは不可能に近いということを意味しています。
改ざんしづらい仕組みのブロックチェーン
ブロックチェーンのデータは次のようなデータです。
ブロックデータ例
index: timestamp: transactions: [ sender: recipient: amount: ] previousHash:
そして、このブロックデータは次のブロックデータとpreviousHashという部分でつながっています。
このことをブロックチェーンのチェーンと読んでいます。
具体的にどのようにつながるかと言いますと、前のブロックの内容をハッシュ化した値が、次のブロックのpreviousHashに格納されているということです。
ハッシュ化にはハッシュ関数という不可逆的な暗号化技術を使用します。
つまり、1つのトランザクションデータを改ざんすると、それ以前のpreviousHashの値も改ざんしていく必要があります。
このため、改ざん自体は非常に困難です。
改ざん自体は困難でも、改ざんされたブロックを51%以上のノードが支持することで、改ざんされたデータが正しいデータとして承認されることは技術的に可能です。
改ざんするために必要な51%以上のノードが承認するような大きな力を、ハッシュパワーと言います。
現状で最大のハッシュパワーはノード全体の半分に満たない状態ですので、複数の特定ノードが協力して悪意の操作をしない限り、51%攻撃を達成するようなハッシュパワーにはなりづらいと考えられています。
しかし、マイニングプール同士が結託することで、ハッシュパワーがノードの半分を超えることも可能です。
個人で行われるマイニングをソロマイニング、グループによって行われるマイニングをプールマイニングと呼ぶよ。
現在は組織によるものがほとんどということですね。マイニングプールの割合って今どんな感じなんでしょうか?
それでは次に、マイニングプールの現状とこれからについて見ていこう。
マイニングプールとは
https://blockchain.info/poolsより
マイニングプールとは、ビットコインにおいてマイニングを個人ではなく、ノードが集まり組織的に行う集団のことです。
最大派閥のマイニングプールはを占めているBTC.comです。
51%攻撃の事例
2013年に、とあるマイニングプールが50%超を占めたことがあります。
その時にでさえも、51%攻撃が行われることはありませんでした。
ですので、現在51%攻撃の事例はありません。
そうは言っても、51%攻撃自体が現実的には可能です。
これが、2018年2月中旬のビットコインやアルトコインの時価総額です。
参照:https://coinmarketcap.com/#JPY
ビットコインの時価総額が16兆円規模です。
例えば、巨大な政府が本気でビットコイン市場を攻撃しようとすれば10兆円投入するだけで、51%攻撃が可能となります。
10兆円も投入することが可能かどうかについてですが、日本政府であれば可能です。
例えば、2003年の年末から2004年の年明けにかけて約1ヶ月強の間、日本銀行は30兆円以上の日本円を用意し、為替介入を行いました。
これは、日銀砲と呼ばれ、アメリカのヘッジファンドによる日本円の釣りあげに対し、最終的に50兆円以上の為替介入を行ったと言われています。
51%攻撃の対処法
もし、51%攻撃が行われた場合、対処方法はありません。
一説によれば、2040年頃になると、ビットコインで51%攻撃が実現可能になるそうです。
これは、2040年頃になると、ビットコインのコイン自体が枯渇してしまうことで、新たなマイナーが生まれないことに伴い、正しいブロックチェーンを支持すること自体を辞めてしまうことが予想されるためです。
つまり、その頃になると、51%攻撃が可能になるだけでなく、ビットコイン自体の価値にも大きな変化がみられる可能性があります。
今回は、51%攻撃について解説しました。
今後生まれる可能性があるものとして理解しておくと事業を作るにせよ仮想通貨を持つにせよ役立ち知識になるはずです。
最後に51%攻撃が起きたときにどうなるか、実際に起こる可能性についての話をしたよ。
起こってしまうと対処ができないということと、将来的に起こるかもしれない状態であるということですね。
マイニングプール同士の結託や大規模な資本の投入など、原因となりうるいくつかの要素についても復習しておこう。
分かりました。ありがとうございます!
また、オンラインのプログラミングスクールTechAcademyでは、ブロックチェーンオンライン講座を開催しています。
ブロックチェーン技術の仕組みを理解し、実際に分散型アプリケーションを開発することができます。
現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。
この記事を監修してくれた方
中本賢吾(なかもとけんご) 開発実績:PHPフレームワークを利用した会員制SNS・ネットショップ構築、AWSや専用サーバー下でLinuxを使用したセキュアな環境構築、人工知能を利用したシステム開発、店舗検索スマホアプリ開発など。 その他にも地域の職業プログラマー育成活動を行い、2018年には小学生がUnityで開発したオリジナルAndroidアプリをGooglePlayでリリース。ゲームで遊ぶより作ろうぜ!を合言葉に、小学生でも起業できる技術力を育成可能で有ることを証明し続けている。 |