ブロックチェーンのいくつかのコンセンサスアルゴリズム

ブロックチェーンのいくつかのコンセンサスアルゴリズム

まず、一般的なビザンチン将軍問題からコンセンサスとは何かを理解しましょう。

ビザンチン将軍問題

ビザンチウムは現在のトルコのイスタンブールに位置し、東ローマ帝国の首都でした。当時のビザンチン・ローマ帝国は広大だったため、防衛上の理由から各軍は遠く離れており、将軍たちは伝言を伝達するために使者に頼るしかありませんでした。戦争中、ビザンチン軍の将軍と中尉は全員一致で合意に達し、敵陣を攻撃する前に勝利の可能性があるかどうかを判断する必要がありました。しかし、軍の中には裏切り者や敵のスパイがいる可能性があり、将軍の決定によって軍全体の秩序が乱れる可能性があります。将軍は投票戦略を使用して攻撃するか撤退するかを決定します。つまり、大多数が攻撃を決定した場合は前進し、大多数が撤退を決定した場合は撤退します (たとえば、10 人の将軍のうち 6 人が攻撃を選択した場合は攻撃します)。

このとき、一部のメンバーが反乱を企てていることがわかっている場合(または、無作為に投票したり、許可なく軍の命令を変更したりするスパイがいる場合)、残りの忠実な将軍たちは、裏切り者の影響を受けずに、どのようにして全員一致の合意に達することができるでしょうか。これがビザンチン問題の形成方法です。

ビザンチン将軍問題とは、ビザンチン帝国の軍の将軍たちが特定の敵軍を攻撃するかどうかを全員一致で決定しなければならないという議定書の問題です。問題は、これらの将軍たちが地理的に離れており、将軍たちの中に裏切り者がいるということだ。裏切り者は、一部の将軍を欺いて攻撃行動を取らせる、将軍が攻撃したくないときに攻撃行動を促すなど、すべての将軍が同意するわけではない決定を促す、一部の将軍を混乱させて決定を下せないようにするなど、任意の行動をとることで、次の目的を達成できます。裏切り者がこれらの目的の 1 つを達成した場合、あらゆる攻撃行動の結果は失敗に終わり、完全に協調した努力によってのみ勝利を達成できます。

したがって、ビザンチン将軍は分散システムにおけるコンセンサス問題であり、分散フォールト トレラント システムの問題でもあります。ビザンチン将軍問題は、将軍たちに攻撃の決断をさせることではなく、忠実な将軍全員に合意をさせることです。敵に一人ずつ負けないように、全員が攻撃するか、全員が撤退するかのどちらかです。

現在、ビザンチン将軍問題に対する古典的な解決策は数​​多くありますが、最も一般的なのは Practical Byzantine Fault Tolerance (PBFT) と Raft です。 PBFT ソリューションの前提は、n ≥ 3t+1 です。ここで、t は障害のあるノードの数 (つまり、反乱を起こした将軍の数)、n はノードの総数 (つまり、すべての将軍の総数) です。これらの方法は合意に達することができ、それぞれに利点がありますが、それぞれに異なる前提と制限があります。

現在、ブロックチェーンシステムでは、アライアンスチェーンやプライベートチェーンではPBFTやRaftが一般的に使用されているコンセンサスアルゴリズムであり、パブリックチェーンではPOW、POS、DPOSなどのコンセンサスアルゴリズムが一般的に使用されています。

ブロックチェーンのコンセンサス

通常、支払いをするときは、Alipay を使ってカードをスワイプするだけです。実際にはお金の送金は行われませんが、Alipay はアカウントをデータベースに記録します。現在の通貨システムは、実際には簿記通貨であり、会計主体は国家中央銀行またはアリペイなどの第三者機関です。これは集中会計の一形態です。集中会計は非常に効率的ですが、集中ノードによって引き起こされる単一点障害など、さまざまな問題にも直面しています。アリババのデータベース ルームに隕石が落ちたらどうなるでしょうか。別の例としては、オペレーターによる不正行為があります。アリババのデータベース管理者が機嫌が悪くなり、逃げる前にデータベースを削除したらどうなるでしょうか。もちろん、こうした出来事が起こる確率は非常に小さいですが、ブラックスワンイベントは起こらないか、起こったとしても壊滅的な被害をもたらす可能性があります。したがって、このような低確率のイベントの場合、解決策は一般的に、データのバックアップ、分散ノードの構築、担当者に対する SOP トレーニングの実施など、予防重視になります。もう 1 つの解決策は、より信頼性が高く安全なシステムを使用することです。

