シーケンス = アグリゲーター + ヘッダー プロデューサー

上級2/28/2024, 8:50:09 AM
この記事では、Rollupモデルを理解しやすく分析しやすくするために、Celestiaの研究者であるNashQがRollupのシーケンサーをアグリゲーターとヘッダープロデューサーの2つの論理エンティティに分割しました。 同時に、トランザクションの順序付けプロセスを、包含、順序付け、実行の 3 つの論理的なステップに分割しました。この分析的思考に導かれて、ソブリンロールアップの6つの主要な重要なバリエーションはより明確で理解しやすいものになります。 NashQは、さまざまなRollupバリアントの検閲耐性と活性性について詳細に議論し、最小信頼状態における各Rollupバリアントノードの最小構成(つまり、Trustless状態を実現するには、少なくともRollupユーザーが実行する必要のあるノードの種類)についても調査しました。
  • 転送された元のタイトル: Celestia researcher analyzes 6 Rollup variants: Sequencer=aggregator+Header generator

注: Rollup モデルの理解と分析を容易にする目的で、Celestia の研究者である NashQ は、Rollup Sequencer を Aggregator と Header Producer の 2 つの論理エンティティに分割しました。 同時に、トランザクションの順序付けプロセスを、包含、順序付け、実行の 3 つの論理的なステップに分割しました。

この分析的思考に導かれて、ソブリンロールアップの6つの主要なバリエーションはより明確で理解しやすいものになっています。 NashQは、さまざまなRollupバリアントの検閲耐性と活性性、および信頼最小化の状態における各Rollupバリアントノードの最小構成(つまり、トラストレス状態を実現するには、少なくともRollupユーザーが実行する必要があるノードの種類)について詳細に説明しました。

本記事は、イーサリアムコミュニティがロールアップモデルを分析する方法とは異なる、セレスティアの視点からロールアップを分析していますが、イーサリアムロールアップとセレスティアソブリンロールアップの相互関係の多さや、後者の影響力の高まりを考えると、イーサリアム愛好家にとっても非常に読み応えのある記事です。

ロールアップとは

ロールアップは、トランザクションデータを別のブロックチェーンに投稿し、そのコンセンサスとデータの可用性を継承するブロックチェーンです。

なぜここで「ブロック」を「トランザクションデータ」に変更しているのですか? ロールアップブロックとロールアップデータの違いを説明し、最小ロールアップには最初のバリアントのロールアップデータのみが必要であることをお示しします。

ロールアップブロックは、特定の高さのブロックチェーンを表すデータ構造です。 ロールアップデータとロールアップヘッダから構成されます。 また、ロールアップ データは、トランザクションのバッチまたはトランザクション バッチ間の状態の違いです。

バリアント 1 : ベース ペシミスティック ロールアップ

ロールアップを構築する最も簡単な方法は、ユーザーがトランザクションを別のブロックチェーンに投稿することから始まります。 このブロックチェーンをコンセンサスとデータ可用性レイヤーと呼ぶことにしますが、以下の図ではDAレイヤーと短縮します。 (注:イーサリアムコミュニティでよく参照されるレイヤー1に似ています)。

最初のバリアントでは、すべてのロールアップノードがブロックチェーン上のすべてのトランザクションを再生して、最新の状態を確認する必要があります。 悲観的なロールアップを作成しました。

ペシミスティック ロールアップは、ロールアップ内のすべてのトランザクションを再生して有効性をチェックするフル ノードのみをサポートするロールアップです。

しかし、この場合、シーケンサーは誰ですか? ロールアップ・フル・ノード自体以外のトランザクションを実際に実行しているエンティティはありません。 通常、シーケンサーはトランザクションを集約してロールアップヘッダーを生成しますが、この場合はヘッダーはありません。

議論を容易にするために、シーケンサーを 2 つの論理エンティティに分割し、アグリゲーターとヘッダー プロデューサーが区別します。 1 つのエンティティは状態を認識する必要があります (つまり、ヘッダーを計算するために状態を実行する必要があります) が、アグリゲーターはそれを集約できるようにするために状態を理解する必要はありません。

シーケンシングは、集約とヘッダー生成のプロセスです。

集計は、トランザクションを 1 つのバッチにバッチ処理するプロセスです。 トランザクションのバッチは、1 つ以上のトランザクションで構成されます。 (注: バッチは、ヘッダーを除くロールアップブロック内のデータの一部です)。

ヘッダー生産は、ロールアップヘッダーを作成するプロセスです。

ロールアップヘッダーはブロックに関するメタデータであり、少なくともそのブロック内のトランザクションへのコミットメントが含まれます。 (注: ここでのコミットメントとは、トランザクション処理結果の正確性に対するコミットメントを指します)。

上記の視点から、ロールアップの各コンポーネントの役割を誰が担うかがわかります。 まず、アグリゲーターの部分を見てみましょう。 前述の悲観的なロールアップにはヘッダー生成プロセスがなく、ユーザーはトランザクションをDAレイヤーに直接公開するため、DAレイヤーネットワークは基本的にアグリゲーターとして機能します。

ペシミスティック・ロールアップは、集計ステップをDAレイヤーに委任するロールアップの変形です。 シーケンサーはありません。 この種類のロールアップは、"ベースのロールアップ" と呼ばれることもあります。

ベースロールアップは、DAレイヤーと同じ検閲耐性と活性性を備えています(アクティビティは、ユーザーの要求に対するシステムの応答速度を測定します)。 このタイプのロールアップのユーザーが最小限の信頼状態(トラストレスに最も近い状態)を実現するには、少なくともDAレイヤーライトノードとロールアップフルノードを実行する必要があります。

バリアント 2: 共有アグリゲーターを使用したペシミスティック ロールアップ

