序文
シーケンサーは、イーサリアム拡張計画ロールアップの中核コンポーネントの 1 つであり、トランザクションの順序付けと、ブロックの作成、トランザクションの受け入れ、トランザクションの並べ替え、トランザクションの実行、トランザクション データの送信などの関連タスクの実行を担当します。イーサリアム ネットワーク上のレイヤー 2 ソリューションの継続的な増加とそのエコシステムの精力的な発展に伴い、レイヤー 2 の収益モデルと集中化の問題に対する注目が高まっています。特にロールアップでは、仕分け機の分散化をどのように実現するか、仕分け機の利益分配の仕組みが皆の関心事となっています。
ソーターとは何ですか?
シーケンサーは、名前が示すように、トランザクションのソートを担当する役割です。ビットコイン ネットワークでは、トランザクションの順序付けの責任はマイナーにあり、イーサリアム ネットワークでは、この責任はノードの集合にあります。これらの役割は固定されていませんが、コンセンサス メカニズムを使用して、トランザクションの順次実行に参加する権利を誰が持つかを決定します。
現在、主流のロールアップ ソリューションのほとんどは、集中型の単一ソーターを実行しています。レイヤ 2 (L2) のユーザーのトランザクションは、最初にメモリ プールに入ります (この時点では、トランザクションは順序が狂っています)。シーケンサーは、これらのトランザクションを並べ替えて、順序付けられたバッチのセットに圧縮し、イーサリアムのデータ可用性 (DA) レイヤーに送信します。

集中化 VS 分散化



分散型ソータートラックの概要
分散型ソーターは 2 つの方法で実装できます。1 つは Rollup プロジェクト自体によって開発され、もう 1 つはサードパーティ サービスの助けを借りて開発されます。サードパーティを使用して分散型シーケンサーを実装することは、多くの場合、Sequencing-as-a-Service と呼ばれます。
現在、Espresso、Astria、SUAVE、Radius など、分散型ソーター ソリューションに焦点を当てた複数のプロジェクトがあります。実装方法は異なりますが、目的はソーターの分散化と信頼性を向上させることです。
エスプレッソ
Espresso ソーターのソート メカニズムでは、L2 トランザクションは大まかに次のライフ サイクルを経ます。
- トランザクション送信:第 2 層ネットワーク上のユーザー トランザクションは、API を通じてロールアップ サーバーに送信されます。 
- トランザクションのソート:トランザクションがメモリ プールに入った後、ソーターは HotShot コンセンサス選択を通じてトランザクションをソートし、ブロックに含めます。 
- トランザクションのブロードキャストと確認:ソーターはソートされたトランザクションをブロードキャストし、他のノードが HotShot コンセンサスを通じてコンセンサスに達してブロックを生成し、トランザクションが実行されます。同時に、ソフトコミットメントメカニズムにより、迅速なトランザクション確認が提供されます。 
- ブロック コミットメント:シーケンサーは、トランザクションとそのコンセンサス証明書 (QC: クォーラム証明書) を含むブロック コミットメントを L1 シーケンサー コントラクトに送信して保存し、ブロックがコンセンサスを通じてソフト ファイナリティに達したことを証明します。 
- ステータスの更新:ブロックを実行したロールアップ ノードは、新しいロールアップ ステータスを L1 に送信します。 zkRU(ゼロ知識ロールアップ)の場合は有効性証明書が必要ですが、ORU(最適化ロールアップ)の場合はチャレンジ期間が入ります。 
- 状態の検証: L1 ロールアップ コントラクトは、シーケンサー コントラクトによって送信された QC を検証することによって、状態の更新の有効性をチェックします。 