ブロックチェーンの分散型会計は、前述の集中型会計の弱点を技術的に解決します。中央ノードがないため、コンピューター アルゴリズム、暗号化、経済学、スマート コントラクト、ポイントツーポイント伝送を組み合わせて使用​​し、改ざんできません。ブロックチェーン内の各ブロックは元帳ページに相当し、各ブロックには対応するトランザクションの内容が記録されます。しかし、分散型会計において非常に重要な問題は、各ノードの元帳の一貫性です。

分散型台帳システムの観点から見ると、システムに参加する各ノードは完全な台帳を保持する必要がありますが、ノードは異なる環境にあり、一貫性のないトランザクション情報を受信するため、2 つのノードが同時にアカウントを記録することはできません。同時にアカウントを記録すると、台帳に不整合が生じます。したがって、次のようなコンセンサスメカニズムが必要です。

  1. どのノードがアカウントを公平かつ公正に管理するかを決定します。現在よく使われているのはPOW、POSなどです。
  2. 特定のノードがアカウントを記録すると、ネットワーク台帳全体が同期された状態になります。現在、最も長いチェーン戦略が一般的に使用されています。

POW: プルーフ・オブ・ワーク

ビットコインシステムは、各ノードの計算能力、つまり「コンピューティングパワー」を使用して、アカウントを保持する権利を競うように設計されています。簡単に言えば、POW は作業側で一定量の作業が行われたことを証明するものです。たとえば、面接に行ったとき、採用ウェブサイトにはその職種には学士号以上の学歴が必要であると記載されていました。では、自分が大学を卒業していることをどうやって証明すればいいのでしょうか? 面接官に大学の卒業証書を見せればよいだけです。とても簡単です。でも、どうやってこの卒業証書を取得するのでしょうか?大学に4年間通う必要があり、その前に高校、中学校、小学校に通わなければなりません。大学では毎日遊んでいるわけにはいきません。授業に出席し、試験を受けなければならず、試験に不合格になるわけにはいきません。難しいプロセスです。面接官にとって、卒​​業証書は私が大学に通ったこと、そして愚かではないことを証明するのに十分でした。

したがって、POW 法の主な特徴は計算の非対称性です。作業側は結果を得るためにある程度の難易度の作業を行う必要がありますが、検証者は結果を通じて作業側が対応する作業を行ったかどうかを簡単に確認できます。具体的な方法は、ブロックチェーンヘッダー内の親ブロックハッシュ、マークルツリールート、ノンス値の3つのフィールドに対してハッシュ演算を実行します。結果が目標値より小さい場合は計算成功です。目標値より大きい場合は、ノンス値を変更し、結果が目標値より小さくなるまで演算を繰り返します。

POW の作業部会と検証部会をどのように理解すればよいでしょうか? 別の例を挙げてみましょう。

ワーカー: 入力値がブロックチェーン1であると仮定して、ハッシュ演算を実行し、最初の3桁が0であるハッシュ値を探します。計算プロセスは次のとおりです。

  1. ブロックチェーン1 -> ef7797e13d3a75526946a3bcf00daec9fc9c9c4d51ddc7cc5df888f74dd434d1
  2. ブロックチェーン2 -> db0b9c1cb5e9c680dfff7482f1a8efad0e786f41b6b89a758fb26d9e223e0a10
  3. ......
  4. ブロックチェーン515 -> 0063e58fb6e3789fcb5eb64d05d7a9b909c5e9e1b60b18cb566a3326c1fd54c
  5. ......
  6. ブロックチェーン2688 -> 0005f2ee930eafef21d06545c0058ddfcf2ac9dfa542b745021f51ceb9e9f43c

