ブロックチェーンはコンセンサス・アルゴリズムと呼ばれる合意形成のための仕組みに基づいて動いています。このガイドでは、そのアルゴリズムについて解説し、ブロックチェーンの中のメカニズムを明らかにします。
コンセンサス
「コンセンサス・アルゴリズム」とは、分散システムやネットワークにおいて、異なる参加者間で合意を形成するために使用されるアルゴリズムです(コンセンサスは合意、アルゴリズムは問題を解決する手順の意味の英語)。ブロックチェーンの場合、ネットワークに参加しているノードは、特定のアルゴリズムに基づいて、新しいブロックを生成します。生成されたブロックは他のノードによって検証されながら、ネットワーク全体に伝播していきます。ネットワーク全体では、データの整合性を保ちながら、データの改竄や攻撃を防いでいます。
最も有名なビットコインで使われている「ナカモトコンセンサス」の場合、PoW(後述)、最長チェーン優先ルール、Sybil耐性といった要素(特徴)を持っています。
一般的なコンセンサス・アルゴリズムの例としては、「Proof of Work」や「Proof of Stake」等があります。これらのアルゴリズムは、ネットワーク上のノードが合意形成して、共通のトランザクション履歴や状態を維持するために使用されます。
PoW – Proof of Work
PoWでは、ブロックチェーンに新たなブロックを追加するために、マイナー(miner=鉱夫の意味)と呼ばれる参加者たちが計算=問題を解く作業(マイニング)を行います。この計算は、前回のデータ構造で登場したナンスという値を求めるための計算処理になります。参加者は競って、正しいナンス値を求め、正解者がブロックを追加することができ、またその報酬(ブロック報酬およびトランザクション手数料)を得ることができます。
ブロックが追加される際には、他のノードは順番に正解が正しいかを検証します(すでにナンス値の入っているデータのハッシュ値を求めるだけで検証が可能です)。これによって、ネットワーク全体に新しいブロックが広がっていきます。
以上のように、ブロックを追加する際には、問題を解くという計算作業があるため、不正ができない(Sybil耐性)、マイナーは報酬を得ることができ、モチベーションがある、他のノードは検証を容易にでき、正しさをすぐに証明できる、といった特性を持っています。
PoWを採用する代表的なブロックチェーンとしてビットコインがあります。
PoS – Proof of Stake
PoWの課題の一つとして、多量のコンピュータ計算が必要であるという点があります。ブロックチェーン・ネットワークを維持するためには、多量の電力を消費する必要があり、環境への悪影響が懸念されるという点があります。
この課題を解決するために、PoSという仕組みが考案されています。PoSでは、計算量という価値を提供するかわりに、トークンを担保として差し出します(Staking)。以下のようなメカニズムで働きます。
- ランダムにブロックを生成するノードが選ばれる
- 他のノードが検証者(Validator)となって、そのブロックが正しいかどうかを検証(承認)する
- 検証者はその報酬を得る
検証者は、担保として差し出しているトークンの量も勘案して、選出されます。
仮に悪さをした場合、担保として差し出しているトークンは抹消されます。
PoSを採用する代表的なブロックチェーンとしてEthereum2.0(The Merge以降のEthereum)があります。
ご意見をお聞かせください!
この記事、または、web3チュートリアル全体について、是非、あなたのご意見をお聞かせください。
アンケートはこちらからご回答いただけます。
無料相談承ります
オンラインでの無料相談を承っています。ご希望の方は、お問い合わせフォームよりご連絡ください。
ITの専門家があなたのご質問にお答えいたします。
Comments