コンセンサス メカニズムと 11 の主流コンセンサス アルゴリズムを 1 つの記事で理解する

最良のコンセンサスメカニズムは常にユーザーのニーズに合ったものです。

発言者: うちはマダラ

編集: パフ

出典:デスクール

この記事はDeSchoolのWeb3大学講座第3回目の学習ノートで、講師はうちはマダラです。中身が乾燥しすぎていて水と混ざっていないため、採取してゆっくり消化することをお勧めします。なお、本記事では理解を容易にするため、授業内容を基に一部修正・補足を行っております。

記事の主な内容は次のとおりです。

  1. コンセンサスアルゴリズムの概要

  2. コンセンサスアルゴリズムの分類

  3. コンセンサスアルゴリズムの詳細説明(PoW、PoS、PoH、PoA、PBFTなど)

01 コンセンサスメカニズムの概要

ブロックチェーンの通信や学習において「コンセンサスアルゴリズム」という言葉が頻繁に登場しますが、このコンセンサスアルゴリズムがあるからこそブロックチェーンの信頼性が担保されるのです。

**1. コンセンサスメカニズムが必要なのはなぜですか? **

いわゆるコンセンサスとは、複数の人が合意に達することを意味します。私たちの生活には合意メカニズムがたくさんあります。たとえば、会社は意思決定をするために株主が集まって話し合う必要があり、契約書に署名するには当事者 A と当事者 B が座って交渉する必要があります。このプロセスは合意に達するプロセスです。

ブロックチェーンシステムでは、各ノードがしなければならないことは、自分の台帳を他のノードの台帳と一致させることです。従来の集中型シナリオの場合、これはほとんど問題になりません。これは、いわゆるマスター ライブラリである中央サーバーがあり、他のスレーブ ライブラリをマスター ライブラリと連携させることができるためです。

しかし、分散型経営では上司がいないので、どのように意思決定をすればよいのでしょうか?現時点では、コンセンサスを確保するために一連のアルゴリズムが必要です。これがこの記事で説明するコンセンサス メカニズムです。

**2. コンセンサスメカニズムとは何ですか? **

コンセンサスメカニズム (Consensus Mechanism) は、特別なノードの投票によってトランザクションの検証と確認を非常に短時間で完了します; トランザクションに関して、無関係な利害関係を持つ複数のノードがコンセンサスに達することができれば、ネットワーク全体が合意に達すると考えることができます。これについても意見が一致している。

コンセンサス (Consensus) と一貫性 (Consistency) は、多くのアプリケーション シナリオでほぼ同等であると考えられていますが、その意味には微妙な違いがあります。コンセンサス調査は分散ノードが合意に達するプロセスとアルゴリズムに焦点を当てているのに対し、一貫性調査は最終的な合意に焦点を当てています。ノードコンセンサスプロセスの安定した状態、さらに、従来の分散型コンセンサス研究のほとんどはビザンチンフォールトトレランスの問題を考慮していません、つまり、悪意を持ってデータを改ざんしたり偽造したりするビザンチンノードは存在しないと想定されています。結局のところ、完全にオープンで透明なブロックチェーン ネットワークでは、すべてのノードが悪行為をしないという保証はありません。

**3. コンセンサスメカニズムはどのような問題を解決できますか? **

コンセンサス メカニズムにより、分散システムの信頼性の問題を解決し、ノード間のデータの一貫性とセキュリティを確保できます。従来の分散システムでは、ノード間に信頼メカニズムがないため、悪意のあるノードによる攻撃や改ざんに対して脆弱であり、その結果、システムのクラッシュやデータの改ざんが発生します。さらに、ブロックチェーン暗号化技術が登場する前は、暗号化されたデジタル通貨は他の資産と同様に無限に複製可能であり、中央集権的な仲介機関がなければ、人々はデジタル現金の総額が使用されたかどうかを確認する方法がありませんでした。

簡単に言うと、コンセンサス メカニズムは 2 つの問題、つまり二重支払い問題 (ある金額が 2 回使われる) とビザンチンの一般的な問題 (悪意のあるノードによるデータの改ざん) を効果的に解決できます。

4. 二重支出攻撃

** **

コンセンサスメカニズムは、二重支出攻撃をある程度解決できます。つまり、「二重支出」とも呼ばれる、ある金額が 2 回または 2 回以上使われる攻撃です。小立子は、いたちごっこの中で、偽の小切手を作り、小切手の検証に時間がかかるため、同じ小切手の情報を利用して、その時間差内に何度も商品を購入するという二重支払い行為を行った。

ご存知のとおり、ブロックチェーン ノードは常に最長のチェーンを正しいチェーンとみなして動作し、拡張し続けます。 2 つのノードが新しいブロックの異なるバージョンを同時にブロードキャストする場合、作業は最初に受信したブロックに基づいて実行されますが、後者のチェーンが最長のチェーンになる場合に備えて、もう一方のチェーンも保持されます。次のプルーフ・オブ・ワークが見つかり、チェーンの 1 つが長いことが判明するまで待ち、その後、もう一方のブランチ チェーンで動作しているノードがキャンプを切り替えます。

支出の二重化はどのようにして実現されるのでしょうか? 2 つの状況に分けられます:

**(1) 確認前の二重支出。 **ゼロ確認済みトランザクションは、最終的にブロックチェーンに書き込まれなかった可能性があります。金額が少額でない限り、少なくとも確認を待つことで、このような二重支出を避けることが最善です。

**(2) 確認後の二重支払い。 **これを実装するには、コンピューティング能力の 50% 以上を制御する必要があります。つまり、小さなフォークと同様に、ストアのトランザクションを孤立ブロックに入れます。このような確認後の二重支出は実現が困難ですが、理論的には可能です。