最初の 3 桁が 0 であるハッシュ値を見つけるには、2688 回の操作が必要であることがわかります。ゼロの数が増えると、計算の難易度は指数関数的に増加します。

検証者: 検証者はワーカーから値 blockchain2688 を取得し、ワーカーの作業が完了したかどうかを確認するために必要な計算は 1 回だけです。

pow の場合、特定の文字列の後にランダムな nonce を見つける必要があり、SHA256 値の最初の n ビットがすべて 0 であることを満たす場合は、複数のハッシュ値操作を実行する必要があります。一般的に、ハッシュ値の疑似ランダム性により、先頭に 3 つの 0 があるハッシュ値を見つけるには、約 2 の 12 乗回の試行が必要になると予想されます。この数学的に予想される計算回数が、いわゆる「ワークロード」です。プルーフ・オブ・ワーク活動全体を「マイニング」と呼ぶことがよくあります。

上記の例では、ナンス値がどのように変更されるか、ターゲット値の 0 の数がどのように決定されるかなど、実際の Bitcoin システムではいくつかの重要なポイントがあります。Bitcoin マイニングに関する記事を参照してください。

ビットコイン ネットワーク内のいずれかのノードが新しいブロックを生成し、それをブロックチェーンに書き込む場合、ビットコイン ネットワークによって発生する POW 問題を解決する必要があります。この質問には 3 つの重要な要素があります。

  • プルーフ・オブ・ワーク機能
  • ブロック
  • 難易度値/目標値

ビットコイン システムで使用されるプルーフ オブ ワーク関数は SHA256 です。SHA は Secure Hash Algorithm の略で、暗号化ハッシュ関数のファミリーです。SHA256 はその 1 つで、256 ビットのハッシュ アルゴリズムを出力します。ビットコインのブロックは、ブロック ヘッダーとブロックに含まれるトランザクションのリストで構成されます。ブロックには前のブロックを指すハッシュ ポインターが含まれているため、異なるトランザクションを記録している個々のブロックがリンクされてブロックチェーンが形成されます。難易度値は、ビットコイン システム内のノードがブロックを生成する際に重要な参照指標です。この数値は、ハッシュ ブロックを生成するためにノードが実行する必要があるハッシュ操作の数を決定します。難易度値は、ネットワーク全体の計算能力の変化に応じて調整され、ブロック生成率は 10 分ごとに 1 つに維持されます。

したがって、POW の成功の決定要因は、計算能力の大きさです。計算能力が n で、ネットワーク全体の計算能力が m の場合、プルーフ オブ ワーク、つまりマイニング活動が成功する確率は n/m であり、m/n 回のマイニング操作の後に 1 回成功することができます。たとえば、私のラップトップのアルゴリズムは約 1GH/s で、現在のネットワークの計算能力は 21EH/s なので、約 200 億回の作業証明を実行する必要があり、それぞれに約 10 分かかります。そして、私が生きている間に 1 回もマイニングすることは絶対にできないでしょう。

POS: ステーク証明

これでビットコインのマイニング方法がわかりました。つまり、マイニング報酬として新しいコインを取得するには、マイニング機器を購入し、電気代を支払う必要があるということです。これは基本的に非常にリソースを消費するプロセスです。そして、明らかな欠点が 2 つあります。一方では、POW の前提はノードとコンピューティング パワーが均等に分散されていることです。これは、サトシ ナカモトの元の設計が CPU を介してマイニングすることであったため、ノード数とコンピューティング パワーの値がほぼ一致するようにするためです。ただし、GPU、FPGA、さらにはマイニング マシンの開発により、ノード数とコンピューティング パワーの値は徐々に一致しなくなっています。一方、POW は非常に無駄が多いです。ビットコイン ネットワークは、1 秒間に数百兆回の SHA256 計算を実行できます。これらの計算は、悪意のある攻撃者がビットコイン ネットワークを簡単に破ることができないという点を除けば、実用的な価値はあまりないようです。もちろん、それがもたらす利益に比べれば、この無駄は小さな代償かもしれません。