このプロセスは次のように単純化して理解できます。
- トランザクションの並べ替えとブロックの作成:一連のシーケンサーの中から、HotShot コンセンサス メカニズムを通じてシーケンサーが選択されます。このメカニズムは、ロールアップ トランザクションを並べ替え、これらのトランザクションをブロックに含める役割を果たします。 
- コンセンサスとブロックのコミットメント:ブロックが「最終」となるには、他のロールアップ ノードによって署名され、コンセンサス (HotShot ノードの少なくとも 2/3 が同意) に達する必要があります。次に、関連するブロック コミットメントと新しいロールアップ ステート ルートが検証のために L1 ベース レイヤに送信されます。 
- 迅速な確認とファイナリティ:引用符内の「ファイナリティ」とは、ロールアップ トランザクションをより迅速に確認し、遅延を減らし、ユーザー エクスペリエンスを向上させることを意味します。ただし、ロールアップ トランザクションは最終的に L1 ベース レイヤによって検証される必要があります (zkRU は証明書の有効性を検証する必要があり、ORU はチャレンジ期間の終了を待つ必要があります)。 L1 によるトランザクションの検証に問題がなければ、ロールアップ トランザクションは真に最終的なものになります。 
- ロールバックの可能性: L1 検証でトランザクションが無効であることが判明した場合、生成された関連する L2 ブロックはロールバックされます。したがって、トランザクションを迅速に確認できるようにするのが「ファイナリティ」であり、イーサリアムの安全性を継承するのがファイナリティです。 
アストリア
Astria は、汎用のパーミッションレス分散ソーターを提供する立場にあり、さまざまなロールアップにすぐに使える共有ソーター サービスを提供します。
動作機構
Astria の分散型シーケンサーは、トランザクションの順序付け権限を分散させることでシーケンサーの特権を軽減することを目的として、Espresso シーケンサーと同様に動作します。具体的には、Astria はソーター用に 2 つのローテーション メカニズムを提案しています。
- リーダーの回転:これは、所定のルールまたは時間間隔に従ってシーケンサー間でリーダーを回転させる単純な回転メカニズムであり、それによってソート機能が分散されます。 
- Byzantine Fault Tolerance (BFT) コンセンサス アルゴリズム:これは、悪意のあるノードの存在下でもコンセンサスに達することを可能にする、より複雑で安全なメカニズムです。このアルゴリズムを通じて、複数のシーケンサーが共同で意思決定に参加し、一定数のノード障害や攻撃が発生した場合でもシステムが正常に動作できるようにします。 
リーダーのローテーション
選出されたソーターがセットを形成し、セット内のソーターが順番にロールアップ トランザクションをソートします。この方法は、単一の仕分け者がトランザクションを仕分ける権利を長期間独占するという問題を回避し、ユーザーの継続的な検閲という隠れた懸念をある程度解決します。

優しい
SUAVE は、Flashbots によって開発された分散型のプラグアンドプレイ共有シーケンサー ソリューションです。 SUAVE はユニバーサル プラットフォームとして、さまざまな L1/L2 ネットワークにメモリ プール管理と分散ブロック構築機能を提供できます。従来の共有シーケンサー設計とは異なり、SUAVE チェーンはブロック「入札」メカニズムを通じてトランザクションの順序付けを実装する EVM 互換チェーンです。
SUAVE アーキテクチャ
SUAVE のアーキテクチャは、ユニバーサル プリファレンス環境、最良執行市場、分散型ブロック構築という 3 つのコア コンポーネントで構成されています。
- 好ましい環境 
- SUAVE の推奨環境は、単純なトランザクションから複雑なイベントまで、さまざまなニーズを幅広くカバーします。ユーザーのトランザクション設定はトランザクションの形でメモリ プールに反映され、設定環境はこれらの設定を集約するパブリック メモリ プールとして機能します。 SUAVEが提供するユニバーサルプリファレンス環境は、マルチチェーンユーザーのプリファレンスをオープンかつ透明にするだけでなく、情報の非対称性を効果的に軽減し、クロスチェーンMEVの問題をある程度緩和します。 
- 約定市場 
- 実行マーケットは、SUAVE のメモリ プールをリッスンし、相互に競合する責任を負う実行者のグループで構成されます。競争により、これらのアクターはユーザーの好みに合わせて最適な実行を提供するようになります。これらの実行者は、「入札」手法を通じてユーザーのニーズを実現する参加者とみなすことができ、生成された MEV をできるだけユーザーに還元するよう努めます。 
- 分散型ブロック構築 
- 最後に、収集された優先データと最適な実行パスに基づいて、分散型ブロック構築ネットワークがこれらのトランザクション情報をブロックにパッケージ化し、トランザクションの発見からソート、ブロックの作成までのプロセス全体を完了します。 