** 最も一般的な 3 つの二重支払い攻撃があります: 51% 攻撃、レース攻撃、フィニー攻撃です。 **

51% 攻撃: 51% 攻撃とは、個人またはグループがブロックチェーンのハッシュ能力の 51% を制御できるようになったときのことです。これは、プロジェクトの一部の側面を制御できることを意味します。ビットコインなどのプルーフ・オブ・ワーク・ブロックチェーンでは、ネットワークのマイニング能力を制御することでこれが実現されます。一方、Cardano のようなプルーフ・オブ・ステークブロックチェーンの場合、これはステーキングされたトークンの 51% を制御することで達成されます。

レース攻撃: ユーザーは 2 つのトランザクションを 2 つの販売者 (または販売者とユーザー) に同時に送信します。したがって、攻撃者は商品を 2 セット受け取るか、商品を受け取って元の取引コストを回収します。

フィニー攻撃: マイナーは、自分のアドレスに送金するトランザクションを含むブロックまたは一連のブロックをマイニングします。マイニングされたブロックは公開されませんが、マイナーがマーチャントに送金する間保持されます。その後、マイナーが掘ったブロックを公開する前に、商人はマイナーが支払った商品をリリースします。次に、採掘者は掘ったブロックを公開します。これにより、販売者への送金が消去され、販売者はその代金を自腹で支払うことができます。

ダブルフラワー攻撃の典型的なケース:

2018 年、攻撃者は BTG ネットワーク上の計算能力の 51% 以上を制御し、計算能力を制御している間、取引所のウォレットに一定量の BTG を送信しました。このブランチはブランチ A と名付けられました。同時に、これらの BTG を自分が管理する別のウォレットに送信します。このブランチはブランチ B と名付けられます。支店 A での取引が確認されると、攻撃者はすぐに BTG を売却して現金を入手します。続いて、攻撃者はブランチ B でマイニングを行いますが、計算能力の 51% 以上を制御しているため、すぐにブランチ B の長さがブランチ A の長さを超え、ブランチ B がメインチェーンとなり、ブランチ A 上のトランザクションとなります。ロールバックして前の状態に戻します。攻撃者が以前現金と交換したBTGは自身の手元に戻り、これらのBTGは交換の損失となります。このようにして、攻撃者はコンピューティング能力の制御の 50% 以上に依存し、同じ暗号通貨の「二重支払い」を実現しました。

5. ビザンチンの失敗

** **

ビザンチン将軍問題は、1980 年代にレスリー ランポートによって提起された仮説的な問題です。ビザンチウムは東ローマ帝国の首都でしたが、当時のビザンツローマ帝国は広大な領土を持っていたため、各軍の守備隊は遠く離れており、将軍たちは使者でしかメッセージを伝えることができませんでした。戦争が起こった場合、将軍は統一された行動計画を策定しなければなりません。

しかし、これらの将軍の中には、統一行動計画の策定と普及に影響を与えることで、忠実な将軍の一貫した行動計画を損なうことを目論む裏切り者もいる。したがって、すべての忠実な将軍が同意できるように、将軍たちはあらかじめ決められた方法の合意を持たなければなりません。そして、一握りの裏切り者が、忠実な将軍たちに間違った計画を立てることはできません。言い換えれば、ビザンチンの将軍問題の本質は、裏切り者との信頼関係のない環境で、将軍たちに戦闘計画についての合意を確立させる方法を見つけることにある。

分散システム、特にブロックチェーン ネットワーク環境では、ビザンチンの一般的な環境にも似ており、通常のサーバー (忠実なビザンチンの将軍に似た)、障害のあるサーバー、および破壊工作員のサーバー (裏切り者のビザンチンの将軍に似た) が存在します。コンセンサス アルゴリズムの中核は、通常のノード間でネットワークの状態についてのコンセンサスを形成することです。ノードが 3 つしかない場合、ビザンチン将軍問題は解決できません。ノード内に x 個の問題ノードがあり、合計点が 3x+1 未満の場合、ビザンチン将軍問題は解決できません。

ビットコインの登場により、情報伝達にコストがかかり、情報伝達速度が低下し、一定期間内に情報をブロードキャストできるのは 1 人の将軍だけになるようにランダムな要素が追加され、この問題は簡単に解決されました。メッセージをブロードキャストする最初の将軍は、有効なハッシュを見つけた最初のコンピューターであり、他の将軍がこの有効なハッシュとそれに添付された情報を受信して検証する限り、台帳の新しい情報のコピーでのみ更新できます。そしてハッシュ値を再計算します。有効ハッシュ値を計算する次の将軍は、自分の更新情報を有効ハッシュ値に添付して全員にブロードキャストできます。その後、ハッシュ計算の競争が新しい開始点から再開されます。ネットワーク情報は継続的に同期されるため、ネットワーク上のすべてのコンピュータは同じバージョンの台帳を使用します。

02 コンセンサスアルゴリズムの分類

1. コンセンサスメカニズムの歴史

1980 年代と 1990 年代にコンピューターとネットワークが普及すると、複数のユーザーが保存した情報にアクセスできるようにする共有データベースが登場しました。ほとんどの場合、ユーザーはさまざまなサイトからアクセスできる中央データベースを備えています。このセットアップは、管理者がユーザーに権限を付与し、データの整合性を維持する集中型ネットワークに進化します。

これらの共有データベースは、情報を記録し、さまざまな場所にいる多くのユーザーがアクセスできるようにネットワーク化されているため、分散台帳として知られています。対処すべき最も重要な問題の 1 つは、悪意があるかどうかにかかわらず、データの改ざんや不正アクセスを防止することです。データが変更されないようにするには、分散データベース管理を自動化する方法が必要です。