共有アグリゲーターを使用した悲観的集計について説明しましょう。 このアイデアは、Evan Forbes が共有シーケンサーの設計に関するフォーラムの投稿で提案しました。 その重要な前提は、共有シーケンサーがトランザクションをシーケンスする唯一の正式な方法であるということです。Evan氏は、共有シーケンサの利点を次のように説明している。

「web2と同等のUXを解き放つために、共有シーケンサー[...]高速ソフトコミットメントを提供できます(注:あまり信頼できる保証ではありません)。 これらのソフト コミットメントは、トランザクションの最終的な順序付けを任意に約束し (つまり、トランザクションの順序が変更されないことを約束します)、状態の早期更新バージョンを作成するために使用できます (ただし、この時点ではファイナライズはまだ完了していません)。

ブロックデータがベースレイヤー(DAlayerを参照するs/b)に投稿されることが確認されるとすぐに、その状態は最終的なものと見なすことができます。

まだ悲観的なロールアップであるため、ロールアップのフルノードのみがあり、ライトノードはありません。 各ノードは、有効性を保証するためにすべてのトランザクションを実行する必要があります。 このシステムにはライトノードがないため、ロールアップヘッダー(ヘッダープロデューサー)は必要ありません。 (注:一般的に言えば、ブロックチェーンのライトノードは完全なブロックを同期させる必要はなく、ブロックヘッダーを受け取るだけです)

Rollup Header生成工程がないため、前述のRollup共有シーケンサは、Header生成の前提条件であるステータス更新のためのトランザクションを実行する必要はなく、トランザクションデータを集約する処理のみを含む。 ですから、私はこれを共有アグリゲーターと呼ぶことを好みます。

このバリアントでは、ロールアップ ユーザーは、信頼が最小化された状態で少なくとも以下を実行する必要があります。

DA レイヤーライトノード + 共有アグリゲーターネットワークのライトノード + ロールアップフルノード。

このとき、共有アグリゲーターネットワークのライトノードを介して、公開されたアグリゲーターヘッダー(ロールアップヘッダーを参照しない)を検証する必要があります。 前述したように、共有アグリゲーターはトランザクションソートのタスクを引き受けます。 公開されたアグリゲーターヘッダーには、DAレイヤーで公開されたバッチに対応する暗号化コミットメントが含まれています。

このようにして、ロールアップノードのオペレータは、DAレイヤーから受信したバッチが、他のアグリゲータではなく、共有アグリゲータによって作成されたことを確認できます。

(上記の内容は比較的曖昧なため、図をもう一度読むことができます)

インクルージョンとは、トランザクションがブロックチェーンに受け入れられるプロセスです。

注文とは、ブロックチェーン上で特定の順序で取引を配置するプロセスです。

実行は、ブロックチェーン内のトランザクションが処理され、その効果がブロックチェーンの状態に適用されるプロセスです。

共有アグリゲーターはインクルージョンと順序付けを制御するため、その検閲耐性を継承します。

L_ssが共有アグリゲータの活性度であり、L_daがDA層の活性度であると仮定すると、このスキームの活性度はL = L_da & L_ssとなります。 つまり、いずれかのシステムに活性障害が発生した場合、ロールアップにも活性障害が発生します。

わかりやすくするために、liveness をブール値として使用します。 共有アグリゲーターに障害が発生した場合、ロールアップを続行することはできません。 DAレイヤーに障害が発生した場合は、共有アグリゲーターのソフトコミットメントを続行できます。 それでも、共有アグリゲーターのコンセンサスとデータの可用性に依存しており、元のDAレイヤーよりも悪くなります。

上記のロールアップソリューションの検閲耐性を引き続き調べてみましょう。

このスキームでは、DA層は特定のトランザクションを検閲できません。 (注:トランザクションレビューでは、特定のトランザクションをチェーンにアップロードすることを拒否することがよくあります)。 打ち切ることができるのは、共有アグリゲーターが既に集計したロールアップ バッチ全体のみです。 (DAレイヤーに含めるバッチを拒否します)。

ただし、ロールアップのワークフローによると、共有アグリゲータがトランザクションバッチをDAレイヤーに送信すると、すでにトランザクションシーケンスが完了しており、異なるバッチ間の順序も決定されています。 したがって、DAレイヤーによるこの種のトランザクションレビューは、ロールアップの台帳のファイナリティを遅らせる以外の効果はありません。

要約すると、検閲抵抗の焦点は、システム内の情報の流れを1つのエンティティが制御または操作できないようにすることであり、ライブネスには、ネットワークの停止や敵対的なアクションが存在する場合でも、システムの機能と可用性を維持することが含まれると考えています。 これは現在の主流の学術的定義と矛盾しますが、私はまだ私が述べた概念の定義を使用します。

バリアント 3: ベース集計と共有集計によるペシミスティック ロールアップ

コミュニティは共有アグリゲーターの利点を享受していますが、私たちはそれに依存することは避け、DAレイヤーへのフォールバックを望んでいます。 注文を組み合わせ、ユーザーがDAレイヤーに直接トランザクションを送信できるようにします。 これは、ベースの集計と共有の集計を組み合わせたものです。

最終的な順序付けは、共有アグリゲータによって順序付けられたすべてのトランザクションと、その後のDAレイヤーブロックごとのすべてのベースのトランザクションとして解釈されると仮定します。 これをロールアップフォーク選択ルールと呼びます。

ここでは、集計は 2 段階のプロセスです。 まず、共有アグリゲーターが主導権を握り、いくつかのトランザクションを集約します。 次に、DAレイヤーは、ユーザーが直接送信したすでに注文されたバッチとトランザクションを集計します。

現在、検閲耐性の分析はより複雑になっています。 DA層ネットワークノードは、次のDA層ブロックが生成される前に、共有アグリゲータによって送信されたバッチを確認できます。 バッチ内のトランザクションデータがわかった後、DAレイヤーノードはMEV値を抽出し、ロールアップネットワーク上のアカウントでフロントランニングトランザクションを開始し、ロールアップ共有アグリゲータによって送信されたバッチを含める前にDAレイヤーブロックに含めることができます。