しかし、無駄は常に悪いものです。マイニング設備とエネルギー消費をなくす方法はあるのでしょうか? 結局のところ、このプロセスは単に会計用のノードを選択するだけです。これを実現する他の方法はあるのでしょうか? そのため、人々はプルーフ オブ ワークの代替案をいくつか提案しており、そのうちの 1 つが POS と呼ばれています。

公平性認証は、2011 年に Quantum Mechanic が Bitcoin フォーラムの講演で提案し、その後 PPC (Peercoin) と NXT (Futurecoin) によって異なるアイデアで実装されました。 POW は計算能力に基づいてランダムですが、POS は所有する資産に基づいてランダムです。これが、これら 2 つのコンセンサス メカニズムの本質です。しかし、もう 1 つの問題は、POW はビットコインの出現前に存在していたものであり、ビットコインの成功により、POW は基本的にビットコインの POW のみを指すようになったことです。しかし、それどころか、POS は新しいものであり、現時点では成熟した POS アプリケーションはありません。したがって、POS について言及する場合、特定のアルゴリズムではなくカテゴリを指しており、これらのアルゴリズムにはそれぞれ独自の長所と短所があります。さらに、これまでのところ、どのアルゴリズムの信頼性も実際にテストされていません。したがって、POW と POS の長所と短所を比較するには、POS カテゴリを例に挙げることしかできません。現在よくPOSと呼ばれているものは、実は最も初期のPOSであるPPCoinのPOSです。これには根本的な欠陥があります。たとえば、セーブアップ攻撃はPPCにのみ適用可能で、POSには適用できません。

Quantum Mechanic が POS コンセプトを提案したとき、彼は次のように述べました。

ビットコインがより広く流通するようになるにつれて、プルーフ オブ ワーク ベースのシステムからプルーフ オブ ステーク ベースのシステムへの移行が起こるのではないかと考えています。プルーフ オブ ステークとは、承認されたトランザクション履歴に対する「投票」が、ネットワークに持ち込むコンピューティング リソースの割合によって重み付けされるのではなく、秘密鍵を使用して所有していることを証明できるビットコインの数によって重み付けされることを意味します。

彼が言いたかったのは、ノードの会計権の取得は、ノードが保有するコインの数、つまりそのエクイティに関係しているということです。両者は反比例しており、保有するコインが多ければ多いほど、会計権を取得しやすくなります。誰がアカウントを保持するかを決定するこの方法では、POW の計算集約的なプロセスが排除されますが、アカウントを保持する権利を取得するにはハッシュ操作が依然として必要です。

POW では、ユーザーは 1,000 ドルを費やしてマイニング マシンを購入し、ネットワークに参加してマイニングすることで報酬を受け取ることができます。POS では、ユーザーは 1,000 ドルを費やして同等の価値のトークンを購入し、これらのトークンをデポジットとして POS メカニズムに投入することで、新しいブロックを生成して報酬を受け取るチャンスが得られます。

簡単に言えば、このシステムにはコイン保有者の集まりがあります。彼らは特定のトークンを POS メカニズムに投入し、バリデーターとなり、トランザクションを検証してブロックを生成する権利を持ちます。次に、POS アルゴリズムはこのセットからノードをランダムに選択し、次のブロックを生成する権利を付与します。このノードが一定時間内にブロックを生成しない場合は、2 番目のノードが選択されて置き換えられます。このプロセスでは、選択される確率は投資したトークンの量に関係します。たとえば、ノードが 10,000 トークンを投資した場合、選択される確率は 1,000 トークンを投資したノードの 10 倍になります。

ピアコイン(PPC)

PPC は、プルーフ オブ ステーク アルゴリズムを採用した最初のデジタル資産です。Quantum Mechanic が提案したプルーフ オブ ステークの考え方に基づいて、コイン エイジの概念を導入しています。コインの年齢は、コインの数とコインを所有している日数の積です。

