本稿について
本稿では、EOS.IOのTechnical White Paper v2のうち「Consensus Algorithm(BFT-DPOS)」の日本語訳を掲載します。
原文はこちらになります。
スポンサードサーチ
コンセンサス・アルゴリズム(BFT-DPOS)
EOS.IOソフトウェアはブロックチェーン上のアプリケーションのパフォーマンス要件を満足できることが証明されている唯一既知の分散コンセンサス・アルゴリズムのDPOS(筆者注:Delegated Proof of Stake, デリゲーティッドプルーフオブステーク, 委任プルーフオブステーク)を利用します。このアルゴリズムの下では、EOS.IOソフトウェアを採用するブロックチェーン上にトークンを有する人たちは、連続的な認定投票システムを通してブロックの生成者を選択する可能性があります。誰もがブロック生成に参加することを選んでよく、自らに投票するようトークンホルダーを説得することができれば、ブロックを生成する機会を与えられるでしょう。
EOS.IOソフトウェアはちょうど0.5秒ごとにブロックを生成するようにすることができ、任意の時点において確実にたった一人の生成者がブロックを生成する権利を持ちます。もしスケジュール時間通りにブロックが生成されない場合、当該タイムスロットのブロックはスキップされます。1つ以上のブロックがスキップされた場合は、ブロックチェーンに0.5秒以上の差が生じます。
EOS.IOソフトウェアを使用すると、ブロックは126のラウンドで生成されます(6ブロック×21の生成者)。各ラウンドの始めに、トークンホルダーによる投票の選択により、重複のない21のブロック生成者が選出されます。選出された生成者は15人以上の生成者が合意した順番でスケジュールされます。
ある生成者がブロックを取り損ね、直近24時間以内に何らのブロックも生成しなかった場合、生産者たちは再度ブロック生成を開始する意思をブロックチェーンに通知するまで考慮から外されます。これは、信頼できないことが明らかになっている生成者をスケジュールしないことで損なわれるブロックの数を最小化することにより、ネットワークの円滑な運用を可能にします。
通常の条件下では、DPOSのブロックチェーンはフォークしません。なぜならば、ブロック生成者は競争するのではなく、むしろ協力してブロックを生成するからです。万が一フォークする場合は、コンセンサスは自動的に最長のチェーンへ切り替わります。この方法はきちんと動作します。なぜならば、フォークするブロックチェーンに追加されるブロックの比率は、同一のコンセンサスを共有するブロック生成者の割合と直接相関するからです。換言すれば、より多くの生成者を有するブロックチェーンのフォークはブロックの取り損ねが少ないので、生成者の多いブロックチェーンのフォークは生成者が少ないものよりも速くチェーンを伸ばすのです。
付け加えると、ブロックの生成者は同時に2つのフォーク上でブロックを生成すべきではありません。当該行為を目撃されたブロック生成者は恐らく投票除外されることになるでしょう。このような二重生産の暗号学的証拠も自動的に不正者を取り除くために利用される可能性があります。
同一のタイムスタンプまたは同一のブロック高である2つのブロックに署名する生成者がいない限りは、全生成者が全ブロックに署名できるようにすることで、ビザンチン・フォールトトレラント性が伝統的なDPOSに付加されます。ひとたび15人の生成者がブロックに署名すると、そのブロックは不可逆であるとみなされます。あらゆるビザンチン生成者は、同一のタイムスタンプまたはブロック高である2つのブロックに署名することで、暗号学的な反逆の証拠を生成しなくてはならないのです。このモデルの下では、1秒以内で不可逆的なコンセンサスを形成することができるでしょう。
トランザクション確認
典型的なDPOSブロックチェーンは100%のブロック生成者の参加があります。トランザクションはブロードキャストの時点から平均0.25秒後に99.9%の確実さで確認されるものと考えられます。
DPOSに加えて、EOS.IOは不可逆性をより素早く達成するために非同期ビザンチン・フォールトトレラント性(aBFT)を追加します。aBFTアルゴリズムは1秒以内で100%の不可逆性の確認を提供します。
トランザクションのプルーフオブステーク(TaPoS)
EOS.IOソフトウェアは、全てのトランザクションが直近のブロックヘッダのハッシュの一部を含むことを必須とします。このハッシュは2つの目的を持ちます。
- あるトランザクションが紐づけられたブロックを含まないフォークチェーン上における、当該トランザクションのリプレイの防止(筆者注:リプレイ攻撃の防止)
- 特定のユーザとそのステークが特定のフォークチェーン上にあることのネットワークへの通知
偽りのチェーンは正規のチェーンからトランザクションを移すことができないので、時間と共に全てのユーザが直接ブロックチェーンを確認し偽りのチェーンを作り出すことを難しくします。
(次稿へ進む)
(前稿へ戻る)
免責
邦訳には誤りがある場合がございます。予めご承知おき下さい。
確実な情報を知るためには冒頭に示した原文をご参照くださいますようお願いいたします。