どうやら、3番目のタイプのロールアップバリアントのソフトコミットメントによって保証されるトランザクション注文のファイナリティは、上記の2番目のタイプのロールアップバリアントよりも脆弱です。 この場合、共有アグリゲータはMEV値をDAレイヤーノードに渡します。 これについては、MEVの儲かる検閲についての講演をご覧になることをお勧めします。

現在、ロールアップネットワークユーザがDAレイヤに直接送信したトランザクションを遅らせる「再編成ウィンドウ期間」機能など、DA層ネットワークノードがこのようなMEVトランザクションを実行する能力を低下させる設計ソリューションがいくつか登場しています。 Sovereign Labsは、Based Sequencing with Soft Confirmationsという設計案でこのことを詳しく説明しており、「優先シーケンサー」の概念が提案されています。

MEVは、選択したアグリゲータースキームとロールアップのフォーク選択ルールに依存するため、何もリークしないものもあれば、一部またはすべてのMEVをDAレイヤーにリークするものもありますが、それは別の日のトピックです。

ライブ性に関しては、このロールアップ設計は、共有アグリゲーターを持つだけの場合よりも優位に立っています。 共有アグリゲータに活性障害が発生した場合でも、ユーザーはDAレイヤーにトランザクションを送信できます。

最後に、信頼を最小化した最小のセットアップ、つまり DA レイヤー ライト ノード + 共有アグリゲーター ライト ノード + ロールアップ フル ノードについて説明します。

この時点では、ロールアップフルノードの共有アグリゲーターのヘッダーを検証して、フォーク選択ルールのトランザクションバッチを区別できるようにする必要があります。

バリアント 4: 集中型ヘッダープロデューサによるベースのオプティミスティックロールアップ

集中型ヘッダープロデューサーを備えたベースドオプティミスティックロールアップと呼ばれるバリアントを使用して、いくつかのライトノードのクックを始めましょう。 この設計では、DA-Layerを使用してトランザクションを集約しますが、ロールアップライトノードを有効にするために集中型ヘッダープロデューサーを導入しています。

ロールアップライトノードは、1回の不正防止ラウンドを通じて、ロールアップトランザクションの有効性を間接的に検証できます。 ライトノードは、ロールアップヘッダーのジェネレータに対して楽観的な態度を取り、不正防止ウィンドウ期間が終了した後に最終確認を行います。 もう一つの可能性は、ヘッダージェネレータが誤ったデータを送信したことを知りながら、正直なフルノードから不正の証拠を受け取ることです。

1ラウンドの不正証明がどのように機能するかについては、この記事の範囲を壊すため、詳しく説明しません。 ここでの利点は、不正防止期間を7日間からある程度に短縮できることですが、これはまだ決定されていませんが、桁違いに小さくなります。 ライトノードは、すべてが単一のプルーフに捕捉されるため、異議申し立てを待つことなく、P2Pレイヤーを介して不正プルーフを受け取ることができます。

DA-Layerをアグリゲーターとして使用し、検閲耐性を継承しています。 インクルージョンと順序付けを行います。 中央集権的なヘッダープロデューサーは、DAレイヤーから正規の順序を読み取り、そこから有効なヘッダーを構築できます。 集中型ヘッダープロデューサーは、ヘッダーと状態のルートをDAレイヤーにポストします。 これらの州のルーツは、このコミットメントに対する詐欺の証拠を作成するために不可欠です。 アグリゲーターはインクルードと順序付けを行い、ヘッダープロデューサーは実行を行います。

DA-Layer(現時点ではRollupのアグリゲーターとしても機能)は十分に分散化されており、優れた検閲耐性を備えていると想定されています。 また、ヘッダープロデューサは、アグリゲータによって発行されたロールアップトランザクションシーケンスを変更できません。 ヘッダー プロデューサーが分散化されている場合、唯一の利点は活性の向上ですが、Rollup の他のプロパティは最初のバリアントである Based Rollup と同じです。

ヘッダー プロデューサーに活性障害が発生した場合、ロールアップにも活性障害が発生します。 ライトノードはチェーンをたどることができませんが、フルノードは必要に応じてチェーンをたどり、バリアント1で説明したように、ベースの悲観的なロールアップにフォールバックすることができます。明らかに、バリアント 4 で説明されている信頼の最小化の最小構成は次のとおりです。

DA-Layerライトノード+ロールアップライトノード。

バリアント 5 : 分散型証明者市場による ZK ロールアップに基づく

ペシミスティック ロールアップ (ベース ロールアップ) とオプティミスティック ロールアップについて説明しましたが、次は ZK ロールアップを検討します。 先日、Toghrul氏はアグリゲータ(シーケンサ)とヘッダプロデューサ(プローバー)の分離(ゼロ知識ロールアップにおけるシーケンサとプローバーの分離)についてプレゼンテーションを行った。 このモデルでは、トランザクションを State Diff ではなく Rollup データとして公開する方が扱いやすいため、前者に焦点を当てます。 バリアント5は、分散型プルーバー市場を備えたベースのzkロールアップです。

ここまでで、ベースのロールアップの機能についてよく理解できたはずです。 バリアント 5 は、アグリゲーターの役割を DA-Layer ノードに委任し、DA-Layer ノードが包含と順序付けの作業を実行します。Sovereign-Labsのドキュメントから引用しますが、これは彼らの設計のライフサイクルを説明する素晴らしい仕事をしています。 バリアント5に合うように少し調整します。

ユーザーは、新しいデータの BLOB を L1 チェーンに投稿します。 BLOB が L1 でファイナライズされるとすぐに、論理的にファイナルになります。 L1 ブロックがファイナライズされた直後に、ロールアップのフル ノードがブロックをスキャンし、関連するすべてのデータ BLOB を出現順に処理して、新しいロールアップ状態ルートを生成します。 この時点で、ブロックはすべてのフルノードの観点から主観的に確定されます。