簡単に言うと、通貨を保有している量と時間に応じて利息が支払われるシステムです。PPC の POS モードでは、コインごとに毎日 1 コイン エイジが生成されます。たとえば、合計 30 日間 100 コインを保有した場合、コイン エイジは 3000 になります。このとき、POS ブロックが見つかると、コイン エイジは 0 にクリアされます。クリアされたコインエイジ365ごとに、ブロックから0.05コインの利息を受け取ります(利息は年利5%として理解でき、PPCoinの年利は1%であると仮定します)。この場合、利息= 3000 * 5%/ 365 = 0.41コイン。これは非常に興味深いです。コインを保有することに利息があります。

PPC は実際にはプルーフ・オブ・ステークとプルーフ・オブ・ワークの組み合わせであり、マイニングも必要になります。ブロックをマイニングするために、Peercoin マイナーも Bitcoin マイナーと同様に SHA256 パズル操作を実行する必要がありますが、このパズル操作の難易度は、消費するコインの量に応じて調整されます。コインの世代が消費されると、有効なブロックを見つけるのが非常に簡単になります。この計算パズルの目的は、2 人のマイナーが同じ量のコイン エイジを消費しようとしたときに、プロセスがランダムなままであることを保証することです。

POS の場合、PPC に加えて、他のさまざまな形式のデザインがあります。これらの設計では、パズルの計算を非常に簡単にするために一定量のコインが消費されるため、パズルの計算はマイニング プロセスにおける主な課題ではなくなります。

POWとPOS

両者の最も直接的な違いは、POW は計算能力に依存し、POS は保有するコインの数に依存することです。したがって、アカウントを保持する権利を取得したい場合は、POW がマイニング マシンを購入し、POS がトークンを購入する必要があります。

プルーフ・オブ・ワークは多くのリソースを消費し、制御性が低く、コンセンサスメカニズムが強力で、ネットワーク全体の計算能力の参加を必要とするため、非効率的です。明らかな利点は、完全な分散化とノードの自由な出入りです。プルーフ・オブ・ステークは、合意に達するまでの時間をある程度短縮しますが、大量のエネルギーを消費することなくマイニングを行うことは依然として必要です。どちらのソリューションも、コストの削減と効率性の向上というユーザーの悩みを根本的に、かつ大幅に解決するものではありません。あくまで最適化ソリューションなので、この2つの方法のロジックに基づいてプロジェクトを実行すると、必然的に置き換えが発生する状況が発生します。たとえば、より最適化されたソリューションや、問題点を完全に解決する新しいメカニズムが出現する可能性があります。

DPOS: 委任型ステーク証明

POWとPOSはどちらも会計一貫性のコンセンサス問題を解決できますが、POWはコンピューティングパワーに依存しすぎています。第一に、リソースを浪費し、第二に、一部のマイニングプールの巨大なコンピューティングパワーが中心になっています。 POS が株式残高に基づいて選択される場合、最も裕福な人のアカウントがより大きな力を持ち、アカウントを保持する権利を制御する可能性があります。そこで、誰かが DPOS アルゴリズムを提案しました。本質的には、DPOS は POS の改良版であり、PPC が POS の改良版であるのと同じです。ただし、PPC は特定のデジタル資産であるのに対し、DPOS はアイデアであるという点が異なります。

ビットシェアーズ

BitShare は、DPOS メカニズムを使用するデジタル資産です。技術的な民主主義レイヤーを導入することで、中央集権化の悪影響を軽減することを目指して、証人 (つまり、エージェントまたは代表者) の概念を提案しています。理事会の投票と同様に、コイン保有者はプロキシ検証と簿記を実行するために一定数のノードに投票します。

BitShare の DPOS の動作原理は、BitShares を保有する各ノードが株主に相当し、代表者に投票する権利を持ち、各株主が代表者に投票権を付与するというものです。最も多くの票を獲得した最初の N 人 (N は通常 101 人) の代表者がブロックを生成します。代理人として選任されるには、株主の少なくとも半数が投票に参加する必要があります。

エージェントの候補リストは、メンテナンス サイクル (1 日) ごとに更新されます。エージェントはランダムに配置され、各エージェントは 2 秒間で順番にブロックを生成します。指定された時間内にブロックを生成できない場合は、次のタイムスライスのエージェントによってブロックが完了します。

