Rollupの分散化:Aztecの分散型シーケンサー方案の解析

ギーク Web3
2023-07-28 12:43:52
コレクション
Rollupが注目されて以来、シーケンサーの分散化は常にEthereum/Celestiaコミュニティの関心の的であり、Layer2の研究開発において越えがたい大きな壁でもあります。この点について、さまざまなRollupの提案がノードの分散化に関するアイデアを提示しており、このテーマに対して非常に広い想像の余地を提供しています。

著者:0xhhh、EthStorage

編集:Faust、『極客web3』

Rollupが注目を集めて以来、シーケンサーの去中心化は常にEthereum/Celestiaコミュニティの関心の的であり、Layer2の研究開発における越えがたい大きな壁でもあります。この点について、さまざまなRollupソリューションがノードの去中心化に関するアイデアを提案しており、このテーマには無限の想像力が広がっています。

本記事の著者は、著名なZKRollupプロジェクトであるAztecを例に取り、最近Aztec Labsが提案したB52およびFernetという2つの提案を切り口に、読者にZKRがどのようにシーケンサーのノードの去中心化を実現するかを解説します。

提案B52:パーミッションレスのシーケンサーソリューション

提案B52は以下の目標を実現することを目指しています(理想的には):

  1. L2ノード自身が毎ラウンドのプロポーザーを選出する去中心化されたシーケンサーネットワーク
  2. ハードウェア要件が低い去中心化されたプロバーネットワーク
  3. Rollup全体が優れた検閲耐性を持つ
  4. L2が生成するMEVの価値はL2ノードが取得する
  5. L2ブロックがDA層に提出されるとき、比較的有効な最終性を得ることができ、不可逆的な最終性はValidity Proof(有効性証明)が提出されるまで待つ必要がある
  6. L2トークンは良好な経済モデルを持つことができる
  7. L2ブロックと取引データはL2のP2Pネットワーク内で伝播する
  8. L2はL1のセキュリティを継承する(B52提案はRollup構造の仮定であり、プロポーザーは実質的にシーケンサーです)このソリューションは、全体のL2出力プロセスを3つの時間段階に分けます:

Block Proposal Window (BPW)

Block Acceptance Window (BAW)

State advances

その中で、BPW(ブロック提案)段階は、複数のシーケンサーが異なるブロックを提案し競争し、プロバーが特定の候補ブロックに投票するプロセスです。

BAW(ブロック採用)は、プロバーがブロックの有効性証明Validity Proofを構築し、提出するプロセスです。

Block Proposal Window(ブロック提案段階):

BPWはさらにBlock Proposal、Block Voting、Aggregationの3つの段階に細分化できます。

(Block Proposal Windowのフローチャート) Block Proposal (BP)段階では、誰でも取引を収集し、自分のBP内容をブロードキャストできます。BP内容は3つの部分で構成されます:txs order hash、prover reward percentage、burn token amount txs order hash:プロポーザーはL2の取引プール(mempool)から最も価値のある取引を選択し、順序を付け、その取引のハッシュ値を自分が構築したブロックに入れます。

prover reward percentage:シーケンサーがプロバーに提供するブロック報酬の割合

burn token amount:プロポーザーが提案するL2ネイティブトークンの数量、その後、自分が提案したBPをL2 P2Pネットワークに送信します。

Block Voting投票段階: プロバーはP2Pネットワーク内で異なるプロポーザーが提案したBPを受け取った後、自分が最も多くの報酬を得られるBPに投票します。ただし、投票の構成は非常に特異です:

Vote ={ BlockHash , Index of Pro of Tree }

BlockHashはプロバーが投票する提案のハッシュであり、Index of Pro of Treeはプロバーが構築に参加するPro of Treeの葉のインデックス値です(後で説明します)。

Aggregation集約:プロポーザーはL2 P2Pネットワーク内でプロバーたちのBPに対する投票を収集し、それを集約してBPに入れ、L1に提出します(各BPは一般的に自分に関連する投票記録のみを含みます)。 ここで強調すべきは、BPが選ばれRollup台帳に組み込まれるための前提条件です:

最高のスコアを持つこと:

SCORE (y) = NUMPROVERS (x)^3 * BURNBID (z)^2

NUMPROVERS (x)はそのBPが得たプロバーの投票数、BURNBIDはそのBPが提案したL2トークンの数量です。BURN_BIDが高いほど、BP提案者が最終的に得る報酬は少なくなるため、この数値は適切に設定する必要があります。

