コンセンサスアルゴリズムを絵で説明してみる

ビットコインの仕組みを通してブロックチェーンを学ぶシリーズ第4弾です。

前回の記事ではブロックチェーンが改ざんされない仕組みの導入として、ブロックチェーンにおけるデータ管理について紹介しました。

ブロックチェーンでは各ブロックのハッシュ値が過去のブロックの情報を保存しているため、改ざんには対象ブロック以降の全てのブロックを生成し直す必要があり非常に時間がかかるということを紹介しました。

ブロックチェーン
ここまでの流れ
  • その1(ビットコインとは)

ビットコインという第3者を介さない電子取引のシステムを作りたい。
電子署名によって管理者がいないシステムにおいても取引の正当性を保障。

二重支払い問題が生じる

  • その2(P2Pネットワーク)

P2Pネットワーク上の分散台帳を採用することで取引履歴の相互検証を可能にする。

台帳を全員で共有することで改ざんのリスクを高める

  • その3(ブロック内のハッシュ値とナンス)

ブロック同士をハッシュ値で関連づけて鎖状のデータ構造を生成
ブロック生成はナンスにより多くの計算量が必要なため改ざんは困難

ブロック生成をする手間が大きくシステムに参加するモチベーションがない
ネットワーク全体で何が正しい情報かがわからない

今回はブロックチェーンを分散ネットワーク上で動作させる上で何が正しい情報かを決定する仕組みであるコンセンサス(合意形成)について紹介します。

コンセンサスがなぜ必要か

ビットコインではP2Pネットワークのように第3者による管理のないネットワーク上において、全員が同じ台帳をそれぞれ管理・同期する分散台帳方式をとっています。

しかしP2Pネットワークでは同期すべき情報が他のノードに伝達するまでのタイムラグや、そもそも情報が到達しないといった事態が起こり得ます。

分散台帳

タイムラグの発生や情報が未達となる場合起こりうる問題としては、ノード毎に持っている情報に差があるためそれぞれ異なるブロックを生成してネットワーク上で同期してしまいブロックチェーンに分岐が生じてしまうということです。

ブロックの分岐

さらに問題となるのはネットワークに悪意のある参加者が存在して不正なブロックを同期しようとする場合です。

ネットワーク上の悪意のある不正や改ざんはビザンチン将軍問題といい、P2Pネットワークにおいてシステムを構築する上で避けられない問題とされていました。

したがって過失だろうと故意だろうと誤った情報による記録の改ざんを起こさないためにネットワーク上で正しい情報を保証し共有する仕組みコンセンサスアルゴリズム)が必要なのです。

PoW(Proof of Work)

コンセンサスアルゴリズムは様々な種類がありますが、ビットコインブロックチェーンではPoW(プルーフ・オブ・ワーク)という仕組みが採用されています。

最長チェーンが正しい情報というルール

PoWとは一言でいうとブロックチェーンの正しい記録は最も長いチェーンであると合意形成する仕組みです。

PoW

先ほども言ったように、ネットワーク全体でどの情報が正しい記録かを決めるためのルールとしてPoWでは最も長いチェーンを持つ記録が正しい記録としています。

なぜなら最もチェーンが長い記録はブロック生成のためにネットワーク上で最も計算力(Work)が費やされたと考えられるからです。(ブロック生成については前回参照)

したがってネットワークの参加者の大半が善意の参加者である限り、自然と正しい情報を記録したチェーンを伸ばすブロックの生成に計算力が割かれるため正しい情報である確率が高いというわけです。

振り返り:なぜブロックチェーンは改ざんできないか

前回の記事ではブロック生成の手間が大きいため改ざんは現実的に困難という話をしましたが、PoWを理解するとより納得することができます。

ブロックの改ざん

ブロックを改ざんするためには対象ブロック以降の全てのブロックのハッシュ値を計算し直して作り直す必要があるのでした。

しかしPoWでは正しい取引とネットワークに認められるためには現在のチェーンよりも長いチェーンを作る必要があります。

大多数の参加者は正しいチェーンのブロックの生成に計算力を使うため、それよりも速くブロックを作ってチェーンを伸ばす必要があります。そのためとてつもない計算力をもったコンピュータを用意しない限り改ざんは間に合わないのです。

これがブロックチェーンの改ざんが現実的に不可能だといわれる理由です。

ブロック生成に対するインセンティブ

さらにPoWの優れた点は次のナンスを見つけ出しブロックを一番初めに生成した人にビットコインを支払うというインセンティブの仕組みがあるという点です。

法定通貨である日本円は中央銀行の意向によって発行され市場に放出されますが、ビットコインではブロック生成時に発行され生成者に放出されます。

ビットコインは法定通貨と交換できるためお金を手にするのです。そのためナンスの探索は金脈を探すことに例えられてマイニングとも呼ばれています。

マイニング

マイニングに対するインセンティブの仕組みが存在するためネットワークの参加者はコンピュータの計算力を費やしてでもブロックの生成に積極的に参加する動機ができました。

まとめ

以上の仕組みによってビットコインではブロックチェーンという分散ネットワーク上における改ざん不能な台帳を使うことで第3者を介さない取引を実現できました。

  • 分散ネットワーク上で正しい情報を保証する仕組みとしてコンセンサスアルゴリズムが存在する。
  • PoWでは最も計算力が割かれている最長のチェーンが正しい情報であると合意形成するコンセンサスアルゴリズムである。
  • PoWではブロックを最初に生成した人にビットコインを支払うインセンティブの仕組みを備えているため参加者がブロックを生成する動機になる。

本シリーズ最後となる次回はこれまでの仕組みをまとめてビットコインが取引の処理をどのように行なっているのかを最初からまとめて締め括ろうと思います。

コメント

タイトルとURLをコピーしました