EOSのコンセンサスアルゴリズムについて – Dappstart – 今回は、EOSホワイトペーパーから<コンセンサスアルゴリズム>について解説していきます。 ___________________________________________________________________ コンセンサスアルゴリズム(BFT-DPOS) EOS.IOソフトウェアは、ブロックチェーンのアプリケーションの処理要件を満たすことができると証明され唯一既知の分散型コンセンサスアルゴリズムであるDelegated Proof of Stake(DPOS)を利用しています。このアルゴリズムでは、EOS.IOソフトウェアを採用しているブロックチェーンにトークンを持っている人は、継続的な承認投票システムを通じてブロックプロデューサーを選べます。誰もが、ブロック生成への参加を選ぶことができ、トークン保有者にブロックプロデューサーとして投票するよう説得することができるならば、ブロックを生成する機会が与えられるでしょう。 EOS.IOソフトウェアを使用すると、ブロックを厳密に0.5秒ごとに作成することができ、1人のプロデューサーが任意の時点でブロックを生成することが許可されます。ブロックが予定された時間に生成されない場合、そのタイムスロットのブロックはスキップされます。 1つ以上のブロックがスキップされると、ブロックチェーンに0.5秒以上のギャップが発生します。 EOS.IOソフトウェアを使用すると、ブロックは126のラウンドで生成されます(各6ブロック、21のプロデューサー)。各ラウンドの開始時に、21人のブロックプロデューサーがEOSトークン保有者からの投票順で選ばれます。選ばれたプロデューサーは、15人以上のプロデューサーによって合意された順序でスケジュールされていきます。 プロデューサーがブロックを見逃し、過去24時間以内にブロックを生成しなかった場合、彼らがブロック生成を再開する意思があることをブロックチェーンに通知するまでブロック生成順としての考慮から除外されます。これにより、信頼性が低いと証明されているプロデューサーをスケジュールせず、見逃すブロック数を最小限に抑えることで、ネットワークが円滑に動作します。 通常の状況下では、DPOSブロックチェーンはフォークが発生しません。なぜならブロックプロデューサーが競合するのではなく、協力してブロックを生成するからです。フォークがある場合だと、コンセンサスは自動的に最長のチェーンに切り替わります。この方法は、ブロックチェーンフォークにブロックが追加される頻度が、同じコンセンサスを共有するブロックプロデューサーの割合と直接的に相関しているために作用します。つまり、プロデューサーの多いブロックチェーンフォークは、プロデューサーの少ないブロックチェーンフォークよりも速く成長します。これは、プロデューサーの多いフォークでは見逃されるブロックが少なくなるためです。 さらに、どのブロック生成者も同時に2つのフォークでブロックを生成するべきではありません。このことが見つかったブロックプロデューサーはおそらく投票で退かされるでしょう。そのような二重生成の暗号証拠はまた、悪意を持った人を自動で除外するために使用されるかもしれません。 同じタイムスタンプまたは同じblockheightの2つのブロックに署名しない限り、すべてのブロックプロデューサーがすべてのブロックに署名できるようにすることで、ビザンチン将軍問題が従来のDPOSに追加されます。 15人の生成者がブロックに署名すると、そのブロックは元に戻せないと見なされます。どんなビザンチンの生成者も同じタイムスタンプか同じblockheightの2つのブロックに署名して彼らの不正行為の暗号証拠を生成しなければならないでしょう。このモデルの下では、不可逆性のあるコンセンサスは1秒以内に到達可能であるべきです。 取引確認 一般的なDPOSブロックチェーンには、100%のブロックプロデューサーの参加があります。トランザクションは、ブロードキャストの時点から平均0.25秒後に99.9%の確実性で確認されたと見なすことができます。 DPOSに加えて、EOS.IOは取り消しができないより速い達成のために非同期ビザンチンフォールトトレランス(aBFT)を追加します。 aBFTアルゴリズムは、1秒以内に不可逆な100%の確認を提供しています。 ステークの証拠としてのトランザクション(TaPoS) EOS.IOソフトウェアでは、すべてのトランザクションに新しいブロックヘッダーのハッシュの一部を含める必要があります。このハッシュは2つの目的を果たします。 1.参照されたブロックを含まないフォーク上でのトランザクションの再生を防ぐ。 2.特定のユーザーとそのステークが特定のフォークを使っていることをネットワークに知らせます。 時間が経つにつれて、すべてのユーザーがブロックチェーンを直接確認することになり、偽造チェーンが正規のチェーンからトランザクションを移行できなくなるため、チェーンを偽造することが困難になります。 Consensus Algorithm (BFT-DPOS) EOS.IO software utilizes the […]