この設計におけるヘッダーの生産者は、分散型プルーバー市場です。

証明ノード(ZKVM内で実行されるフルノード)は、DAブロックをスキャンしてすべてのバッチを順番に処理し、証明を生成してチェーンに投稿するという、フルノードとほぼ同じプロセスを実行します。 (ロールアップが証明者にインセンティブを与えたい場合は、証明をチェーンに投稿する必要があります - そうでなければ、どの証明者が特定のバッチを最初に処理したかを判断することは不可能です)。 特定のバッチのプルーフがチェーンに投稿されると、バッチはライトノードを含むすべてのノードに対して主観的に最終的になります。

(多くの概念が関係しているため、スケマティック ダイアグラムをもう一度見ることができます)

バリアント5は、DAレイヤーと同じ検閲耐性を享受しています。 分散型証明機市場は、DA層が正規の順序を決定するため、取引を検閲することはできません。 ヘッダープロデューサーを分散化させたのは、活性を高め、インセンティブ市場を創出するためだけです。 ここでの活性度は、L = L_da & L_pm (プルーバー市場) です。 プルーバー市場のインセンティブがずれていたり、活性障害があったりすると、ライトノードはチェーンをたどることができませんが、ロールアップフルノードは必要に応じてチェーンに追従し、ベースの悲観的なロールアップに戻る可能性があります。 信頼を最小化した最小のセットアップは、DAレイヤーライトノード+ロールアップライトノードを持つ楽観的な場合と同様に、ここにあります。

バリアント 6 : 集中型オプティミスティック ヘッダー プロデューサーと分散型証明者によるベースのハイブリッド ロールアップ

DA-LayerノードをRollupのアグリゲータとして動作させ、トランザクションの包含とソートの処理を委任します。

下の図からわかるように、ZK RollupとOptimistic Rollupはどちらも、DAレイヤーで同じ順序付けされたトランザクションバッチをRollup台帳のソースとして使用します。 これが、2つのプルーフシステムを同時に使用できる理由です:DAレイヤー上の順序付けされたトランザクションバッチは、プルーフシステム自体の影響を受けません。

ファイナリティについてお話ししましょう。 ロールアップ・フル・ノードの観点から見ると、DAレイヤーがfinalの場合、このバリアントのトランザクションを実行するだけでよいため、ロールアップはfinalです。 しかし、ライトノードのファイナリティの方が重要です。 中央集権的なヘッダープロデューサーが杭を打ち、ヘッダーに署名し、計算された状態ルートをDAレイヤーにポストすると仮定しましょう。

以前のバリアント4と同様に、ライトノードは楽観的に実行を信頼し、ヘッダープロデューサーが不正を犯したことを示す正直なフルノードからの不正の証拠を待ちます。 不正防止ウィンドウが終了すると、ロールアップ ライト ノードの観点からロールアップ ブロックが最終的なものになります。

重要な点は、ZKプルーフを取得できれば、不正プルーフウィンドウが終了するのを待つ必要がなくなることです。 1ラウンドの不正証明に加えて、詐欺の証拠をZKの証拠に置き換え、楽観的なヘッダープロデューサーから生成された悪意のあるヘッダーを却下することができます。

ライトノードが特定のロールアップトランザクションバッチに対応するZK証明書を受信すると、バッチがファイナライズされます。

今、私たちは迅速なソフトコミットメントと迅速なファイナリティを持っています。

バリアント6は、DAレイヤーと同じ検閲耐性を享受しています。 liveness の場合、L = L_da & (L_op ||L_pm)は、ライブネスの保証を強化したことを意味します。 中央集権的なヘッダー生産者またはプルーバー市場のいずれかに活性障害が発生した場合、他のスキームにフォールバックすることができます。

信頼が最小化された最小のセットアップは、DA レイヤー ライト ノード + ロールアップ ライト ノードです。

概要:

  1. シーケンサーをアグリゲーターとヘッダープロデューサーの 2 つの論理エンティティに分割します

  2. シーケンサーは、インクルード、順序付け、実行の 3 つの論理プロセスに分割されます。

  3. 悲観的なロールアップとベースのロールアップが重要です

  4. ニーズに応じて、プラグアンドプレイのアグリゲーターとヘッダープロデューサーを使用できます。

  5. この記事の各ロールアップ バリアントは、次の設計パターンに従っています。

最後に、いくつか考えがあります。 次の点について考えてみてください。

  • 従来のロールアップはこれにどのように適合しますか? (イーサリアムロールアップを参照)
  • すべてのバリアントで、アグリゲーターにインクルージョン+順序付けとヘッダープロデューサーの実行のみを行いました。 アグリゲーターがインクルードのみを行い、ヘッダープロデューサーが注文と実行を行う場合はどうなりますか? オンチェーンオークションを思い浮かべてください。 この3つを分離することは可能でしょうか?
  • 共有ヘッダープロデューサー/ヘッダープロデューサー市場とは何ですか?
  • MEVを取得するのは誰ですか? そして、それを取り戻すことはできますか?

免責事項:

  1. この記事は【Geek Web3】より転載したものですが、原題は「Celestia researcher analyzes 6 Rollup variants: Sequencer = aggregator + Header generator」、すべての著作権は原作者の【NashQ, Celestia Researcher】に帰属します。 この転載に異議がある場合は、 Gate Learn チームに連絡していただければ、迅速に対応いたします。
  2. 免責事項:この記事で表明された見解や意見は、著者のものであり、投資アドバイスを構成するものではありません。
  3. 記事の他言語への翻訳は、Gate Learnチームによって行われます。 特に明記されていない限り、翻訳された記事を複製、配布、盗用することは禁止されています。

シーケンス = アグリゲーター + ヘッダー プロデューサー