このニーズにより、ネットワーク上のプログラムが暗号化を使用してデータベースの状態に同意する、分散型自律コンセンサスが作成されます。このプロトコルは、暗号化アルゴリズムを使用して英数字の長い文字列 (ハッシュ) を作成し、ネットワーク上で実行されているプログラムによって検証されることによって到達できるように設計されています。ハッシュは、ハッシュ アルゴリズムに入力される情報が変更された場合にのみ変更されるため、プログラムはハッシュを比較して一致することを確認するように設計されています。

ネットワーク上で実行されているすべてのプログラムが一致するハッシュ文字列を作成すると、データはネットワーク全体でコンセンサスに達したと言われます。したがって、通常は匿名のビットコイン作成者サトシ・ナカモトの功績を称える合意メカニズムが確立されました。しかし、サトシがビットコインを有名にしたホワイトペーパーを発表するまで、多くの人々が何年もかけてコンセンサスメカニズムに取り組みました。

Moni Naor、Cynthia Dwork、Adam Beck、Nick Szabo などのデータおよびコンピューター科学者がネットワークのコンセンサス メカニズムの開発に取り組み、その開発に貢献しました。

2 コンセンサスアルゴリズムの分類

さまざまなタイプのフォールト トレランスに従って、コンセンサス アルゴリズムは 2 つのカテゴリに分類できます: CFT コンセンサス アルゴリズム (非ビザンチン フォールト トレランス、つまり悪意のあるノードは考慮されません) と BFT コンセンサス アルゴリズム (ビザンチン フォールト トレランス、つまり、つまり、悪意のあるノードが考慮されます)。

Byzantium を許容するかどうかは、アルゴリズムが信頼性の低いネットワークに適用できるかどうかを示します。一般に、パブリック チェーン環境ではビザンチン フォールト トレラント アルゴリズムを使用する必要がありますが、アライアンス チェーンでは、アライアンスの参加者間の信頼度に応じてアルゴリズムを選択できます。はデフォルトで善意のノードであり、CFT アルゴリズム (非ビザンチン フォールト トレラント) を使用できます。

**さらに、一貫性に応じて、**確率コンセンサス アルゴリズムと絶対一貫性アルゴリズムの 2 つのカテゴリに分類できます。確率的コンセンサス アルゴリズムとは、異なる分散ノード間では、ノード間のデータの一貫性が高い確率で保証されるものの、一部のノード間のデータが一貫性がない可能性も一定の確率で存在することを意味します。たとえば、Proof of Work (PoW)、Proof of Stake (PoS)、および Delegated Proof of Stake (DPoS) はすべて確率的コンセンサス アルゴリズムです。

絶対一貫性アルゴリズムとは、どの時点においても、異なる分散ノード間のデータは絶対的な一貫性を保ち、異なるノード間でデータの不整合が存在しないことを意味します。たとえば、PAXOS アルゴリズムとその派生 RAFT アルゴリズムです。

以下にフォールトトレランスの種類に応じた具体的な分け方と紹介を記載します。

3CFT コンセンサス アルゴリズム

クラッシュ フォールト トレランスの非ビザンチン エラー: ノードの信頼性が高いネットワークに適しています。パクソス、ラフトを含む。

4BFT コンセンサス アルゴリズム

ノードに悪意のあるビザンチンエラーがあるかどうかの確認は、プルーフ・オブ・ワーク (PoW)、プルーフ・オブ・ステーク (PoS)、委任されたプルーフ・オブ・ステーク (DPoS)、プルーフ・オブ・オーソリティ (PoA) などを含む分散構造になる傾向があります。

03 コンセンサスアルゴリズムの詳細説明

これを見るのは少し疲れていますか。お気に入りをクリックして、休憩して、この記事の最も難しい部分を読み続けてください。時間が限られている学生は、3 番目の PoW アルゴリズムから直接始めることができます。

1Paxos アルゴリズム

** **

  • **アルゴリズムの紹介: **1990 年に、Paxos アルゴリズムは、メッセージ パッシングに基づく分散コンセンサス アルゴリズムとしてマスター ランポートによって提案され、2013 年にチューリング賞を受賞しました。 Paxos の出現以来、Paxos は分散コンセンサス アルゴリズムを独占し続け、主に分散システムで特定の値についてコンセンサスに達する方法を解決してきました。 Paxos アルゴリズムのコンセンサス プロセスでは、提案者がほとんどの承認者の支持を得るために提案を提出します。提案が半分以上の支持を得ると、ケースの結果が確認のためにすべてのノードに送信されます。このプロセス中に, 提案者が失敗した場合、それはタイムアウト メカニズムをトリガーすることで解決されます。新しい提案ラウンドごとに提案者がたまたま失敗した場合、システムはコンセンサスに達することができません。しかし、その可能性は非常に低いです。

初期の Basic Paxos プロトコルは複雑で比較的非効率だったため、後に Paxos の改良版が提案されました。例: Fast Paxos、Multi-Paxos、Byzanetine Paxos など。

  • **使用例: **ZooKeeper
  • **アルゴリズム原理: **Paxos アルゴリズムは、ダウンタイムや障害が許容され、信頼性の高いメッセージ配信を必要とせず、メッセージの損失、遅延、無秩序、繰り返しを許容できる非同期システムで実行されます。これは、マジョリティ (Majority) メカニズムを使用して 2f+1 のフォールト トレランスを保証します。つまり、2f+1 ノードを持つシステムでは、最大 f 個のノードが同時に障害を起こすことが許容されます。失敗の数が (n-1)/2 未満である限り、Paxos はコンセンサスに達します。これらの失敗はビザンチン的であるはずがありません。そうでない場合は、BFT 証明に違反することになります。したがって、このアルゴリズムの前提は、メッセージが決して破損することはなく、ノードが共謀してシステムを破損させることができないことを前提としています。

