同時に正解のノンスが複数見つかったらどうする?
正当なブロックを見つけるための作業、すなわちプルーフ・オブ・ワークでは、高性能コンピュータが数多く投入されています。すると、ほぼ同時に、複数のコンピュータ(ノード)が正解を発見することもあるでしょう。
すると、それぞれのノードが「自分が勝者だ!」と主張してP2P内に正解のノンスとブロックを広めようとします。
正式なブロックの採用方法
この場合、ビットコインでは以下の方法で正式なブロックを決定します。
- 1.とりあえず、二つとも正式なブロックとしておく。すなわち、分岐します。
- 2.そして、その後もブロックの作成を続けます。
- 3.各ノードは、どちらの分岐の次にブロックを追加しても構いません。任意です。
- 4.最終的に、長いブロックチェーンを作った方の分岐を採用し、不採用となったものはデータそのものがなかったことにされてしまいます。よって、採掘報酬もありません。
分岐した後、ノードはどちらの側についてプルーフ・オブ・ワークをするのか自由に決定できます。すると、勝算が高いと予想する分岐に人気が集まるでしょう。負ける側の分岐について勝利しても、勝ったという事実そのものが取り消されてしまって無意味だからです。
こうして、より長くブロックチェーンを作った側が生き残るという方法を採用しています。
ブロックの分岐が起きる確率
では、このブロックの分岐はどれくらいの確率・頻度で発生しているでしょうか。ビットコインは取引記録がすべて公開されていますので、この確率を確認できます。とはいえ、ブロックの数は膨大ですので、全てを調べるわけにはいきません。
そこで、ブロックの番号が400,000番~449,999番の5万ブロックについて、分岐した回数を確認しました。
ブロックはおよそ10分ごとに1つずつ増えていきます。そのブロックは、ブロックチェーンに追加されると番号を割り振られます。2017年3月現在、ブロックの番号は458,000番台です。すなわち、延々と採掘を続けた結果、458,000回もマイニングしたということになります。
- 分岐した回数:92回
- 確認したブロック数:50,000
- 分岐する確率:0.184%
ブロックが分岐する確率は0.2%に満たないようです。分岐して負けたブロックを採掘した人は、報酬をもらえなくて残念な思いをします。しかし、そうなる確率はとても小さいと分かります。
51%攻撃とは
ここで、不正を働こうとする人にチャンス(?)があります。次の方法です。
- 1.意図的に不正なブロックを作り、ブロックチェーンを分岐させる。
- 2.その後もブロックを作成し続け、不正なブロックを承認し続ける。
- 3.不正がない正当なブロックチェーンに対しては承認しないで、ブロックチェーンの作成を妨害する
- 4.すると、正当なブロックチェーンが不正なブロックに比べて短くなるので、捨て去られる。
検証されたブロックの承認には、ノードが参加して計算した総量の過半数が必要です。ということは、正当なブロックチェーンの作成を妨害するには、不正な計算をする側が全体の51%の計算量を保持すれば良いことになります。
この方法による攻撃を51%攻撃、または51%アタックと呼びます。しかし、全世界で計算に参加しているノードの計算力はすさまじく大きいため、51%攻撃を実行するのは極めて大変な作業だと分かります。
51%攻撃は骨折り損・・
51%攻撃が成功してそれが世間に明らかになると、ビットコインの信用が一気に失われ、ビットコインの価格が暴落する可能性があります。価値が暴落すると、巨大な計算力を投入して不正にビットコインを得たのに、結果として損になってしまいます。
このため、51%攻撃を仕掛ける誘因は大きくないと予想できます。
ただし、51%を仕掛けることは不可能か?という問いに対しては、「可能である」という回答が見え隠れします。
