No.006 ”データでデザインする社会”
Topics
経済

計算能力による多数決

ビットコインでは、過去の全ての取引が「ブロックチェーン」と呼ばれるデータ構造に記録されており、P2Pネットワークの各コンピュータ(マイナー)には、その同一コピーが保存されるようになっている。新しい取引は、まとめて新しい「ブロック」に格納され、P2Pネットワークから承認されると、それがブロックチェーンの末尾に追加される。当然、ブロックチェーンはどんどん長くなるので、原稿執筆時でデータサイズは15GB程度にまで増えている。

過去の全ての取引を記録するブロックチェーンの写真
[写真] 過去の全ての取引を記録するブロックチェーン。ビットコインシステムの"元帳"であると言える

ブロックチェーン内の各ブロックには、取引データに加え、1つ前のブロックのハッシュ値と、「ノンス(nonce)」と呼ばれる変数が格納されている。このノンスの値自体には何の意味もないのだが、このノンス値(下図の緑)によって、次のブロックのハッシュ値(下図の赤)が変動する仕組みになっている。また、ビットコインには、新規ブロックをチェーンに追加できる条件として、「そのブロックのハッシュ値がある値(ターゲット)以下になること」というルールが定められてもいる、つまり、新規ブロックを追加するには、適切なノンス値を探しあてる必要があるのだ。しかし、このノンス値は、0から数値を1ずつ増やしてその都度ハッシュ値を計算するなど、総当たり的な手法で探すしかなく、効率よく計算で求める方法は存在しない。

適切なノンス値(緑)を見つけないと、ブロックをチェーンに追加することができない写真
[写真] 適切なノンス値(緑)を見つけないと、ブロックをチェーンに追加することができない

そこで、P2Pネットワークにアクセスする利用者が各々のコンピュータをつかって一斉に計算を行うのが、先に触れた「マイニング(採掘)」という方法だ。適切なノンス値を最初に見つけ出した利用者に対し、報酬として新規のビットコインが発行される仕組みだ。新規ブロックの追加は大体10分ごとに実施される。また、マイニングの報酬額が4年ごとに半減するシステムによって、ビットコインの総発行総数は2100万BTCに収まる設計になっている。この上限に到達するのは2140年頃で、それ以降はビットコインの新規発行は行われなくなり、マイナーの報酬は取引手数料のみになる。上限が決まっているという点は、通貨というよりもむしろ鉱物資源に近い。この計算作業を「マイニング(採掘)」というのは言い得て妙だ。

また、仮に何らかの攻撃者がブロックチェーンを改ざんするとしたら、改ざんしたブロックのノンス値を自分で探し出し、さらに次のブロックも同様に改ざんし、最新のブロックまで改ざんし続けるという、膨大な作業の計算を短時間に行わなければならない。そのためには、善良なマイナーの全CPUパワーを上回る大きなCPUパワーが必要になる。つまり、利用者のPCから集められるCPUパワーが大きければ大きいほど、改ざんが困難になるという訳だ。加えて、もし万が一、攻撃者が強力なCPUパワーを持ち得たとしても、それを改ざんに使うよりも、善良なマイナーとしてP2Pネットワークに加わり、報酬を得た方が大きな利益を得る仕組みになっているのである。攻撃者の心理も巧妙に利用しているのは、ビットコインのユニークなところだ。

Copyright©2011- Tokyo Electron Limited, All Rights Reserved.