半径
Radius は、トラストレスな共有順序付けレイヤーとして位置付けられます。以前のソリューションの実装メカニズムとは異なり、Radius は暗号化されたメモリプールを導入することで、ロールアップ トランザクションの並べ替えプロセスに信頼が必要ないことを保証します。この方法により、MEV とユーザーのトランザクション レビューの問題が効果的に排除され、トランザクションの公平性と透明性が確保されます。
Espresso や Astria のようなコンセンサス メカニズムに基づく分散型発注者は、MEV と検閲のリスクをある程度軽減しますが、多くの場合、ネットワークのスケーラビリティと時間効率が犠牲になり、トランザクション確認の遅延が発生します (トランザクションの発注がコンセンサスに達する必要があるため)。 。さらに、これらのソーターは分散環境で動作しますが、メモリ プール内のトランザクション情報はオープンかつ透過的であるため、ソーターは依然として MEV を悪意を持って取得する危険にさらされている可能性があります。 Radius は、ソーターが関連するトランザクション情報を参照できないようにするために暗号化されたメモリプールを導入し、ソーターが悪意を持って MEV を取得してトランザクションを検閲する問題を根本的に解決することを目指しています。
テクノロジーアーキテクチャ
Radius の技術アーキテクチャは、ソート層 (Radius)、実行層 (Rollup)、決済層、データ可用性層の 4 つの主要な機能層に分かれています。
- ソートレイヤー 
- ユーザーは暗号トランザクションとその証明をシーケンサーに送信します。 
- シーケンサーは、これらの証明とトランザクションの有効性を検証します。 
- シーケンサーはトランザクションを復号化する前にソートします。 
- ソーターはブロックを構築します。 
- シーケンサーは、構築されたブロックをロールアップ実行層に送信します。 
- 実行層 
- ロールアップは、シーケンサーによって送信されたブロックを受信し、指定された順序でトランザクションを実行します。 
- ロールアップは、トランザクション ステータスとステータス証明書を決済レイヤーに送信します。 
- 決済層 
- 決済層は、ロールアップからステータスとステータス証明を受信して検証し、トランザクションの最終性を確認する責任があります。 
- 決済層は、トランザクションの実行が順序付け層によって指定された順序に従っていることを保証します。 
- データ可用性レイヤー 
- データ可用性レイヤーは、データを保存し、このデータの可用性を確保する責任があります。 

mempool の暗号化メカニズム - PVDE
Radius は、ゼロ知識証明に基づく暗号化方式「実用的検証可能遅延暗号化」(PVDE)を使用して、暗号化されたメモリ プール(mempool)を実装します。このメカニズムにより、並べ替えプロセス中にトランザクションが暗号化されたままになり、トランザクション処理のセキュリティが向上します。
具体的なプロセスは次のとおりです。
- ユーザーがトランザクションを送信する 
- ユーザーはタイムロック パズルと対称キーを生成します。 
- ユーザーは対称キーを使用してトランザクションを暗号化し、暗号化されたトランザクションはメモリ プール (mempool) に入ります。 
- シーケンサーはトランザクションを処理します 
- シーケンサーは暗号化されたトランザクションをソートしますが、タイムロック パズルのロックが解除されるまで復号キーを取得できません。 
- シーケンサーは注文コミットメントを計算し、タイムロック パズルのロックを解除する前に決済レイヤーにコミットメントを送信します。この Promise は、シーケンサーがトランザクションをロールアップ実行層に順番に送信することを検証するために使用されます。 
メティス
Metis は、分散型 PoS シーケンサーを実装した最初のレイヤー 2 ネットワークの 1 つであり、将来の開発に重要なモデルを提供します。このテンプレートはソーターの分散化を実現するだけでなく、PoS (Proof of Stake) に基づいた分散型のオプティミスティック ロールアップ ソリューションも提供します。このテンプレートでは、Metis の分散型 PoS シーケンサーには、管理者、シーケンサー、PoS コンセンサス層という 3 つの主要な役割が含まれています。