Paxos は、1 つのノードが「リーダーシップ」状態を持つ一連の交渉ラウンドを進めます。リーダーがオンラインでない場合、新しいリーダーが選出されるか、古いリーダーが突然オンラインに戻るまで、進行は停滞します。

Paxos は、システム内の役割を提案者、承認者、学習者に分割します。提案者: 提案。提案情報には、提案番号(Proposal ID)と提案値(Value)が含まれます。承諾者: 意思決定に参加し、提案者の提案に応答します。提案を受け取った後、提案を受け入れることができ、提案が受け入れ者の過半数によって受け入れられた場合、提案は承認されたと言われます。学習者: 意思決定には参加せず、提案者/承認者から最新の合意された提案 (価値) を学びます。

2. Raft アルゴリズム

**アルゴリズムの紹介:**Raft (レプリケーションおよびフォールト トレラント) アルゴリズムは、Paxos アルゴリズム ペアの簡素化された実装です。Raft という名前は、「信頼性、複製性、冗長性、およびフォールトトレラント (冗長性、フォールト トレラント性)」の頭字語に由来しています。 raft は、ログの継続を使用して Paxos に対して多くの優れた単純化を行っています。 nノードで構成されるシステムにおいて、半数以上のノードが正常に動作している場合にシステムの整合性を保証します。分散整合性問題から直接派生した Paxos アルゴリズムとは異なり、Raft アルゴリズムはマルチコピー ステート マシンの観点から提案され、マルチコピー ステート マシンのログ レプリケーションを管理するために使用されます。たとえば、5 ノード システムでは、2 つのノードにノードのダウンタイム、ネットワークの分割、メッセージ遅延などの非ビザンチン エラーが発生することが許可されます。

**使用例: **データベースのマスター/スレーブ レプリケーション、アライアンス チェーン。

アルゴリズム原理: Raft システムには 3 つの役割があります: リーダー、フォロワー、候補者。通常の状況では、リーダーは 1 人だけで、残りはフォロワーです。そして、リーダーはすべての外部リクエストに対して責任を負います。リーダーのマシンが受信しない場合、リクエストはリーダーに送られます。通常、リーダーは、クラスターのリーダーがまだ動作していることをフォロワーに知らせるために、一定の時間、つまりハートビート (ハートビート) にメッセージを送信します。各フォロワーはタイムアウト機構 (タイムアウト) を設計し、一定時間 (通常 150 ミリ秒または 300 ミリ秒) ハートビートを受信しないと、システムは選出状態に入ります。

この時点で、クラスターは新しい選挙ラウンド (期間) に入り、選挙を開始します。選挙が成功すると、新しいリーダーが作業を開始します。そうでない場合は、任期が終了したとみなされ、新しい任期が始まります。そして次の選挙が始まります。

選挙は候補者によって行われます。これには、候補者が自ら立候補し、リーダーの心拍が停止したときに先着順で他のサーバーからの投票を求める必要があります。各サーバーは、選挙ラウンドごとに現在の候補者に賛成または反対の 1 票だけを投票します。半数以上の票を獲得できなかった場合は、次の選挙に進むことになります。残りの候補者は引き続き先着順で推薦します。リーダーが選出されるまで。

**Raft アルゴリズムの利点: **最初のポイントは単純さです。 Paxos が Raft よりも複雑な点を深く掘り下げると、Heidi Howard と Richard Mortier は、Paxos の複雑さが 2 つの側面に反映されていることを発見しました。まず、Raft はログを順番にコミットしますが、Paxos ではログを順不同でコミットできますが、その結果生じる可能性のあるログ ホールを埋めるために追加のプロトコルが必要です。第二に、Raft のログのすべてのレプリカは同じインデックス、用語、順序を持ちますが、Paxos ではこれらの用語が異なる場合があります。

2 番目のポイントは、Raft には効率的なリーダー選出アルゴリズムがあることです。 Paxos の論文で示されている選出アルゴリズムは、サーバー ID のサイズを比較し、複数のノードが同時に選出を実行すると、サーバー ID が大きいノードが勝ちます。問題は、この方法で選出されたリーダーに一部のログが不足している場合、書き込み操作をすぐに実行できず、最初に他のノードから一部のログをコピーする必要があることです。 Raft ログは常に過半数のログを持つノードを選択できるため、ログを追いつく必要がなく、票の分割により選挙がリトライされる場合もありますが、一般的にはより効率的な選挙アルゴリズムです。

Paxos アルゴリズムの場合、サーバーが非常に遅れており、ログでは数日遅れている場合でも、ある時点でリーダーに選出されると、一定の時間がブロックされます。 Raft アルゴリズムでは、ログが遅れているノードは決して選択されません。

3 作業証明 (PoW)

アルゴリズムの概要: スパムと戦うために初めて使用されたコンピューター技術。 2008 年、サトシ ナカモトはビットコイン ホワイト ペーパー「ビットコイン: ピアツーピア電子キャッシュ システム」でビットコインとブロックチェーンを提案し、コンセンサスに参加するための数学パズルを解くためにビットコインに適用される PoW アルゴリズムを革新的に設計しました。アルゴリズムの中心的な内容は、コンピューティング能力を使用して、ブロック ハッシュを満たすノンス値を見つけることです。しかし、人々はこの合意メカニズムの問題、つまり、大量のエネルギー消費と大規模なマイニングプールによる計算能力の制御がやはり集中化の問題を引き起こすことにすぐに気付きました。

**使用例:**ビットコイン、ETH1.0、ライトコイン、コンフラックス、ドージコイン。

