前回は、二重支払い問題と取引の改ざん問題について解説しました。
第一回から読みたい方はこちらからどうぞ。
今回はついに最終回です。ビットコインの取引の承認の仕組みであるブロックチェーンとProof of Work(マイニング)について、わかりやすく説明していきます。
ブロックチェーンとは「取引のかたまりをつなげる」こと
まずは、ブロックチェーンのイメージをつけていきましょう。
ブロックチェーンとは、その名の通り取引の入った箱(ブロック)をつないだものです。
上の図のように、 単語カードの束をリングでつなげていくイメージです。それぞれの単語カードが取引で、リングをつなげていくようなイメージです。
さて、イメージがついたところで、ブロックの中身をもう少し詳しく見ていきましょう。
ブロックの中には、以下のものが入っています。
ブロックは、前のブロックとのつながり(チェーン)を示すために、前のブロックのハッシュ値を持っています。ブロックのハッシュ値は、これらの前のブロックのハッシュ値、ブロック内の全取引、ナンスから計算されます。
Proof of Work(マイニング)
Proof of Workとは直訳で仕事の証明です。具体的には、このブロック内の取引を承認するためのお仕事(ブロックを作成するための手順)です。
ビットコインでは、「ブロックのハッシュ値がある値より小さければ、正式なブロックとして認める(取引を承認する)」というルールを設けています。
ハッシュ値は、データがわずかでも変わると全く別の値になりますので、ナンスを違う値に変えると別の値になります。
取引を承認するためには、ひたすらナンスの値を変えて、このルールを満たすハッシュ値が見つかるなるまでハッシュ値を計算しつづける必要があります。狙ったハッシュ値を作ることはできませんので、これには大変な回数の計算が必要になります。
イメージとしては、ナンスをカレーの隠し味に例えると、美味しい隠し味が見つかるまで、いろいろな隠し味を試して味見をするという感じです。
ルールを満たすハッシュ値が作れるいいナンスが見つかると、そのブロックが承認されます。さらに、最初にナンスを見つけた人はビットコインがもらえます。
大変な計算をこなしたことへのご褒美ですね。このようなインセンティブ設計がうまく働いているため、取引に関わる二者以外に、自らすすんで承認してくれる第三者がいるのです。
このブロックを承認するための 一連の計算は、金(ゴールド)を得るために鉱山を採掘するのに似ているのでマイニング(mining)や採掘と呼ばれています。また、マイニングをする人はマイナー(miner)と呼ばれています。
このProof of Workによってブロックがつながっていくことで、「いつ取引されたか」、つまり取引の順序が確定します。
改ざんを防ぐ仕組み
これまで説明した仕組みを使って、ビットコインのシステムがどのように二重支払いや改ざんを防いでいるのか見ていきましょう。
改ざんの検知
取引を改ざんした場合、ブロックのハッシュを計算するための一部のデータが変わります。そうすると、ブロックのハッシュ値は全く違う値に変わります。
つまり、取引が改ざんされている場合「ブロックのハッシュ値はある値より小さいハッシュ値でなければならない」というルールを満たさない値に変わっている可能性がきわめて高いということです。
この改ざん検知のための計算は、1回のハッシュ値計算のみで済むため、ビットコインの参加者は誰でも簡単に改ざんを検知できます。
改ざんを防ぐ仕組み
さらに、ビットコインにおいては、「一番長いチェーンを正しいものとする」というルールがあります。
過去の取引を改ざんしたい場合、他のマイナーがどんどん正しいチェーンのブロックを承認し続けているなかで、それ以上のスピードでマイニングを続け、一番長いチェーンを作成しなければなりません。
これを実現するためには、ビットコインのマイニング全参加者の半分以上の計算量が必要になります(この手法は51%攻撃と呼ばれています)。
ビットコインでは、全世界でマイニングに大量の電力が使われていますので、現実的には不可能に近いでしょう。
このように、マイニングの計算パワーが十分大きい状況において、一度確定した取引は改ざんがきわめて難しい仕組みになっています。
二重支払いをしようとする場合も、ブロック内にすでに確定した取引がある状況で、その取引を削除する必要がありますので、 改ざんと同様です。
まとめ
これまで全5回に渡ってビットコインとブロックチェーンの仕組みを説明していきました。
ビットコインの仕組みを知っていれば、他の 暗号資産(仮想通貨)もビットコインの影響は多かれ少なかれ受けていますので、理解しやすいと思います。
もし、ビットコインをはじめとした暗号資産(仮想通貨)を購入される場合は、私は、その暗号資産の仕組みを調べてから買ったほうが無難だと思います。
例えば、改ざんを防ぐ仕組みが脆弱だと、あなたの暗号資産が盗まれてしまうかもしれません。信用できる第三者がいないということは、裏を返せばすべて自己責任の世界であり、クレジットカードのように盗まれた場合の補償はありません。
もし、ビットコインを買ってみたいという方は、その際にこのシリーズを見返していただければ幸いです。
あとがき
ビットコインの仕組みを理解するためには、専門用語や暗号方式など、それなりの前提知識が必要であり、一般向けの入門書やWebではここまで説明していないものが多いです。
情報セキュリティに精通したエンジニアであれば、これらの要素技術はすでに昔から使われているものなので、ナカモトサトシ論文を読んだり専門的なサイトで勉強すればある程度理解できるかと思います。
一方で、非エンジニアにとっては、本でもネットでもなかなかわかりやすい情報がなく、理解が難しいと思います。
今回のシリーズを書くにあたって、どうすれば伝わるのかうんうん考えながら、図を描いてみて、日常的なものに例えるように工夫してみました。ある意味で、自分の説明力を試すためのチャレンジングな企画でした。
拙い説明ではありますが、うまく伝われば幸いです。
最後に、きっかけを与えてくれたTwitterのコミュニティであるマネーリテラシーの森のメンバーに感謝です。
もう一度復習したいという方はこちらからどうぞ。