また、このBPはBlock Proposal Windowが終了する前にL1に提出される必要があり、対応する有効性証明ProofはBlock Acceptance Windowが終了する前にL1にアップロードされる必要があります。

注意が必要なのは:BPのスコア計算において、 投票数の比重が最も大きく、次にburn tokenの数量です。同時に、B52ソリューションは複数のプロポーザー(実際にはシーケンサー)が有効なBPの枠に対して競争することを許可します。

B52ソリューションは、プロポーザー(シーケンサー)が自分のBP内でburn tokenの数量を指定するだけで(EIP1559の方式に似て)、事前にトークンをステークする必要はありません。これにより、ネットワークはよりパーミッションレス(無許可)になり、L2のネイティブトークンがデフレを生むのに役立ちます。

さらに、BPには完全な取引データは含まれず、取引シーケンスのハッシュのみが含まれます。これはEthereumのPBSソリューションと同様の理由で、MEVが他のプロポーザーに覗かれたり、先を越されたりするのを避けることを目的としています。

Block Acceptance Window(ブロック採用段階)の詳細: (Block Acceptance Windowのフローチャート、図中にはProof Acceptanceと記載されています)Block Proposal Windowが終了した後、プロバーは彼らのBPに対応する完全な取引データを公開する必要があります。プロバーが投票したBPが選ばれた場合(スコアが最も高い、L1コントラクトで確認可能)、彼らは投票時に与えられた Index of Pro of Treeに対応するSub Proof Treeを構築する必要があります。 仮にAztecのブロックが2^13=16384の取引数を含み、2048のプロバーがいる場合、各プロバーは2^3=8の取引から構成されるサブプルーフツリーを構築します。その後、プロバーは自分が構築したサブプルーフツリーをL2 P2Pネットワークにブロードキャストします。プロポーザーはそれを受け取った後、すべてのサブプルーフツリーを1つのブロックプルーフに集約します 次に、プロポーザーは集約された証明をL1のRollupコントラクトに提出します。コントラクトはこの証明と対応する状態遷移結果の正確性を検証します。ここで注意が必要なのは、プロバーが故意に証明を提出しない場合、プロポーザーが約束したブロック報酬の配当を得られないだけでなく、スラッシュされることです。プロバーになるためには事前にトークンをステークする必要があります。したがって、プロポーザー(シーケンサー)とは異なり、 プロバーはパーミッションレスではありません

State Advances(状態推進段階)の詳細:

Block Acceptance Windowが終了した後、Rollupコントラクトスコアが最も高いブロックをRollup台帳に組み込み、 ブロック報酬Rewardをプロポーザー(シーケンサー)が事前に宣言した割合に従って、それぞれプロポーザーとプロバーに送信します。

以上がAztecのB52ソリューションです。しかし、著者はB52提案にはいくつかの潜在的な問題があると考えています:

問題1:もしスコアが最も高いブロックのvalidity proofが不完全である場合。提案で示された解決策は、プロポーザーが50%の証明しか提供しなかった場合、彼は50%のブロック報酬しか得られないというもので、これによりプロポーザーが故意に完全な証明を提出しない動機がなくなります。同時に、プロバー自身も直接コントラクトに証明を提出できます。

提案の説明によれば、完全な取引のvalidity proofがないブロックを受け入れることができます。この点は実際には不合理です:なぜなら、zkrollupはvalidity proofを提供する際に初めてこのブロックに対応する新しい状態が有効であると宣言するからです。

もしプロポーザーが最終的にL1に提出した集約証明が特定の取引の証明を欠いている場合、その取引の後に発生したすべての取引の状態遷移証明は成立しないことは明らかです(取引は順次実行され、状態依存があるため)、このブロックに対応する新しい状態が有効であることを確認することはできません。

したがって、この場合、合理的な方法はすべての取引の証明が提出されるまで無限に待機するBlock Acceptance Windowに入るべきです。

問題2:もしスコアが最も高いブロックが不正なブロックである場合(B52ソリューションでもこの点は説明されていません)。BPは単に取引シーケンスのハッシュを含むため、悪意のあるプロポーザーは実際に問題のある取引、例えば二重支払い取引を故意に構築することができます。この場合、L1コントラクトに誰でも不正な証明を提出できる関数を追加する必要があります。この不正な証明は、スコアが最も高いBPが不正なブロックであることを証明するためのものです。

このような通報には報酬が必要であり、プロポーザーがコントラクトに送信したburn tokenを不正な証明を提出した通報者ノードに報酬として与えることができます。