従来のロールアップ モデルでは、単一のシーケンサーでトランザクションとデータを効果的に処理できますが、電力が集中するため、複数のリスクが生じる可能性があります。
- 運用上のリスク:シーケンサーが失敗したり攻撃を受けた場合、システム全体のトランザクション処理がブロックされます。 
- 検閲リスク: Sequencer にはトランザクションを選択的に処理または拒否する機能があり、特定の分散型金融 (DeFi) プロトコルまたはサービスへのユーザーのアクセスが制限される可能性があります。 
- 操作リスク: シーケンサーはトランザクションのソートにおいて自身のトランザクションを優先し、トランザクション手数料、つまり最大抽出可能値 (MEV) を増やすことで不適切な利益を得る可能性があります。 
これらの問題を解決するために、Metis は、複数の Sequencer ノードが共同してトランザクションの集約、並べ替え、実行を完了する分散型 Sequencer プールを設計しました。この設計により、システムの公平性と透明性が保証されます。
- 合意メカニズム:トランザクション バッチをイーサリアム メインネット (L1) に送信する前に、シーケンサー ノードの 3 分の 2 以上が新しいブロックのステータスに関する合意に達する必要があります。 
- マルチパーティ計算 (MPC) 署名:トランザクション バッチが L1 に送信される前に、MPC 署名によってバッチの信頼性が検証され、データの正確性が保証されます。 
分散型シーケンサーの利点:
- セキュリティの強化:複数のノードによる共同意思決定により、単一点障害のリスクが軽減され、ネットワークの堅牢性とセキュリティが向上します。 
- 検閲と操作の可能性を減らす:複数のシーケンサーが存在するため、単一のノードがトランザクションを操作または検閲することが困難になり、ユーザーのトランザクションの自由が保護されます。 
- 安定性と冗長性:シーケンサーのスムーズな回転をサポートし、障害や中断の影響を最小限に抑え、ネットワーク全体の安定性を向上させます。 
Metis の分散シーケンサー モデルでは、各ノードはいくつかの主要なコンポーネントで構成されます。
- L2 Geth (OP-Node を含む):トランザクションのソートとブロックの組み立てを担当します。 
- アダプター モジュール:他の外部モジュール (主に PoS ノード) との対話の仲介として機能します。 
- バッチ送信者 (プロポーザー):トランザクション バッチを構築し、複数のシーケンサーから承認を得た後、L1 に送信する責任を負います。 
- PoS ノード:イーサリアム、コンセンサス、Metis レイヤーの間で調整を行い、資産が安全にロックされ、バリデーターに報酬が与えられるようにします。 
- コンセンサス層:イーサリアムのメインネットワークと並行して実行される Tendermint PoS ノードで構成され、メインネットワークのプロセスを妨げることなく運用効率を確保します。 