アルゴリズム原理: 作業証明システムの主な特徴は、クライアントが結果を得るためにいくつかの難しい作業を行う必要があるが、検証者はその結果を通じてクライアントが対応する作業を行ったかどうかを簡単に確認できることです。 。このスキームの中核的な特徴は非対称性です。つまり、作業は要求者にとっては中程度であり、検証者にとっては容易に検証可能です。これは、コンピューターではなく人間が簡単に解決できるように設計されたキャプチャとは異なります。

Proof of Work (PoW) は、トランザクションデータを結合した後のコンテンツのハッシュ値が指定された上限を満たすように、数値的な Nonce を計算によって求めます。ノードが満足のいくハッシュ値を見つけることに成功すると、ノードはパッケージ化されたブロックをただちにネットワーク全体にブロードキャストし、ネットワークのノードはブロードキャストされたパッケージ化されたブロックを受信した直後にそれを検証します。

欠点: 速度が遅い、エネルギー消費量が膨大で環境に良くない、「規模の経済」の影響を受けやすい。

長所: 2009 年以来広範囲にテストされ、現在でも広く使用されています。

4 プルーフ オブ ステーク (PoS)

アルゴリズムの紹介: 2011 年に、Quantum が Bitcointalk フォーラムで提案されました。 2012 年 8 月に、PoS コンセンサスに基づいた最初のブロックチェーン プロジェクトであるピアコインが誕生し、ピアコインは PoS アルゴリズムを実装した最初のアプリケーションです。 Peercoin への関心は、ノードが保持するコインの数と保持時間の積であるコイン エイジです。トランザクションを開始すると、一定量のコイン エイジが消費され、365 コイン エイジが消費されるたびに、年間5%の金利がつきます。

ユーザー: イーサリアム(2.0)、コンフラックス、ピアコイン。

アルゴリズム原理: たとえば、誰かが合計 30 日間のトランザクションで 100 ドットコインを保持している場合、通貨年齢は 3000 になります。その後、PoS ブロックが検出され、通貨年齢は 0 にクリアされ、利息が支払われます。が得られます 0.05*3000/365=0.41コインです。コンセンサスプロセス中、ノードは消費されたコインエージを通じて簿記権を取得します。ノードが消費するコインエージが多いほど、簿記権を取得できる可能性が高くなります。アルゴリズムによって設定されるメイン チェーンの原則は、通貨年齢を最も多く消費するチェーンが、システム内で正しく効果的なチェーンであるということです。

利点: 強力で高価なマイニング機器は必要ありません。リソースの消費を削減し、51% 攻撃の可能性を減らします。

欠点: 富裕層が仮想通貨を買いだめし、マシュー効果を形成し、仮想通貨のインフレを引き起こす可能性があります。

5 履歴証明 (PoH)

**アルゴリズムの紹介: **プルーフ オブ ヒストリーは、2018 年に開始された高スループット ブロックチェーンである Solana によって作成されました。プルーフ オブ ヒストリーにより、検証可能な遅延関数を使用することで、ネットワーク参加者が時間通りに合意に達することができ、それによって「最長のブロックチェーン」を回避できます。連鎖法則。

PoH はネットワークの時計であり、TowerBFT はその監視塔であり、悪意のあるノードによる時間パラメータのスプーフィングを防ぐ役割を果たします。ブロックに投票したバリデータは、次のブロックが生成されるまで待機し、再度投票する前に履歴の証明から「時間が経過した」という確認を得る必要があります。

Solana はハッシュ ベースのタイム チェーンと状態を巧みに分離し、各ブロックのハッシュをリンクする代わりに、ネットワーク内の検証者がブロック内のハッシュ自体をハッシュします。このメカニズムが PoH です。 PoH は、高頻度の検証可能な遅延関数 (VDF) を使用して、時間の経過に伴う暗号的に検証可能なイベントのシーケンスを確立します。これは本質的に、PoH が他のノードからのメッセージを待たずにネットワークが時間とイベントの順序に同意できるようにする暗号時計のようなものであることを意味します。歴史的に証明されたブロックチェーン状態ハッシュの連続出力により、検証可能な一連のイベントが得られます。

**ユーザー:**ソラナ

アルゴリズム原理: リーダーは各署名データ (証明されるトランザクション) のタイムスタンプを生成し、トランザクションを直接ソートするため、PoS における時間ソートの問題を回避し、各保証検証者が独立して検証できるため、大幅に時間が短縮されます。検証中の時間の並べ替えの問題は解決され、トランザクションの証拠を検証するだけで済みます。

利点: 手数料が低く、トランザクションあたりわずか数セント、高速なトランザクション速度、優れたスケーラビリティ、

**短所: **一元化の懸念により、Solana のネットワーク上のトランザクションを検証するバリデーターは現在 1,200 人未満です。分散型アプリケーションが少ない: イーサリアムキラーと呼ばれることがよくあります。同社のウェブサイトによると、イーサリアムでは3,000近くのDappsがあるのに対し、Solanaでは350以上のDappsが作成されており、これがDefiが現在より多くの開発時間とイノベーションを必要としているところだ。

6 権限証明 (PoA)

アルゴリズムの概要: 2017 年にイーサリアム (ETH) とパリティ テクノロジーズの共同創設者であるギャビン ウッドによって提案されました。 PoA メカニズムはマイニングを行わず、トークンを必要としません。セカンダリ PoA ベースのブロックチェーン ネットワークでは、すべてのトランザクションとブロックがバリデーターによって処理されます。 PoAプラットフォームの維持コストは低いですが、PoAではトランザクションと検証ブロックチェーンの検証者は信頼性審査に合格できる人でなければなりません。したがって、PoA 検証者は自分自身の評判に細心の注意を払う必要があります。 PoA では評判は非常に重要な資産です。通常、バリデーターは実際の身元を明らかにします。現在、このコンセンサスメカニズムによって形成されたブロックチェーン技術は、主に業界特性が明らかなアライアンスチェーンやプライベートチェーンに適用されています。

