ビットコインに学ぶブロックチェーンの真髄#10 コンセンサス・アルゴリズム編3
昨今話題のブロックチェーン技術について、その概要と詳細な仕組みを10 回くらいの連載を通じて詳しめに解説していくシリーズの第10回目になります。
第9回目はこちら
シリーズ全体はこちら
今回はビットコインで採用されているコンセンサス・アルゴリズムであるプルーフ・オブ・ワーク(PoW)の本質について解説していきます。
プルーフ・オブ・ワーク(PoW)の本質
ここまでこのシリーズを読んで頂いた方はおわかりいただけると思いますが、ブロックチェーンではメインチェーンのみが正当なデータ履歴として扱われます。メインチェーンとして多くのノードに共有されることに価値があるのです。
そして、ビットコインのようなPoWを採用しているブロックチェーンにおけるメインチェーンを規定するルールは「一番長いチェーンであること」です。
一番長いチェーンであるには、フォークしたチェーンよりも速くマイニングを進める必要があります。そして速くマイニングを行うためには大量のコンピュータリソースを用意して計算する必要があり、それは個人の力で達成できることではありません。多くのマイナーがそのチェーンを伸ばすためにマイニングをする必要があるのです。つまり、言い換えると、一番長いチェーンとは一番多くのコンピュータリソースが割かれたチェーンのことであり、一番多くのノードが有効と認めたチェーンであることを意味します。
これがPoWのロジックです。PoWでは、いわば「コンピュータリソースの多数決」によってメインチェーンを決めているのです。このアルゴリズムはノード間の合意を取るという機能はもちろんのこと、ビットコインというシステム自体のセキュリティの向上にも一役買っています。
PoWのセキュリティ
たとえば悪意のあるマイナーMが現在のブロックの2つ前のブロックからフォークさせて新しいチェーン(Mチェーン)を作り、それを伸ばしてメインチェーンとすることを目指すとします。
するとそのマイナーMはMチェーンを現在のメインチェーンよりも長くする必要があるため、3ブロック分の差を縮めなければなりません。しかもマイナーMがMチェーンを伸ばしている間もメインチェーンは伸びていきます。
Mチェーンをメインチェーンよりも長くするためにはマイニングに参加する全コンピュータリソースのうちの半分以上をMチェーンのマイニングに回す必要がありますが、これは現実的には考えづらいです。それに、それほどのリソースを持っているのなら、順当にメインチェーンを伸ばすマイニングに参加してマイニング報酬をもらったほうが経済的に得です。
上記の理由からPoWのシステムではある時点のブロックから数えて後ろにチェーンが伸びるほど、ブロックがひっくり返る可能性は低くなり、ブロック内容の安全性が高まります。ビットコインでは後ろに6つブロックが続けば、そのブロックがメインチェーンのブロックでなくなることはないと考えられています。つまり自分のトランザクションが含まれるブロックが承認されてから1時間待てば、ほぼほぼ確実に取引が成立したとみなしてよいということです。
以上がビットコインのコンセンサス・アルゴリズムとして利用されているPoWの全容になります。この仕組みによって唯一の正しいチェーンが全てのノードに共有されるという状態を作り出すことができます。
PoW以外にもイーサリアムで採用されているプルーフ・オブ・ステーク(PoS)やNEMで採用されているプルーフ・オブ・インポータンス(PoI)などいくつかのコンセンサス・アルゴリズムが存在します。
結論、ブロックチェーンって何?
さて、ここまででビットコインを中心としたブロックチェーンの技術的な説明は一通り完了しました。
P2P通信、電子署名、コンセンサス・アルゴリズム(特にPoW)という3つの要素をうまく組み合わせれば、「確実に安全性を保障できるトラストレスなデジタル通貨システム」を実現することができるとお分かりいただけたと思います。このようなデジタル通貨システムでは、たとえ悪意のある者がネットワークに参加したとしても不正を働けないようになっていますし、特定の誰かが権力を持つということもありません。
では、最初の話に戻ります。ブロックチェーンとはいったいどこからどこまでの部分の話なのでしょうか。
ブロックチェーンとは、文字通りの解釈をすると「一定間隔でデータを格納したブロックを作り、それを時系列に沿ってつなげていく機能」になります。しかしこれは、数字(資金)の移動に特化したビットコインというシステムからつけられた名前なので、将来的に別の用途のブロックチェーンを開発しようというときに、あえて「ブロックを作る」という部分に固執すべきではないと思います。
そういう意味で言うと「ブロックチェーン」という名前は本質的ではないので、ブロックチェーンによって何ができるようになって、自分が作りたいものにブロックチェーンのどの部分の要素が最低限必要なのかをしっかり考えることが重要です。
「ブロックチェーンの本質はなんなのか?」と問うと、有識者であってもその答えは十人十色だと思います。ブロックチェーンとはそれくらい発展途上の概念なのです。
私の理解ではブロックチェーンとは「データの書き込みと保存が行える分散システム」だと思っています。そしてそれを最初に実用化したのがビットコインであり、その面白さはコンセンサス・アルゴリズムというルールの妙にあると思っています。
ビットコインの興味深い点は、電子署名やP2P通信などの枯れた技術とコンセンサス・アルゴリズムという設計の組み合わせで巨大な分散型デジタル通貨送金システムが実現できてしまっているという点です。そしてその1つの巨大なシステムが、経済合理性にしたがって動いている無数の人々の自分本位な行動によって無意識に支えられているという点も非常に興味深いです。
今回、ブロックチェーンの核を知るという目的で、その原点であるビットコインの解説を行いました。原点がしっかり理解できていれば、その派生である他のブロックチェーンの構造や、ライトニングネットワークやプラズマなどの拡張機能の理解もしやすくなります。
ブロックチェーン領域は新しい技術・概念もどんどん出てくるのでとても調べがいがあります。さらに、コンピュータサイエンス、数学、経済学、法律、政治、金融などなど世の中のあらゆる学問領域と関わってくるので難易度もとても高いです。興味があればぜひ足を踏み入れてみてください。
このシリーズは『あたらしい経済』で私が執筆した「ブロックチェーンは今までのシステムと違って何がすごいのか〜ノンプログラマーでも解るブロックチェーン入門」シリーズを大幅に加筆修正したものになっています。
この記事が気に入ったらサポートをしてみませんか?