バナナでもわかる話

計量経済学・統計学が専門の大学院生です。統計学・経済学・投資理論・マーケティング等々に関する勉強・解説ブログ。ときどき趣味も。極力数式は使わずイメージで説明出来るよう心掛けていますが、時々暴走します。

ビットコインとプルーフオブワーク

今まで何度かビットコインとブロックチェーンの仕組みについて説明してきました。
bananarian.hatenablog.com

しかし、今までの話で、説明の都合上一つ省略していたことがあって、

何かの間違いでチェーンが同時に二つ承認されてしまったらどうするの?という問題です。

今回はその話をします。



プルーフオブワーク

今までの復習をしておくと、
要はビットコインの仕組みは、一番早く条件に合うハッシュ値を見つけたマイナー(マイニングする人)のブロックが他のマイナーの承認のもと認められ、ブロックチェーンに組み込まれるというものでした。


しかし、もし通信に問題が発生し、二種類のブロックチェーンが並立したら何が起こるでしょうか。
条件を満たすブロックチェーンが複数現れたら??

この場合は、最もチェーンの長いブロックチェーンが採用されるという仕組みをもって解決しています。



つまりこういう状況です。

f:id:bananarian:20181001012940p:plain


もう少し正確に言うと、最も多くの参加者から承認をもらったチェーンが採用されるという仕組みです。
チェーンが長いほうが必然的に承認数は増えるので、このような状況になります。


この解決法をもってビットコインは機能しており、これをPoW(プルーフオブワーク)と呼んだりします。




プルーフオブワークの問題点

このプルーフオブワーク、良い仕組みのように思えますが、問題点もあります。

51%問題

より多くの参加者から承認をもらうということはこれはつまり多数決です。多数決ということは、一人、もしくは一団体が参加者の51%を占めてしまえば自由に操作できてしまうということになります。これは割と深刻な問題なので、改善余地ありです。

分岐の不確実性

このPoWでは、長いほうのチェーンが採用されるので、短いほうは切り捨てられます。もし、短いほうのチェーンには記録されていて、長いほうのチェーンには記録されていない契約があったとしたら、その情報が喪失することになります。これも結構まずいですね。ただ起こる確率は低いみたいです。



このようなプルーフオブワークの問題点を解決する目的で、様々なブロックチェーンの正当性を保つアルゴリズムが開発されていて、これらを一まとめにコンセンサスアルゴリズムと呼んだりします。

最近だと、プルーフオブステイクなんかも有名ですが、この辺のコンセンサスアルゴリズムは今後の発展に期待という印象です。