上級2/28/2024, 8:50:09 AM
この記事では、Rollupモデルを理解しやすく分析しやすくするために、Celestiaの研究者であるNashQがRollupのシーケンサーをアグリゲーターとヘッダープロデューサーの2つの論理エンティティに分割しました。 同時に、トランザクションの順序付けプロセスを、包含、順序付け、実行の 3 つの論理的なステップに分割しました。この分析的思考に導かれて、ソブリンロールアップの6つの主要な重要なバリエーションはより明確で理解しやすいものになります。 NashQは、さまざまなRollupバリアントの検閲耐性と活性性について詳細に議論し、最小信頼状態における各Rollupバリアントノードの最小構成(つまり、Trustless状態を実現するには、少なくともRollupユーザーが実行する必要のあるノードの種類)についても調査しました。
  • 転送された元のタイトル: Celestia researcher analyzes 6 Rollup variants: Sequencer=aggregator+Header generator

注: Rollup モデルの理解と分析を容易にする目的で、Celestia の研究者である NashQ は、Rollup Sequencer を Aggregator と Header Producer の 2 つの論理エンティティに分割しました。 同時に、トランザクションの順序付けプロセスを、包含、順序付け、実行の 3 つの論理的なステップに分割しました。

この分析的思考に導かれて、ソブリンロールアップの6つの主要なバリエーションはより明確で理解しやすいものになっています。 NashQは、さまざまなRollupバリアントの検閲耐性と活性性、および信頼最小化の状態における各Rollupバリアントノードの最小構成(つまり、トラストレス状態を実現するには、少なくともRollupユーザーが実行する必要があるノードの種類)について詳細に説明しました。

本記事は、イーサリアムコミュニティがロールアップモデルを分析する方法とは異なる、セレスティアの視点からロールアップを分析していますが、イーサリアムロールアップとセレスティアソブリンロールアップの相互関係の多さや、後者の影響力の高まりを考えると、イーサリアム愛好家にとっても非常に読み応えのある記事です。

ロールアップとは

ロールアップは、トランザクションデータを別のブロックチェーンに投稿し、そのコンセンサスとデータの可用性を継承するブロックチェーンです。

なぜここで「ブロック」を「トランザクションデータ」に変更しているのですか? ロールアップブロックとロールアップデータの違いを説明し、最小ロールアップには最初のバリアントのロールアップデータのみが必要であることをお示しします。

ロールアップブロックは、特定の高さのブロックチェーンを表すデータ構造です。 ロールアップデータとロールアップヘッダから構成されます。 また、ロールアップ データは、トランザクションのバッチまたはトランザクション バッチ間の状態の違いです。

バリアント 1 : ベース ペシミスティック ロールアップ

ロールアップを構築する最も簡単な方法は、ユーザーがトランザクションを別のブロックチェーンに投稿することから始まります。 このブロックチェーンをコンセンサスとデータ可用性レイヤーと呼ぶことにしますが、以下の図ではDAレイヤーと短縮します。 (注:イーサリアムコミュニティでよく参照されるレイヤー1に似ています)。

最初のバリアントでは、すべてのロールアップノードがブロックチェーン上のすべてのトランザクションを再生して、最新の状態を確認する必要があります。 悲観的なロールアップを作成しました。

ペシミスティック ロールアップは、ロールアップ内のすべてのトランザクションを再生して有効性をチェックするフル ノードのみをサポートするロールアップです。

しかし、この場合、シーケンサーは誰ですか? ロールアップ・フル・ノード自体以外のトランザクションを実際に実行しているエンティティはありません。 通常、シーケンサーはトランザクションを集約してロールアップヘッダーを生成しますが、この場合はヘッダーはありません。

議論を容易にするために、シーケンサーを 2 つの論理エンティティに分割し、アグリゲーターとヘッダー プロデューサーが区別します。 1 つのエンティティは状態を認識する必要があります (つまり、ヘッダーを計算するために状態を実行する必要があります) が、アグリゲーターはそれを集約できるようにするために状態を理解する必要はありません。

シーケンシングは、集約とヘッダー生成のプロセスです。

集計は、トランザクションを 1 つのバッチにバッチ処理するプロセスです。 トランザクションのバッチは、1 つ以上のトランザクションで構成されます。 (注: バッチは、ヘッダーを除くロールアップブロック内のデータの一部です)。

ヘッダー生産は、ロールアップヘッダーを作成するプロセスです。

ロールアップヘッダーはブロックに関するメタデータであり、少なくともそのブロック内のトランザクションへのコミットメントが含まれます。 (注: ここでのコミットメントとは、トランザクション処理結果の正確性に対するコミットメントを指します)。

上記の視点から、ロールアップの各コンポーネントの役割を誰が担うかがわかります。 まず、アグリゲーターの部分を見てみましょう。 前述の悲観的なロールアップにはヘッダー生成プロセスがなく、ユーザーはトランザクションをDAレイヤーに直接公開するため、DAレイヤーネットワークは基本的にアグリゲーターとして機能します。

ペシミスティック・ロールアップは、集計ステップをDAレイヤーに委任するロールアップの変形です。 シーケンサーはありません。 この種類のロールアップは、"ベースのロールアップ" と呼ばれることもあります。

ベースロールアップは、DAレイヤーと同じ検閲耐性と活性性を備えています(アクティビティは、ユーザーの要求に対するシステムの応答速度を測定します)。 このタイプのロールアップのユーザーが最小限の信頼状態(トラストレスに最も近い状態)を実現するには、少なくともDAレイヤーライトノードとロールアップフルノードを実行する必要があります。

バリアント 2: 共有アグリゲーターを使用したペシミスティック ロールアップ

