Monad は分散化を維持しながら EVM をどのように拡張しますか? MonadBFTはMonadで使用されるコンセンサスアルゴリズムであり、Hotstuffの最初のテールフォーク耐性実装です(それはどういう意味ですか? MonadBFT がパフォーマンスを維持し🧵ながら数千のバリデーターに拡張する方法は次のとおりです
1/7 コンセンサスメカニズム ブロックチェーンが新しいブロックが大多数のバリデーターによって同意されるようにするために使用するメカニズム。 これまでのコンセンサスアルゴリズムは、バリデーターの数の2乗に基づいて複雑さが増すため、数百のバリデーターを超えることはできません(ほとんどの場合) 各バリデーターは他のすべてのバリデーターと対話してブロックに同意するため、n バリデーター x n メッセージ = n 2 乗メッセージ。 したがって、バリデーターの数とともに複雑さが大幅に増加します。
2/7 Hotstuff は、オールツーオールのメッセージを回避し、単一の「リーダー」がコンセンサスのためにすべてのバリデーターと通信できるようにすることで、線形に (バリデーターの数に正比例) スケーリングできるコンセンサス アルゴリズムです。 したがって、Hotstuff は従来の PBFT コンセンサスよりも効率的に拡張できますが、テールフォーク攻撃に対して脆弱です。 MonadBFT は、Hotstuff の最初のテールフォーク耐性実装です。
3/7 テールフォークとは? テールフォークは、次のリーダー (次のブロックを提案するバリデーター) が、意図的または偶発的に、新しいブロックの提案に前のリーダーの有効なブロックの QC を含めなかった場合に発生します。(QCはクォーラム証明書の略で、すべてのバリデーターが前のブロックに同意したことを証明します) その結果、前のブロックは有効で過半数の支持を得ているにもかかわらず、コミットされていないままになり、最終的に孤立するか、同じ高さの別のブロックに置き換えられます。 これにより、インセンティブメカニズムが混乱し、ブロックがスキップされた場合、誠実な提案者はブロック報酬や手数料を受け取れなくなり、不公平な行為が助長され、ネットワークのセキュリティが弱まります。
4/7 MonadBFTはどのように機能しますか? → リーダー (Alice) は、署名されたブロック提案を他のすべてのノードにブロードキャストします (ファンアウト)、ノードは次のリーダーであるボブ (ファンイン) に署名された証明を送信することでその有効性を認めます。 → Bob は、構成証明を "クォーラム証明書" (QC) に集約します → Bob はすべてのノードに QC をブロードキャストし、ノードはそれらの認証を集約する 3 番目のリーダー (Charlie) にメッセージを送信することで QC を受信したことを証明します。認証はQCに関するものであるため、この新しいQCをQC-on-QCと呼びます。 → チャーリーは全員に QC-on-QC を送信します。QC-on-QCを受け取ると、アリスのブロックが完成したことが誰もが知っています。
5/7 パイプライン 上記の話では、ボブとチャーリーはQCまたはQCs-on-QCsを送っているだけですが、実際には提案はパイプライン化されています:ボブのメッセージには、アリスのブロックのQCと新しいブロックの内容の両方が含まれています。 チャーリーのメッセージには、ボブのブロックの QC (アリスのブロックの QC-on-QC です) と、新しいブロックのトランザクションも含まれています。 バリデーターがボブのメッセージの証明を送信するとき、彼らはボブのブロックの有効性とQCの有効性の両方を証明することになります。 このパイプラインは、スロットごとに新しいブロックが生成されるため、ネットワークのスループットを向上させます。
6/7 Raptorcast: Monad のブロック伝播プロトコル MonadBFT では、リーダーがすべてのバリデーターにブロック提案を送信する必要があります。 ただし、ブロックは非常に大きくなる可能性があります: 10,000 トランザクション/秒 * 200 バイト/tx = 2 MB/秒。200 のバリデーターに直接送信するには、400 MB/秒が必要です。 理想的には、バリデーターはそれほど高いアップロード帯域幅を持つべきではありません。ここで Raptorcast の出番です。 → ブロックはリーダーによってイレイジャーコーディングされます(イレイジャーコーディングとは、メッセージが一連のチャンクに分割され、これらのチャンクの十分な大きさのサブセットからデコードできることを意味します) → リーダーは、ネットワーク内のすべてのバリデーターに異なるチャンクのセットを配布します (ステークが高いバリデーターは比例してより多くのものを受け取ります)。 → 各バリデーターは、ネットワーク内の他のすべてのバリデーターにチャンクを再ブロードキャストします このようにして、ネットワークの帯域幅全体がブロック提案の伝播に使用されます。
4K