ユーザー: PoA、Ethereum Kovantestnet、xDai、VeChain、および Walmart の物流チェーン。

アルゴリズム原理:

a. 権威ある認証者を選択します。

b. 多数の検証者がブロックを生成してトランザクションを記録し、ブロック報酬とトランザクション手数料を受け取ります。 PoA では、検証者がコンセンサス メカニズム全体の鍵となり、ブロック報酬と引き換えにこの ID を配置することでネットワークを保証する権利を取得します。検証者がプロセス全体を通じて悪意を持って行動したり、他の検証者と共謀したりした場合、悪意のある攻撃者はオンチェーン管理を通じて削除され、置き換えられる可能性があります。バリデーターによる悪意のある行為から参加者を保護するために、既存の法的な不正行為防止措置がネットワーク全体に適用されます。

アドバンテージ:

a. 必要なコンピューティング能力が少なく、マイニングが不要で、エネルギーを節約し、環境を保護します。

b 検証は高速であり、より高速なトランザクションをサポートします。

c. ネットワーク全体の検証者は相互に監視しており、経験豊富な検証者に参加するか、資格のない検証者を排除するかをいつでも投票できます。

d. ハードフォークは法律で保護されており、各バリデーターは法的契約に署名します。

欠点:

a. 公的アイデンティティ、プライバシー、匿名性が低下します。

b. バリデーターは、法的に裏付けられた集中権限ノードとして指定されます。

**7 遅延プルーフオブワーク (**遅延プルーフオブワーク、dPoW)

** **

**アルゴリズムの紹介:**DPoW を説明する前に、PoB とは何かを説明する必要があります。 PoB (Proof of Burn) はバーニング・プルーフ・メカニズムと呼ばれ、トークンを自分の手で燃やすことによってネットワークのリーダーシップを誰が持つか投票するというコミットメントです。焼かれたトークンの数が多いほど、ネットワークのリーダーシップを獲得する可能性が高くなります。

dPoW ベースのブロックチェーンでは、マイナーはもはやマイニングに対する報酬トークンではなく、燃やすことができる「木材」、つまり燃える木材を受け取ります。鉱山労働者は、自身の計算能力を使用して、最終的にハッシュ アルゴリズムを通じて作業負荷を証明し、取引できない対応する木材を入手します。薪がある程度溜まったら、焚き場に行って薪を燃やします。

一連のアルゴリズムによる計算の後、より多くの木材、BP、または BP のグループを燃やした人は、次のイベントセグメントでブロックを生成する権利を獲得し、ブロックの生成に成功すると報酬 (トークン) を獲得できます。一定期間内に多くの人が木を燃やしている可能性があるため、次の期間でブロックが生成される確率は、自分が燃やした木の量によって決まります。より多くの燃焼が行われるほど、次の期間にブロックを生成する権利を獲得する確率が高くなります。

これにより、コンピューティング能力とマイニング権の間のバランスを実現できます。巨大なコンピューティング能力を持つマイナーやマイニングプールは、必ずしもブロックプロデューサーになる必要はありません。小さな鉱山労働者にもバネがあり、頑張って一定量の木材を貯めれば、ブロックを生産することもできます。効率性が保証され、全員が参加でき、最も一般的な参加方法は分散化の概念を保証し、コンピューティング能力を持つ組織や多額の通貨保有者がネットワークを支配することを防ぎます。

**ユーザー:**コモド

アルゴリズム原理: dPoW システムには、公証ノードと通常ノードの 2 種類のノードがあります。 64 の公証ノードは、dPoW ブロックチェーンの利害関係者によって選出され、公証されたブロックを dPoW ブロックチェーンから接続された PoW ブロックチェーンに追加します。ブロックが追加されると、ブロックのハッシュが 33 の公証人ノードによって署名されたビットコイン トランザクションに追加され、ビットコイン ブロックチェーンにハッシュされた dPow ブロック レコードが作成されます。この記録は、ネットワーク内の大多数の公証ノードによって公証されています。

公証ノード間のマイニング戦争を回避し、ネットワークの効率を低下させるために、Komodo は 2 つの動作モードを持つポーリング メカニズムを使用したマイニング方法を設計しました。

「公証人なし」モードでは、すべてのネットワーク ノードがマイニングに参加することがサポートされます。これは、従来の PoW コンセンサス メカニズムと同様です。 「Notaries Active」モードでは、ネットワーク公証人は大幅に低減されたネットワーク難易度を使用してマイニングを行います。 「公証アクティベーション」モードでは、各公証は現在の難易度を使用してブロックをマイニングすることができますが、他の公証ノードはマイニングの難易度の 10 倍を使用する必要があり、すべての通常のノードはマイニングに公証ノードの難易度の 100 倍を使用する必要があります。

**利点: **省エネ、セキュリティの向上、ビットコイン (またはその他のセキュリティ チェーン) トランザクションの価格を支払うことなく、間接的にビットコイン (またはその他のセキュリティ チェーン) を提供することで、他のブロックチェーンに価値を追加できます。

欠点: このコンセンサス アルゴリズムを採用できるのは、PoW または PoS を使用するブロックチェーンのみです。「公証人アクティブ」モードでは、異なるノード (公証人または通常のノード) のハッシュのレートを調整する必要があり、そうしないと、ハッシュ レート間の差が爆発的に大きくなります。

8 認可された PoS (DPoS、委任されたプルーフ オブ ステーク)