共有アグリゲーターを使用した悲観的集計について説明しましょう。 このアイデアは、Evan Forbes が共有シーケンサーの設計に関するフォーラムの投稿で提案しました。 その重要な前提は、共有シーケンサーがトランザクションをシーケンスする唯一の正式な方法であるということです。Evan氏は、共有シーケンサの利点を次のように説明している。

「web2と同等のUXを解き放つために、共有シーケンサー[...]高速ソフトコミットメントを提供できます(注:あまり信頼できる保証ではありません)。 これらのソフト コミットメントは、トランザクションの最終的な順序付けを任意に約束し (つまり、トランザクションの順序が変更されないことを約束します)、状態の早期更新バージョンを作成するために使用できます (ただし、この時点ではファイナライズはまだ完了していません)。

ブロックデータがベースレイヤー(DAlayerを参照するs/b)に投稿されることが確認されるとすぐに、その状態は最終的なものと見なすことができます。

まだ悲観的なロールアップであるため、ロールアップのフルノードのみがあり、ライトノードはありません。 各ノードは、有効性を保証するためにすべてのトランザクションを実行する必要があります。 このシステムにはライトノードがないため、ロールアップヘッダー(ヘッダープロデューサー)は必要ありません。 (注:一般的に言えば、ブロックチェーンのライトノードは完全なブロックを同期させる必要はなく、ブロックヘッダーを受け取るだけです)

Rollup Header生成工程がないため、前述のRollup共有シーケンサは、Header生成の前提条件であるステータス更新のためのトランザクションを実行する必要はなく、トランザクションデータを集約する処理のみを含む。 ですから、私はこれを共有アグリゲーターと呼ぶことを好みます。

このバリアントでは、ロールアップ ユーザーは、信頼が最小化された状態で少なくとも以下を実行する必要があります。

DA レイヤーライトノード + 共有アグリゲーターネットワークのライトノード + ロールアップフルノード。

このとき、共有アグリゲーターネットワークのライトノードを介して、公開されたアグリゲーターヘッダー(ロールアップヘッダーを参照しない)を検証する必要があります。 前述したように、共有アグリゲーターはトランザクションソートのタスクを引き受けます。 公開されたアグリゲーターヘッダーには、DAレイヤーで公開されたバッチに対応する暗号化コミットメントが含まれています。

このようにして、ロールアップノードのオペレータは、DAレイヤーから受信したバッチが、他のアグリゲータではなく、共有アグリゲータによって作成されたことを確認できます。

(上記の内容は比較的曖昧なため、図をもう一度読むことができます)

インクルージョンとは、トランザクションがブロックチェーンに受け入れられるプロセスです。

注文とは、ブロックチェーン上で特定の順序で取引を配置するプロセスです。

実行は、ブロックチェーン内のトランザクションが処理され、その効果がブロックチェーンの状態に適用されるプロセスです。

共有アグリゲーターはインクルージョンと順序付けを制御するため、その検閲耐性を継承します。

L_ssが共有アグリゲータの活性度であり、L_daがDA層の活性度であると仮定すると、このスキームの活性度はL = L_da & L_ssとなります。 つまり、いずれかのシステムに活性障害が発生した場合、ロールアップにも活性障害が発生します。

わかりやすくするために、liveness をブール値として使用します。 共有アグリゲーターに障害が発生した場合、ロールアップを続行することはできません。 DAレイヤーに障害が発生した場合は、共有アグリゲーターのソフトコミットメントを続行できます。 それでも、共有アグリゲーターのコンセンサスとデータの可用性に依存しており、元のDAレイヤーよりも悪くなります。

上記のロールアップソリューションの検閲耐性を引き続き調べてみましょう。

このスキームでは、DA層は特定のトランザクションを検閲できません。 (注:トランザクションレビューでは、特定のトランザクションをチェーンにアップロードすることを拒否することがよくあります)。 打ち切ることができるのは、共有アグリゲーターが既に集計したロールアップ バッチ全体のみです。 (DAレイヤーに含めるバッチを拒否します)。

ただし、ロールアップのワークフローによると、共有アグリゲータがトランザクションバッチをDAレイヤーに送信すると、すでにトランザクションシーケンスが完了しており、異なるバッチ間の順序も決定されています。 したがって、DAレイヤーによるこの種のトランザクションレビューは、ロールアップの台帳のファイナリティを遅らせる以外の効果はありません。

要約すると、検閲抵抗の焦点は、システム内の情報の流れを1つのエンティティが制御または操作できないようにすることであり、ライブネスには、ネットワークの停止や敵対的なアクションが存在する場合でも、システムの機能と可用性を維持することが含まれると考えています。 これは現在の主流の学術的定義と矛盾しますが、私はまだ私が述べた概念の定義を使用します。

バリアント 3: ベース集計と共有集計によるペシミスティック ロールアップ

コミュニティは共有アグリゲーターの利点を享受していますが、私たちはそれに依存することは避け、DAレイヤーへのフォールバックを望んでいます。 注文を組み合わせ、ユーザーがDAレイヤーに直接トランザクションを送信できるようにします。 これは、ベースの集計と共有の集計を組み合わせたものです。

最終的な順序付けは、共有アグリゲータによって順序付けられたすべてのトランザクションと、その後のDAレイヤーブロックごとのすべてのベースのトランザクションとして解釈されると仮定します。 これをロールアップフォーク選択ルールと呼びます。

ここでは、集計は 2 段階のプロセスです。 まず、共有アグリゲーターが主導権を握り、いくつかのトランザクションを集約します。 次に、DAレイヤーは、ユーザーが直接送信したすでに注文されたバッチとトランザクションを集計します。

現在、検閲耐性の分析はより複雑になっています。 DA層ネットワークノードは、次のDA層ブロックが生成される前に、共有アグリゲータによって送信されたバッチを確認できます。 バッチ内のトランザクションデータがわかった後、DAレイヤーノードはMEV値を抽出し、ロールアップネットワーク上のアカウントでフロントランニングトランザクションを開始し、ロールアップ共有アグリゲータによって送信されたバッチを含める前にDAレイヤーブロックに含めることができます。