L2 Geth (OP ノードを含む)
メインコードは https://github.com/MetisProtocol/mvm フォークオプティミズムです
主に2つの部分を修正しました
- ブロック アセンブリ: mvm\l2 geth サービス コードは、現在のシーケンサーが現在のブロックをアセンブルする必要があるかどうかを決定する applyTransactionToTip 処理ロジックを追加します。 
- トランザクションのソート: 元のオペノード コードを変更し、MPC コンセンサス層のアダプター モジュールを使用して、ローテーション リストとブロックの高さに対応する現在のシーケンサーの位置を取得し、それが現在の有効なシーケンサーであるかどうかを確認します。 
シーケンサーの回転
- ローテーション情報は L2 MetisSequencerSet コントラクトに保存され、情報はコンセンサス層 (PoS ノード) によって制御されます。 
- エポックごとに、コンセンサス層はシーケンサー情報を更新し、MPC に署名し、トランザクションを開始し、コントラクトシーケンサーリストを更新します。 
- 各エポックは、契約のシーケンサー リスト情報に従って順番にサービスを提供します。 
- 違反: 間に合わなかった、または不正なトランザクションが生成された (2 つの同一の L2 TxID)、PoS レイヤーは新しいシーケンサーを選択し、{ReselectSeqencer トランザクション + MPC 署名を構築}、新しいシーケンサーは現在の TxID でトランザクションを開始します。 L2 では、同時に新しいシーケンサーも MetisSequencerSet コントラクトに更新されます {ペナルティ メカニズムなし} 
- トリガーされた更新: 通常のトランザクションが受信され、ローテーション間隔に達すると、現在の通常のトランザクションが一時停止され、MetisSequencerSet.sol コントラクト更新トランザクションが実行され、その後、PoS レイヤーが現在のトランザクションを実行する新しいシーケンサーを選択します。定期的な取引。 
- 参加: POS 契約、L1 に展開され、住宅ローンを組む人は誰でもシーケンサーになるために申請できます。上限に達したら待機列に入る 
- NFTを入手する 
- 直接転送は禁止されています。署名者を変更して、LockingPool コントラクト -> updateSigner を通じて NFT を転送できます。 
- NFTのtokenIdはシーケンスIDに対応します 
- 交換: シーケンサーが長期間にわたって異常な状態にある場合、シーケンサーは追い出され、代替のシーケンサーに置き換えられます。 
- やめる: 
- NFTを破壊する 
- update: 署名者を変更し、LockingPool コントラクト -> updateSigner を通じて NFT を転送します。 
MPCモジュール

マルチ署名キーのライフサイクル全体の管理を担当します。 
- マルチ署名の生成 
- キーの再共有 
- アプリケーションの署名 
- 署名の削除 
- 複数のマルチシグネチャの非同期使用のサポートを提供します。 
処理の流れ
フェーズ 1: MPC ノードに準備を通知する
- 乱数の sessionID をローカルで生成します。 
- keyGenPrepare は、p2p ネットワークを使用して、すべての MPC ノードにメッセージをブロードキャストします。 
- 各 MPC ノードは keyGenPrepare メッセージを受信した後、独自の処理ゴルーチンを開始します。 
- ローカル データのチェックに基づく KeyId (データは、TSS モジュールが ID に対応する mpc 情報を保存しているかどうかを指します)。 
- すでに READY 状態にあるデータがある場合、keyGen の操作を続行せずに、データがストレージから直接返されます。 
- PENDING ステータスのデータがすでに存在する場合は、異なるキー生成呼び出しの同時実行による不整合なキー生成を避けるためにエラーを返します。 
- p2p 通信チャネルを確立します。 
- メッセージ keyGenReady を開始ノードに返します。 
フェーズ 2: keyGen プロセスを開始する
- 開始ノードは、すべてのノードから keyGenReady メッセージを受信するのを待ちます。 
- 開始ノードがすべてのノードから keyGenReady メッセージを受信すると、p2p ネットワークを使用して keyGenStart メッセージをすべての MPC ノードにブロードキャストします。 
- keyGenStart メッセージを受信した後、各 MPC ノードは次のことを行います。 
- LocalParty インスタンスをローカルに構築します。 
- 他のノードからの情報の受信を開始します 
見通し
ブロックチェーン シーケンサーの未来はエキサイティングな変化に満ちています。ブロックチェーンのエコシステムが進化し続けるにつれて、シーケンサーは集中化からより分散化された、効率的で適応性のあるソリューションへの大きな移行を経験することになります。この変更は、イーサリアム エコシステムにおけるトランザクションの効率、スケーラビリティ、セキュリティを向上させるために重要です。
分散化は暗号通貨の中核となる哲学です。共有選別ネットワークを通じて、経済メカニズムは価値蓄積と所得分配の問題を効果的に解決できます。シーケンサーのモジュール構築と開発フレームワークがますます成熟するにつれて、これらのテクノロジーは将来の業界発展の強力な触媒となり、ブロックチェーンエコシステムをより革新的で効率的な方向に推進するでしょう。
参考文献
- https://docs.espressosys.com/sequencer 
- https://docs.theradius.xyz/ 
- https://docs.astria.org/developer/tutorials/run-local-rollup-against-remote-sequencer 
- https://docs.metis.io/dev/decentralized-sequencer/overview 