アルゴリズムの紹介: 「共有承認証明メカニズム」および「受託者メカニズム」としても知られる DPoS メカニズムは、Bitshares の主任開発者である Dan Larimer (BM) によって 2014 年 4 月に提案されました。ある観点から見ると、DPOS は議院内閣制や人民会議制度に似ています。デリゲートがその義務を果たさない(順番が来たときにブロックを生成できない)場合、そのデリゲートはリストから除外され、ネットワークはそれらに代わる新しいスーパーノードを選出します。

理解を容易にするために、別の例を挙げることができます。合計 1,000 人の従業員がおり、各従業員がさまざまな額の自社株を保有している会社を想像してください。従業員は時々、会社を率いると最も認められる 10 人に投票することができます。各従業員の投票権は、その従業員が保有する株式数に比例します。全員が投票した後、投票率の最も高かった 10 人が会社のリーダーになります。

リーダーが無能だったり、会社に何か不利益なことをした場合、従業員はリーダーへの投票を取り消し、自分の得票率が上位10位に入ることができなくなり、経営陣から辞任することができる。

ユーザー: BitShares、Steemit、EOS、Lisk、Ark。

**長所: **省エネ、高速、高トラフィックのブログ サイト Steemit が使用しています。 EOSのブロックタイムは0.5秒です。

**短所: **やや集中化されている; ステークの高い参加者はバリデータになるために投票することができます (これは最近 EOS で問題になっています)。

9 実用的なビザンチン フォールト トレランス (PBFT)

** **

アルゴリズムの紹介: PBFT アルゴリズムでは、1 つのノードがマスター ノードとみなされ、他のノードはバックアップ ノードと見なされます。システム内のすべてのノードは相互に通信し、最終的な目標は、全員が少数派が多数派に従うという原則について合意に達することができるようにすることです。

合意プロセス:

a. クライアントは、操作を実行するためにマスター ノードにリクエストを送信します。

b. マスターノードはこのリクエストを各バックアップノードにブロードキャストします。

c. すべてのノードが操作を実行し、結果をクライアントに返します。

d. クライアントが異なるノードから f+1 個の同一の結果を受信すると、プロセスは終了します。 f は、存在する可能性のあるノードの最大値を表します。

使用者: HyperLedgerFabric, Stellar, Ripple, Dispatch

**利点: ** 高速、スケーラブル。

短所: 一般的に、プライベート ネットワークおよび許可されたネットワークで使用されます。

10 委任ビザンチン フォールト トレランス (dBFT委任ビザンチン フォールト トレランス、dBFT)

アルゴリズムの紹介: 中国のブロックチェーン コミュニティ NEO (以前は Xiaoyi として知られていました) は、改良されたビザンチン フォールト トレラント アルゴリズム dBFT を提案しました。このアルゴリズムは、PBFT に基づいた PoS 設計アイデアを利用しています。簿記担当者、そして簿記担当者が到達します。ビザンチンフォールトトレラントアルゴリズムによるコンセンサス。このアルゴリズムは、PoW と PoS の最終的な一貫性の欠如を改善し、ブロックチェーンを金融シナリオに適したものにします。

また、ビザンチン将軍問題を解決するために、NEO ブロックチェーン内に実装されたフォールト トレランスを保証するコンセンサス アルゴリズムである「Authorized Byzantine Fault Tolerance」メカニズムが使用されます。このメカニズムには 2 人の参加者がいます。1 人は専門的な簿記のための「簿記ノード」であり、もう 1 人はシステム内の一般ユーザーです。

一般のユーザーは、自分の保有割合に基づいて簿記ノードを決定するために投票し、合意が必要な場合には、これらの簿記ノードの中からスポークスマンがランダムに選ばれて計画が作成され、他の簿記ノードはビザンチンフォールトトレラントに従っています。つまり、多数派に従う少数派の原則によって発言が行われ、ノードの 66% 以上がスピーカーの計画に同意した場合、コンセンサスに達し、そうでない場合はスピーカーが再選され、投票プロセスが繰り返されます。

すべての参加者がブロック提案を検証できるため、発言者が送信したデータが有効か無効かを簡単に理解できます。したがって、講演者が不誠実で、無効な提案を参加者の 3 分の 2 に送信した場合、ブロックは一致せず、ノード所有者はそれらを検証しません。 3 分の 2 の投票で合意に達し、新しい議長が選出されます。

**ユーザー:**ネオ

合意プロセス:

a. 要件を満たしていれば、誰でも代表者となることができます。すべての NEO トークン所有者が投票でき、代表者は匿名ではなく、ノード所有者になるには 1,000 GAS が必要です。

b. 発言者は参加者の中からランダムに選ばれます。

c. 話者は、検証を待っているトランザクションから新しいブロックを構築します。その後、議長は選出された代表者に提案書を送信します。彼らはすべてのトランザクションを追跡し、ネットワーク上に記録することになっています。

d. 参加者は、受け取った提案を自由に共有および比較して、データの正確性と講演者の誠実さをテストすることができます。参加者の 3 分の 2 以上が合意に達し、それを検証すると、ブロックがブロックチェーンに追加されます。

**利点: **高速 (ブロックの生成に 15 ~ 20 秒かかります)、トランザクション スループットが大きく、エネルギーを消費する必要がなく、スケーラブルでフォークが不要です。

欠点: 匿名性がなく、選出するには実際の身元が必要です。誰もがルートチェーンになろうと競い合っています。複数のルート チェーンが存在する場合があります。

11. ローテーション実用ビザンチンフォールトトレランス (RBPFT)

アルゴリズムの紹介: dBft と RPBFT の原理は PBFT と似ていますが、すべてのノードがコンセンサスに参加するわけではなく、ノードは 2 つのタイプに分けられる点が異なります。

a. コンセンサスノード: PBFT コンセンサスプロセスを実行し、順番にブロックを生成する権限を持つノード