どうやら、3番目のタイプのロールアップバリアントのソフトコミットメントによって保証されるトランザクション注文のファイナリティは、上記の2番目のタイプのロールアップバリアントよりも脆弱です。 この場合、共有アグリゲータはMEV値をDAレイヤーノードに渡します。 これについては、MEVの儲かる検閲についての講演をご覧になることをお勧めします。

現在、ロールアップネットワークユーザがDAレイヤに直接送信したトランザクションを遅らせる「再編成ウィンドウ期間」機能など、DA層ネットワークノードがこのようなMEVトランザクションを実行する能力を低下させる設計ソリューションがいくつか登場しています。 Sovereign Labsは、Based Sequencing with Soft Confirmationsという設計案でこのことを詳しく説明しており、「優先シーケンサー」の概念が提案されています。

MEVは、選択したアグリゲータースキームとロールアップのフォーク選択ルールに依存するため、何もリークしないものもあれば、一部またはすべてのMEVをDAレイヤーにリークするものもありますが、それは別の日のトピックです。

ライブ性に関しては、このロールアップ設計は、共有アグリゲーターを持つだけの場合よりも優位に立っています。 共有アグリゲータに活性障害が発生した場合でも、ユーザーはDAレイヤーにトランザクションを送信できます。

最後に、信頼を最小化した最小のセットアップ、つまり DA レイヤー ライト ノード + 共有アグリゲーター ライト ノード + ロールアップ フル ノードについて説明します。

この時点では、ロールアップフルノードの共有アグリゲーターのヘッダーを検証して、フォーク選択ルールのトランザクションバッチを区別できるようにする必要があります。

バリアント 4: 集中型ヘッダープロデューサによるベースのオプティミスティックロールアップ

集中型ヘッダープロデューサーを備えたベースドオプティミスティックロールアップと呼ばれるバリアントを使用して、いくつかのライトノードのクックを始めましょう。 この設計では、DA-Layerを使用してトランザクションを集約しますが、ロールアップライトノードを有効にするために集中型ヘッダープロデューサーを導入しています。

ロールアップライトノードは、1回の不正防止ラウンドを通じて、ロールアップトランザクションの有効性を間接的に検証できます。 ライトノードは、ロールアップヘッダーのジェネレータに対して楽観的な態度を取り、不正防止ウィンドウ期間が終了した後に最終確認を行います。 もう一つの可能性は、ヘッダージェネレータが誤ったデータを送信したことを知りながら、正直なフルノードから不正の証拠を受け取ることです。

1ラウンドの不正証明がどのように機能するかについては、この記事の範囲を壊すため、詳しく説明しません。 ここでの利点は、不正防止期間を7日間からある程度に短縮できることですが、これはまだ決定されていませんが、桁違いに小さくなります。 ライトノードは、すべてが単一のプルーフに捕捉されるため、異議申し立てを待つことなく、P2Pレイヤーを介して不正プルーフを受け取ることができます。

DA-Layerをアグリゲーターとして使用し、検閲耐性を継承しています。 インクルージョンと順序付けを行います。 中央集権的なヘッダープロデューサーは、DAレイヤーから正規の順序を読み取り、そこから有効なヘッダーを構築できます。 集中型ヘッダープロデューサーは、ヘッダーと状態のルートをDAレイヤーにポストします。 これらの州のルーツは、このコミットメントに対する詐欺の証拠を作成するために不可欠です。 アグリゲーターはインクルードと順序付けを行い、ヘッダープロデューサーは実行を行います。

DA-Layer(現時点ではRollupのアグリゲーターとしても機能)は十分に分散化されており、優れた検閲耐性を備えていると想定されています。 また、ヘッダープロデューサは、アグリゲータによって発行されたロールアップトランザクションシーケンスを変更できません。 ヘッダー プロデューサーが分散化されている場合、唯一の利点は活性の向上ですが、Rollup の他のプロパティは最初のバリアントである Based Rollup と同じです。

ヘッダー プロデューサーに活性障害が発生した場合、ロールアップにも活性障害が発生します。 ライトノードはチェーンをたどることができませんが、フルノードは必要に応じてチェーンをたどり、バリアント1で説明したように、ベースの悲観的なロールアップにフォールバックすることができます。明らかに、バリアント 4 で説明されている信頼の最小化の最小構成は次のとおりです。

DA-Layerライトノード+ロールアップライトノード。

バリアント 5 : 分散型証明者市場による ZK ロールアップに基づく

ペシミスティック ロールアップ (ベース ロールアップ) とオプティミスティック ロールアップについて説明しましたが、次は ZK ロールアップを検討します。 先日、Toghrul氏はアグリゲータ(シーケンサ)とヘッダプロデューサ(プローバー)の分離(ゼロ知識ロールアップにおけるシーケンサとプローバーの分離)についてプレゼンテーションを行った。 このモデルでは、トランザクションを State Diff ではなく Rollup データとして公開する方が扱いやすいため、前者に焦点を当てます。 バリアント5は、分散型プルーバー市場を備えたベースのzkロールアップです。

ここまでで、ベースのロールアップの機能についてよく理解できたはずです。 バリアント 5 は、アグリゲーターの役割を DA-Layer ノードに委任し、DA-Layer ノードが包含と順序付けの作業を実行します。Sovereign-Labsのドキュメントから引用しますが、これは彼らの設計のライフサイクルを説明する素晴らしい仕事をしています。 バリアント5に合うように少し調整します。

ユーザーは、新しいデータの BLOB を L1 チェーンに投稿します。 BLOB が L1 でファイナライズされるとすぐに、論理的にファイナルになります。 L1 ブロックがファイナライズされた直後に、ロールアップのフル ノードがブロックをスキャンし、関連するすべてのデータ BLOB を出現順に処理して、新しいロールアップ状態ルートを生成します。 この時点で、ブロックはすべてのフルノードの観点から主観的に確定されます。