興味深い考察:叔ブロックと余分なプロバー作業について:B52ソリューションは、実際には各ラウンドでスコアが最も高く有効なBPが出現した後、そのラウンドで出現した他のBP(すでに完全な証明が提出されたもの)を叔ブロックとして一定の叔ブロック報酬を分配します

これは実際にETH POWコンセンサスメカニズムの手法を踏襲しており、計算能力の過度な集中を避けるために、未採用のブロック提案者(マイナー)に出力報酬の一部を分配する必要があります。これにより、小規模マイニングプールや個人マイナーの利益を保障し、大規模マイニングプールによる計算能力の独占を避けることができます。したがって、Ethereumで良好なパフォーマンスを示した叔ブロックメカニズムを採用することは非常に賢明な選択です。

B52提案のRollup去中心化における意義:プロポーザーは去中心化されており、ステークが不要で、参入障壁が低い;しかし、最も価値のあるブロックを自分で構築し、他のプロバーの投票を収集し、すべての証明を集約する必要があるため、実際にはプロポーザーのハードウェアのハードルは提案に記載されているほど低くはありません(例えば、帯域幅はそれほど低くないかもしれません)。

したがって、最終的には比較的中心化されたネットワークになるでしょう。MEV - Boost Builderのように、最終的にブロックを生成できるプロポーザーは、しばしばMEVを捕捉するのが最も得意なブロックビルダーです。

同時に、B52ソリューション内のプロバーは資産をステークする必要がありますが、単にサブツリー証明を生成するだけで済むため、完全なブロック証明を生成する必要があるソリューションと比較して、プロバーの去中心化の程度はより良好です(ハードウェア要件を低くすることができます)。

活性Liveness:全体のネットワークのLivenessは良好です。なぜなら、L2には取引と投票/BPをブロードキャストするための独自のP2Pネットワークがあり、シーケンサーとプロバーは比較的去中心化されているからです。しかし、上記で述べた2つの問題を解決する必要があります。1つはスコアが最も高いブロックが必ず合法なブロックであること、もう1つは完全なブロック証明がL1に提出されるまで新しい状態に入ることができないということです。したがって、より効果的なインセンティブメカニズムが必要であり、特定のtx証明が欠落しているためにRollupネットワーク全体が正常に機能しない(停止する)ことを避ける必要があります。

検閲耐性Censorship Resistance:もし誰でもブロック提案BPを発表でき、プロポーザーだけがブロック証明を提出できることが保証されれば、ネットワークは非常に良好な検閲耐性を持つことになります。

最終性Finality:L2の最終性はネットワークのLivenessと密接に関連しています。なぜなら、最終的な検証された最終性はブロック証明の提出を待つ必要がありますが、実際にはスコアが最も高いBPに対応するブロック内容を信じることもできます(悪意のある取引が含まれていない限り)。

このブロックはBlock Acceptance Windowの開始時に公開されます。つまり、ユーザーとしては、単に1つのBlock Proposal Windowの時間を待つだけで、提出した取引が所在するブロックが採用されることになります。

L1のセキュリティの継承:有効性証明を提出して状態を更新するL2として、L1のセキュリティを継承することができます。

提案Fernet:VDFを導入して合法的なプロポーザーを選抜

Fernetソリューションの概要:VDFを通じて、各ラウンドの出力周期内で委員会(シーケンサーのノード集合)内の異なるノードに予測スコアを設定し、最終的にスコアが最も高いシーケンサーが提案したブロックが有効なブロックとなります。

まず、委員会に参加するには? 実際にはL1に16ETHをステークする必要があります。ステーク操作が完了した後、4つのL1ブロックを待ってからシーケンサー委員会に参加します。シーケンサー委員会から退出するには、L1コントラクトのUnstake関数を呼び出す必要があり、その後3日間待たなければ自分のステークした残額を取り戻すことができません。

次に、VDFとは何か?Verifiable Delay Function(可検証遅延関数)は、厳密な直列実行特性を満たす数学関数であり、いくつかの計算ステップを実行し、少なくとも予測可能な時間を消費します。私たちはVDFから算出された数値をScoreと呼び、それは均一な正規分布を満たします。したがって、シーケンサーがVDFスコアを算出した後、合法的なプロポーザーとして選ばれる確率を判断できます。

シーケンサーのVDF計算は次のようになります:

Score = VDF(privatekey, public inputs)

public inputs = { current block number, randao }

randaoは、シーケンサーが将来のすべてのブロックの高さに対して自分のVDFスコアを事前に計算するのを防ぐためのランダム数です。

