今まで何度かビットコインとブロックチェーンの仕組みについて説明してきました。
bananarian.hatenablog.com
しかし、今までの話で、説明の都合上一つ省略していたことがあって、
何かの間違いでチェーンが同時に二つ承認されてしまったらどうするの?という問題です。
今回はその話をします。
プルーフオブワーク
今までの復習をしておくと、
要はビットコインの仕組みは、一番早く条件に合うハッシュ値を見つけたマイナー(マイニングする人)のブロックが他のマイナーの承認のもと認められ、ブロックチェーンに組み込まれるというものでした。
しかし、もし通信に問題が発生し、二種類のブロックチェーンが並立したら何が起こるでしょうか。
条件を満たすブロックチェーンが複数現れたら??
この場合は、最もチェーンの長いブロックチェーンが採用されるという仕組みをもって解決しています。
つまりこういう状況です。
もう少し正確に言うと、最も多くの参加者から承認をもらったチェーンが採用されるという仕組みです。
チェーンが長いほうが必然的に承認数は増えるので、このような状況になります。
この解決法をもってビットコインは機能しており、これをPoW(プルーフオブワーク)と呼んだりします。
プルーフオブワークの問題点
このプルーフオブワーク、良い仕組みのように思えますが、問題点もあります。
51%問題
より多くの参加者から承認をもらうということはこれはつまり多数決です。多数決ということは、一人、もしくは一団体が参加者の51%を占めてしまえば自由に操作できてしまうということになります。これは割と深刻な問題なので、改善余地ありです。
分岐の不確実性
このPoWでは、長いほうのチェーンが採用されるので、短いほうは切り捨てられます。もし、短いほうのチェーンには記録されていて、長いほうのチェーンには記録されていない契約があったとしたら、その情報が喪失することになります。これも結構まずいですね。ただ起こる確率は低いみたいです。
このようなプルーフオブワークの問題点を解決する目的で、様々なブロックチェーンの正当性を保つアルゴリズムが開発されていて、これらを一まとめにコンセンサスアルゴリズムと呼んだりします。
最近だと、プルーフオブステイクなんかも有名ですが、この辺のコンセンサスアルゴリズムは今後の発展に期待という印象です。