この設計におけるヘッダーの生産者は、分散型プルーバー市場です。

証明ノード(ZKVM内で実行されるフルノード)は、DAブロックをスキャンしてすべてのバッチを順番に処理し、証明を生成してチェーンに投稿するという、フルノードとほぼ同じプロセスを実行します。 (ロールアップが証明者にインセンティブを与えたい場合は、証明をチェーンに投稿する必要があります - そうでなければ、どの証明者が特定のバッチを最初に処理したかを判断することは不可能です)。 特定のバッチのプルーフがチェーンに投稿されると、バッチはライトノードを含むすべてのノードに対して主観的に最終的になります。

(多くの概念が関係しているため、スケマティック ダイアグラムをもう一度見ることができます)

バリアント5は、DAレイヤーと同じ検閲耐性を享受しています。 分散型証明機市場は、DA層が正規の順序を決定するため、取引を検閲することはできません。 ヘッダープロデューサーを分散化させたのは、活性を高め、インセンティブ市場を創出するためだけです。 ここでの活性度は、L = L_da & L_pm (プルーバー市場) です。 プルーバー市場のインセンティブがずれていたり、活性障害があったりすると、ライトノードはチェーンをたどることができませんが、ロールアップフルノードは必要に応じてチェーンに追従し、ベースの悲観的なロールアップに戻る可能性があります。 信頼を最小化した最小のセットアップは、DAレイヤーライトノード+ロールアップライトノードを持つ楽観的な場合と同様に、ここにあります。

バリアント 6 : 集中型オプティミスティック ヘッダー プロデューサーと分散型証明者によるベースのハイブリッド ロールアップ

DA-LayerノードをRollupのアグリゲータとして動作させ、トランザクションの包含とソートの処理を委任します。

下の図からわかるように、ZK RollupとOptimistic Rollupはどちらも、DAレイヤーで同じ順序付けされたトランザクションバッチをRollup台帳のソースとして使用します。 これが、2つのプルーフシステムを同時に使用できる理由です:DAレイヤー上の順序付けされたトランザクションバッチは、プルーフシステム自体の影響を受けません。

ファイナリティについてお話ししましょう。 ロールアップ・フル・ノードの観点から見ると、DAレイヤーがfinalの場合、このバリアントのトランザクションを実行するだけでよいため、ロールアップはfinalです。 しかし、ライトノードのファイナリティの方が重要です。 中央集権的なヘッダープロデューサーが杭を打ち、ヘッダーに署名し、計算された状態ルートをDAレイヤーにポストすると仮定しましょう。

以前のバリアント4と同様に、ライトノードは楽観的に実行を信頼し、ヘッダープロデューサーが不正を犯したことを示す正直なフルノードからの不正の証拠を待ちます。 不正防止ウィンドウが終了すると、ロールアップ ライト ノードの観点からロールアップ ブロックが最終的なものになります。

重要な点は、ZKプルーフを取得できれば、不正プルーフウィンドウが終了するのを待つ必要がなくなることです。 1ラウンドの不正証明に加えて、詐欺の証拠をZKの証拠に置き換え、楽観的なヘッダープロデューサーから生成された悪意のあるヘッダーを却下することができます。

ライトノードが特定のロールアップトランザクションバッチに対応するZK証明書を受信すると、バッチがファイナライズされます。

今、私たちは迅速なソフトコミットメントと迅速なファイナリティを持っています。

バリアント6は、DAレイヤーと同じ検閲耐性を享受しています。 liveness の場合、L = L_da & (L_op ||L_pm)は、ライブネスの保証を強化したことを意味します。 中央集権的なヘッダー生産者またはプルーバー市場のいずれかに活性障害が発生した場合、他のスキームにフォールバックすることができます。

信頼が最小化された最小のセットアップは、DA レイヤー ライト ノード + ロールアップ ライト ノードです。

概要:

  1. シーケンサーをアグリゲーターとヘッダープロデューサーの 2 つの論理エンティティに分割します

  2. シーケンサーは、インクルード、順序付け、実行の 3 つの論理プロセスに分割されます。

  3. 悲観的なロールアップとベースのロールアップが重要です

  4. ニーズに応じて、プラグアンドプレイのアグリゲーターとヘッダープロデューサーを使用できます。

  5. この記事の各ロールアップ バリアントは、次の設計パターンに従っています。

最後に、いくつか考えがあります。 次の点について考えてみてください。

  • 従来のロールアップはこれにどのように適合しますか? (イーサリアムロールアップを参照)
  • すべてのバリアントで、アグリゲーターにインクルージョン+順序付けとヘッダープロデューサーの実行のみを行いました。 アグリゲーターがインクルードのみを行い、ヘッダープロデューサーが注文と実行を行う場合はどうなりますか? オンチェーンオークションを思い浮かべてください。 この3つを分離することは可能でしょうか?
  • 共有ヘッダープロデューサー/ヘッダープロデューサー市場とは何ですか?
  • MEVを取得するのは誰ですか? そして、それを取り戻すことはできますか?

免責事項:

  1. この記事は【Geek Web3】より転載したものですが、原題は「Celestia researcher analyzes 6 Rollup variants: Sequencer = aggregator + Header generator」、すべての著作権は原作者の【NashQ, Celestia Researcher】に帰属します。 この転載に異議がある場合は、 Gate Learn チームに連絡していただければ、迅速に対応いたします。
  2. 免責事項:この記事で表明された見解や意見は、著者のものであり、投資アドバイスを構成するものではありません。
  3. 記事の他言語への翻訳は、Gate Learnチームによって行われます。 特に明記されていない限り、翻訳された記事を複製、配布、盗用することは禁止されています。
今すぐ始める
登録して、
$100
のボーナスを獲得しよう!