b. 検証ノード: コンセンサスプロセスを実行せず、コンセンサスノードが合法であるかどうかを検証し、検証をブロックし、数ラウンドのコンセンサスの後、コンセンサスノードに切り替えます。

ラウンドロビン ビザンチン フォールト トレランスでは、コンセンサス ノードが検証ノードに順番に置き換えられます。

**ユースケース:**フィスコ-BCOS

**利点: **伝送速度はゴシップよりも速く、冗長なメッセージ パケットがありません。

分割統治、各ノードのアウトバウンド帯域幅は O(1)、強力なスケーラビリティ

欠点: 中間ノードは単一ポイントであり、追加のフォールト トレランス戦略が必要です。

12.アプトスBFT

** **

アルゴリズムの紹介: PBFT の派生アルゴリズムでもあり、Aptos にちなんで名付けられたコンセンサス アルゴリズムは PBFT をベースにした HotStuff に基づいています。このアルゴリズム モデルの利点は、層ごとに剥がす必要がある玉ねぎやロシア人形のようなものです。各ノードはリーダーと他のすべての「将軍」にメッセージを送信するのではなく、リーダーとのみ通信します。リーダーは投票するメッセージ (提案されたブロック) をブロードキャストし、各ノードはメッセージを収集したリーダーに投票を送信します。

使用例: アプトス

最後に、この部分の要約を添付します。

**また、珍しいコンセンサス アルゴリズムがいくつかあります。 **

2015 年、Stellar.org の最高科学責任者である David Mazieres 教授は、Stellar Consensus Protocol (SCP) を提案しました。SCP は、連邦ビザンチン協定とリップル協定に基づいて発展し、安全性が証明された最初のコンセンサス メカニズムであり、4 つのプロトコルを備えています。分散制御、低遅延、柔軟な信頼性、漸近的セキュリティの重要な特性。

同年、Hyperledger の Sawtooth Lake プロジェクトは、リップルと SCP コンセンサスを組み合わせ、即時トランザクションのファイナリティを必要とするアプリケーション シナリオに対処するためのクォーラム投票コンセンサス アルゴリズムを提案しました。

2016 年、チューリング賞受賞者で MIT 教授のシビオ ミカリは、AlgoRand と呼ばれる高速ビザンチン フォールトトレラント コンセンサス アルゴリズムを提案しました。このアルゴリズムは、暗号化宝くじ技術を使用してコンセンサス プロセスの検証者とリーダーを選択し、その設計された BA* ビザンチン フォールトを通じてTolerant Protocol は新しいブロックに関するコンセンサスに達し、AlgoRand は非常に少ない計算とフォークをほとんど必要とせず、真に民主的で効率的な分散台帳コンセンサス テクノロジであると考えられています。

2017年、コーネル大学はSleepy Consensus(スリーピングコンセンサス)と呼ばれる新しいアルゴリズムを提案しましたが、このコンセンサスは、インターネット環境における大規模なコンセンサスノードのほとんどがオフラインであり、オンラインになっているノードはほんのわずかであるという事実に着目したものです。コンセンサスプロセスへの参加。この研究は、従来のコンセンサス アルゴリズムではこの環境でのコンセンサスの安全性を保証できないことを証明しましたが、ドーマント コンセンサス アルゴリズムを使用すると、オンラインの正直なノードの数が障害のあるノードの数を上回る限り、セキュリティと堅牢性が保証できることがわかりました。

##04 まとめ

開発者の視点を飛び出して、政治と経済を組み合わせた考え方をもっと取り入れれば、悪意のあるものに対する処罰の性質を達成できるだけでなく、PPP の概念に似たコンセンサス手法を組み合わせるなど、より多くのコンセンサス アルゴリズムが存在する可能性があります。だけでなく、コンピューティングパワーを最も効率的に節約するという目標も達成できる可能性があります。

つまり、コンセンサスメカニズムはブロックチェーン技術の中核であり、分散システムの信頼性の問題を解決し、ノード間のデータの一貫性とセキュリティを確保し、悪意のあるノードの攻撃や改ざんを回避し、ブロックの安定性と改ざんを保証します。チェーンシステムの信頼性。同時に、コンセンサスメカニズムは「二重支出」問題を解決し、ブロックチェーンシステムのスループットと処理速度を向上させることもできます。しかし、さまざまなコンセンサスアルゴリズムは、完全に安全、効率的、分散化されているわけではありません。

最適なアルゴリズムというものはなく、自分に最適なアルゴリズムがあるだけです。コンセンサス アルゴリズムの選択はアプリケーション シナリオに大きく関係しており、信頼できる環境では Paxos または RAFT を使用し、許可されたアライアンスでは PBFT を使用でき、非許可チェーンでは PoW、PoS、リップル コンセンサスなどを使用できます。 **最良のコンセンサスメカニズムは常にユーザーのニーズに合ったものです。 **

参考:

  1. ブロックチェーンと暗号通貨のコンセンサスメカニズムとは何ですか?
  1. ブロックチェーンに対するダブルフラワー攻撃の脅威
  1. 11 の主流コンセンサス アルゴリズムを 1 つの記事で読み、PoS、PoW、dPoW、PBFT、dBFT とは一体何なのかを徹底的に理解します。

4二重支払いの理解と攻撃を防ぐ方法

5ビザンチン合意メカニズムの応用の紹介

6AptosBFT: Aptos の BFT コンセンサスについて知っておくべきことすべて

原文表示
内容は参考用であり、勧誘やオファーではありません。 投資、税務、または法律に関するアドバイスは提供されません。 リスク開示の詳細については、免責事項 を参照してください。
  • 報酬
  • コメント
  • 共有
コメント
0/400
コメントなし
  • ピン
いつでもどこでも暗号資産取引
qrCode
スキャンしてGate.ioアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)