DPOS は株主の投票を最大限に活用し、公正かつ公平な方法で合意に達します。選択された N 個のエージェントは N 個のマイニング プールとみなすことができ、これらの N 個のマイニング プールの権利は完全に平等です。エージェントが提供する計算能力が不安定であったり、コンピューターがクラッシュしたり、エージェントが悪事を働こうとしたりしない限り、株主は投票によっていつでもエージェントを交代させることができます。

DPOS の利点は、検証とアカウンティングに関与するノードの数を大幅に削減でき、数秒でコンセンサス検証を達成できることです。ただし、欠点は、コンセンサス メカニズム全体が依然としてトークンに依存しており、多くの商用アプリケーションではトークンが必要ないことです。

POW、POS、DPOS という 3 つの主流のコンセンサス メカニズムに加えて、実際のブロックチェーン アプリケーションでは、さまざまなバリアント メカニズムが登場しています。これらの仕組みにはそれぞれ長所と短所があります。例えば、POWはセキュリティと公平性に優れ、先行者利益に基づいて成熟したマイニング産業チェーンを形成していますが、エネルギー消費が批判されています。 POS、DPOS などの新しいメカニズムは、より環境に優しく効率的ですが、POW ほど安全で公平ではありません。

<<:  公正な「データアクセス」の新秩序の構築 AIが都市統治に根付く

>>:  機械学習とは何ですか?機械はどんどん賢くなっていて、もはやSFの世界ではない

ブログ    
ブログ    

推薦する

テンセント AI ラボが初の自動モデル圧縮フレームワークのソースを公開: ディープラーニングをポケットに

テンセントAIラボ機械学習センターは本日、世界初の自動ディープラーニングモデル圧縮フレームワーク「P...

すべては応用のため!九張雲記DataCanvas大型モデルシリーズ成果発表!

11月21日、北京で「基礎を築き、力をつけ、未来へスマートに進む」九張雲済DataCanvasビッ...

トレンド | AIを学ぶには、まず2018年の人工知能に関する13の予測を理解する必要があります

[[214541]] 2017 年は、ウォール ストリート ジャーナル、フォーブス、フォーチュンなど...

エンコーダー・デコーダーアーキテクチャを放棄し、エッジ検出に拡散モデルを使用する方が効果的です。国立国防科学技術大学はDiffusionEdgeを提案しました。

既存のディープ エッジ検出ネットワークは通常、マルチレベルの特徴をより適切に抽出するためのアップサン...

...

食品産業における人工知能:農家の意思決定を支援する

人工知能は食品システムを最適化できると思いますか? 精密農業からパーソナライズされた栄養管理まで、農...

継続的インテリジェンスとは何ですか?モノのインターネットにどのような影響を与えるでしょうか?

IoTの世界は、希望に満ちた2020年を迎えようとしています。 5G企業は、2020年は5Gが公共...

あなたのビジネスに最適なRPAコンサルタントを見つける方法

RPA 導入を成功させるために、この記事では、ビジネスに最適な RPA コンサルタントを選択するプロ...

...

ディープラーニングに加えて、これらの開発の方向性も理解する必要があります

[[214266]] AI の究極の未来は人間の知能に到達し、それを上回ることであることに疑いの余地...

注意してください、これらの6つのアルゴリズムには落とし穴があります:中国消費者協会はビッグデータが古い顧客をターゲットにしていると指摘しています

ビッグデータの登場以来、「古い顧客を搾取する」問題はますます深刻になっています。テイクアウトでも旅行...

...

ニューラル放射フィールドはポイントベースで、NeRFよりも30倍高速なトレーニング速度と優れたレンダリング品質を備えています。

2020 年はボリューメトリック ニューラル レンダリングが爆発的に普及する年です。たとえば、Ne...

MIT、「上級数学」ソルバーの強化版をリリース:7つのコースの正解率は81%

AIは小学校の算数の文章題を解くだけでなく、高度な数学にも取り組み始めています。最近、MIT の研...