コンセンサスアルゴリズムとは?ブロックチェーン技術に必要な理由や考え方
ブロックチェーン技術では新ブロックを生成する処理サーバ(マイナー)に誰でもなれます。
マイナーはインターネット上のあちらこちらに散らばっていますが、地理的およびネットワーク的に遠く離れているマイナー間でほぼ同時に新ブロックを生成してしまうことがあり得ます。
このようなときにはどのマイナーが作った新ブロックを正式な新ブロックとするかを決めなければなりません。
これをコンセンサスアルゴリズムと呼びますが、これについて解説します。
複数のマイナーがほぼ同時に内容の異なる新ブロックを生成してしまう理由
マイナーは物理的なネットワーク的では、世界各地に分散設置されています。
これに対してビットコインの送金要求トランザクションも世界各地からマイナーに向けてブロードキャストされます。
すると、送金要求トランザクションはネットワーク的に近いマイナーには早く届き、通りマイナーには遅く届くことになるので、マイナーの設置場所によっては送金要求トランザクションを受け取る順番が異なります。
つまり、例えばヨーロッパにあるマイナーにはヨーロッパ発のトランザクションを早めに受信し、アジアにあるマイナーにはアジア初のトランザクションが早く到着します。
この二つのマイナーがほぼ同時に新しいブロックの生成に成功して世界中のマイナーにブロードキャストしたとすると、そのブロックに含まれるトランザクションは大きく異なります。
このような事態は常に発生する可能性があり、どのマイナーのブロックを新ブロックとして採用するかを決定しなければなりません。
中央の管理者がいればなんらかの判定基準でどれかひとつを採用すればよいのですが、管理者がいないのがブロックチェーンの特徴なのでそういうわけにはいきません。
コンセンサスアルゴリズムというのはこのような問題を解決する方法です。
コンセンサスアルゴリズムの考え方
たとえば、マイナーA、マイナーB、マイナーCがほぼ同時に新ブロック(A)、(B)、(C)をネットワーク上でブロードキャストしたとします。
ネットワーク上の他の多くのマイナーはそれぞれ受信する順番が異なるものの、確定済みのブロックの後ろに来る新ブロックの候補が3個あると認識します。
つまり、ネットワーク全体として記憶されているブロックのイメージは確定済みブロックの後ろに三つの新ブロックが追加されているような形です。
これは食器の「フォーク」に似た形なのでフォーク状態と呼んでいます。
この状態の新ブロックは未定状態であり、以後の追加ブロックの状況を監視して後で正式なブロックを決定します。
ビットコインの場合、新ブロックの生成にはPoW(Proof of Work)という処理が必要で10分程度の時間を要します。
したがって約10分後に次のブロックが(A)(B)(C)のどのブロックの後ろに接続されるかを監視して次のブロックが例えば(C)の後ろに付くと(C)のブロックが正式なチェーンになりそうであると判断します。
正確には、先に6個のブロックが後ろに付いたチェーンを本物のチェーンとします。
後ろに付いたブロックは他のマイナーが生成したブロックである可能性が高いので、最初に長く伸びたチェーンは他の多数のマイナーに支持されたと解釈できます。
つまり先に長くつながったチェーンほど参加者が多いという多数決をするという考え方です。
以上のような判定方法をコンセンサスアルゴリズムと呼んでいます。
コンセンサスアルゴリズムを簡単にまとめてみましょう。
多数のマイナーが同時に新ブロックを生成するとフォーク状のブロックチェーンができてしまいます。
コンセンサスアルゴリズムはこの中から1本のチェーンを選ぶ方法で、続くブロックが一番早く長くなるチェーンを選ぶことになっています。
Provided by
上野 仁(Hitoshi Ueno)
1984年山梨大学大学院修士課程(計算機科学専攻)修了後、株式会社日立製作所入社。
システム開発研究所、エンタープライズサーバ事業部などで主としてコンピュータアーキテクチャおよび基本ソフトウェアの研究開発に従事。
2015年より第一工科大学東京上野キャンパス情報電子システム工学科教授に就任。
2023年より東京情報デザイン専門職大学教授。
生体信号処理に関するプログラム開発や種々の先端ソフトウェアついての調査研究に興味を持つ。
技術士(情報工学)。
博士(工学)。
ビットコイン(仮想通貨)を学びたい方にオススメのコンテンツ
東京情報デザイン専門職大学教授の上野仁氏監修による暗号通貨・ブロックチェーンの記事一覧です。
本ホームページに掲載されている事項は、投資判断の参考となる情報の提供を目的としたものであり、投資の勧誘を目的としたものではありません。投資方針、投資タイミング等は、ご自身の責任において判断してください。本サービスの情報に基づいて行った取引のいかなる損失についても、当社は一切の責を負いかねますのでご了承ください。また、当社は、当該情報の正確性および完全性を保証または約束するものでなく、今後、予告なしに内容を変更または廃止する場合があります。なお、当該情報の欠落・誤謬等につきましてもその責を負いかねますのでご了承ください。