Fernetの全体のプロセスは主に3つの段階に分かれます:

  1. Proposal Phase
  2. Proving Phase
  3. Finalization

Proposal Phase:PROPOSALPHASEL1_BLOCKS = 2 Ethereumブロック(この段階は2つのL1ブロックの時間を維持します)

この段階が始まると、各シーケンサーはVDFを使用して現在の出力高さに対応するVDFスコアを算出します。シーケンサーが自分のVDFスコアが今回のブロックの出力権を獲得する可能性が高いと考えた場合(スコアが正規分布を満たすと仮定)、彼はL1のRollupコントラクトにProposalを提出します。Proposalには取引シーケンスのハッシュ、どの以前のL2ブロックを指すかが含まれます。

unproven block:RollupコントラクトにProposalを提出したブロックの内容。次に、シーケンサーは unproven blockに対応するブロック内容と VDFの証明を L2のP2Pネットワークに送信する必要があります。

Proving Phase:PROVINGPHASEL1_BLOCKS= 50 L1ブロック(この段階は50のL1ブロックを維持します、約10分)

プロバーはL2のP2Pネットワークからすべてのブロック内容に対応する取引を受け取り、VDFスコアが高いブロックのために証明を構築します。証明の構築は、複数のプロバーが並行して協力する方式(B52ソリューションに似ています)で行われます。

したがって、シーケンサーは最終的に異なる取引に対応する証明を集約して1つのブロック証明(VDF証明を含む)をL1のRollupコントラクトに提出する必要があります。誰でもすでに提出されたブロック証明のブロック内容をRollupコントラクトに提出できます。

Finalization:ブロックを最終化するためにL1の取引を提出する必要があります。最終化可能なブロックは、ブロック内容とブロック証明を提出し、指す前のブロックが最終化されている必要があります。上記の条件を満たすことに加えて、最高のスコアを持っている必要があります。

(パイプライン式出力プロセス、前のブロックの提案段階が終了すると、次のブロックの提案段階が始まり、以前のブロックの証明段階が終了するのを待つ必要はありません)

パイプライン出力メカニズム:Fernetはパイプライン出力メカニズムを採用しています。第Nブロックの提案段階が終了すると、第N+1ブロックの提案が始まります(Aptosなどのパブリックチェーンでも類似のアプローチがあります)。しかし、第N+1ブロックの場合、第Nブロックが最終化されるのを待つ必要があり、その後L1の最終ブロック取引を提出し、検証を通過して最終ブロックとなります。

潜在的な攻撃の次元:もしVDFスコアが最も高いシーケンサーが故意にL2 P2Pでブロック内容をブロードキャストしない場合、ブロックの再編成が発生する可能性があります。

再編成されたL2ブロックの数の計算:1 + PROVINGPHASEL1BLOCKS / PROPOSALPHASEL1BLOCKS = 1 + 50 / 2 = 26ブロック

解決策:叔ブロックメカニズムを追加して、各L2スロット(出力時隙)に完全な候補ブロックが1つだけ存在することを避けます。

Fernetの去中心化における意義シーケンサーは16ETHをステークすることでシーケンサー委員会に参加し、参入障壁は高くはない(しかし低くもない)。プロバーは何のステークも必要なく、しかしプロバーが証明を生成しない場合、罰則はありません。これはB52ソリューションとは基本的に反対のものです。

活性Liveness:全体のネットワークのLivenessは保証されます。なぜなら、VDF+叔ブロックメカニズムは各ラウンドで1人以上の出力者がいることを保証できるからです。

MEV:MEVの考慮は最も特異であり、このソリューションはPBSを導入する計画です。したがって、シーケンサーが高スコアのVDFスコアを計算した後、直接ブロックビルダーに依頼してより価値のあるブロックを構築できます。

検閲耐性Censorship Resistance:FernetもEthereumと同様のPBSメカニズムを採用するため、本質的にFernetの検閲問題はEthereum PBSの検閲問題と同等です。

ChainCatcherは、広大な読者の皆様に対し、ブロックチェーンを理性的に見るよう呼びかけ、リスク意識を向上させ、各種仮想トークンの発行や投機に注意することを提唱します。当サイト内の全てのコンテンツは市場情報や関係者の見解であり、何らかの投資助言として扱われるものではありません。万が一不適切な内容が含まれていた場合は「通報」することができます。私たちは迅速に対処いたします。
banner
チェーンキャッチャー イノベーターとともにWeb3の世界を構築する