前言
排序器(Sequencer)是以太坊擴容方案Rollup 中的核心元件之一,負責對交易進行排序,並執行區塊創建、交易接受、交易排序、交易執行以及交易資料提交等相關任務。隨著以太坊網路Layer 2 解決方案的不斷增加及其生態系統的蓬勃發展,Layer 2 的獲利模式和中心化問題日益受到關注。尤其是在Rollup 中,如何實現排序器的去中心化以及排序器利潤的分配機制,成為大家關心的熱門話題。
什麼是排序器?
排序器,顧名思義,是負責對交易進行排序的角色。在比特幣網路中,交易排序的職責由礦工負責;在以太坊網路中,這項責任由節點集合承擔。這些角色並非固定,而是透過共識機制來決定誰有權參與交易的順序執行。
目前,主流的Rollup 方案大多運行中心化的單一排序器。用戶在Layer 2 (L2)的交易首先進入mem 池(此時交易是無序的)。排序器將這些交易進行排序、壓縮成一組有序的批次,然後傳送到以太坊的資料可用性(DA)層。

中心化VS 去中心化



去中心化排序器賽道概覽
去中心化排序器可以透過兩種方式實現:一種是由Rollup 專案方自行開發,另一種是藉助第三方服務。借助第三方實作去中心化排序器,通常被稱為Sequencing-as-a-Service(排序即服務)。
目前,有多個專案專注於去中心化排序器方案,包括Espresso、Astria、SUAVE、Radius 等。儘管它們的實現路徑各不相同,但目標都是為了提升排序器的去中心化程度和可靠性。
Espresso
在Espresso 排序器的排序機制下,L2 交易大致經歷以下生命週期:
- 交易發送:用戶在二層網路上發生的交易透過API 傳送到Rollup 伺服器。 
- 交易排序:交易進入mem 池後,排序器透過HotShot 共識選舉對交易進行排序,並將其包含在一個區塊中。 
- 交易廣播與確認:排序器將排序後的交易廣播出去,其他節點透過HotShot 共識達成共識後出塊,交易被執行。同時,軟承諾機制提供快速的交易確認。 
- 區塊承諾:排序器將包含交易的區塊承諾及其共識證書(QC:Quorum Certificate)發送並儲存在L1 排序器合約中,證明該區塊透過共識達成軟最終性。 
- 狀態更新:已執行該區塊的Rollup 節點將新的Rollup 狀態傳送至L1。在zkRU(零知識Rollup)情況下,需要附帶有效性證明,而在ORU(優化Rollup)情況下則會進入挑戰期。 
- 狀態驗證: L1 Rollup 合約透過驗證排序器合約發送來的QC,檢查狀態更新的有效性。 

這個流程可以簡化理解為:
- 交易排序與區塊創建:在一組排序器中,透過HotShot 共識機制選出一個排序器,它負責對Rollup 交易進行排序,並將這些交易包含在一個區塊中。 
- 共識與區塊承諾:該區塊必須由其他的Rollup 節點簽署並達成共識(至少2/3 的HotShot 節點同意)才具有「最終性」。然後,相關的區塊承諾和新的Rollup 狀態根提交給L1 基礎層進行驗證。 
- 快速確認與最終性: 「最終性」帶引號是為了讓Rollup 交易更快確認,減少延遲,提升用戶體驗。然而,Rollup 交易最終還是要由L1 基礎層進行驗證(zkRU 需要驗證有效性證明,ORU 需要等待挑戰期結束)。如果L1 驗證交易沒有問題,此時Rollup 的交易才具有真正的最終性。 
- 潛在回溯:如果L1 驗證發現交易無效,相關的已出塊的L2 區塊將面臨回溯。因此,「最終性」是為了讓交易快速確認,而最終性是為了繼承以太坊的安全性。 
Astria
Astria 的定位是提供通用、無需許可的去中心化排序器,為不同的Rollup 提供開箱即用的共享排序器服務。
運作機制
Astria 的去中心化排序器運作機制與Espresso Sequencer 類似,目的是透過將交易排序的權利下放來減少排序者的特權。具體來說,Astria 提出了兩種針對排序器的輪換機制:
- 領導者輪替(Leader Rotation):這是一種簡單的輪替機制,透過預定的規則或時間間隔在排序器之間輪流領導者,從而分散排序權力。 
- 拜占庭容錯(BFT)共識演算法:這是一種更複雜和安全的機制,允許在存在惡意節點的情況下仍能達成共識。透過這種演算法,多個排序器共同參與決策,確保系統在遭受一定數量的節點故障或攻擊時仍能正常運作。 
領導者輪換
透過選舉產生的排序器組成一個集合,集合中的排序器輪流對Rollup 交易進行排序。這種方式避免了單一排序器長時間壟斷交易排序權的問題,並在一定程度上解決了對使用者持續審查的隱憂。

SUAVE
SUAVE 是由Flashbots 開發的去中心化、即插即用的共享排序器解決方案。作為一個通用平台,SUAVE 能夠為各種L1/L2 網路提供記憶體池管理和去中心化的區塊建置功能。與傳統共享排序器設計不同,SUAVE Chain 是一條EVM 相容鏈,它透過區塊「競標」的機制實現交易排序。
SUAVE 架構
SUAVE 的架構由三個核心元件組成:通用偏好環境、最佳執行市場和去中心化區塊建構。
- 偏好環境 
- SUAVE 的偏好環境廣泛涵蓋了從簡單交易到複雜事件的各種需求。使用者的交易偏好會以交易形式反映在記憶體池中,偏好環境作為一個公共的記憶體池將這些偏好匯總起來。 SUAVE 提供的通用偏好環境不僅使多鏈用戶的偏好變得公開透明,還有效減少了資訊不對稱,並在一定程度上緩解了跨鏈MEV 問題。 
- 執行市場 
- 執行市場由一群執行者組成,他們負責監聽SUAVE 的記憶體池並相互競爭。競爭驅動這些執行者為使用者的偏好提供最佳執行方案。可以將這些執行者視為透過「競標」方式來實現用戶需求的參與者,他們力求將產生的MEV 盡可能地返還給用戶。 
- 去中心化區塊構建 
- 最後,基於收集到的偏好資料和最佳執行路徑,去中心化區塊建立網路會將這些交易資訊打包到區塊中,完成從交易發現、排序到區塊出塊的整個過程。 

 Radius
Radius 的定位是一個無需信任的共用排序層。與前述方案的實作機制不同,Radius 透過引入加密記憶體池(encrypted mempool)來確保Rollup 交易的排序過程無需信任。這種方法有效消除了MEV 和用戶交易審查的問題,從而保障了交易的公正性和透明性。
儘管像Espresso 和Astria 等基於共識機制的去中心化排序器在一定程度上減少了MEV 和審查風險,但它們通常以犧牲網路可擴展性和時間效率為代價,從而導致交易確認延遲(因為需要就交易排序達成共識)。此外,雖然這些排序器在去中心化環境中運行,由於記憶體池中的交易資訊是公開透明的,排序器仍然可能存在惡意攫取MEV 的風險。 Radius 透過引入加密記憶體池(encrypted mempool),確保排序器無法看到相關交易訊息,旨在從根本上解決排序器惡意攫取MEV 和審查交易的問題。
技術架構
Radius 的技術架構分為四個主要功能層級:排序層(Radius)、執行層(Rollup)、結算層和資料可用性層。
- 排序層 
- 用戶將加密交易及其證明提交給排序器。 
- 排序器驗證這些證明及交易的有效性。 
- 排序器在解密交易之前對交易進行排序。 
- 排序器建立一個區塊。 
- 排序器將建構好的區塊提交給Rollup 執行層。 
- 執行層 
- Rollup 接收排序器提交的區塊,並依照指定的順序執行交易。 
- Rollup 將交易狀態及狀態證明提交至結算層。 
- 結算層 
- 結算層負責接收和驗證來自Rollup 的狀態和狀態證明,以確認交易的最終性。 
- 結算層確保交易執行符合排序層指定的順序。 
- 資料可用性層 
- 資料可用性層負責儲存資料並確保這些資料的可用性。 

mempool 的加密機制- PVDE
Radius 採用基於零知識證明的加密方案「實用可驗證延遲加密」(PVDE)來實現加密記憶體池(mempool)。這項機制確保了交易在排序過程中保持加密狀態,增加了交易處理的安全性。
具體流程如下:
- 用戶提交交易 
- 使用者產生一個時間鎖謎題和一個對稱金鑰。 
- 使用者使用對稱金鑰對交易進行加密,加密後的交易進入記憶體池(mempool)。 
- 排序器處理交易 
- 排序器會對加密交易進行排序,但在解鎖時間鎖謎題之前無法取得解密金鑰。 
- 排序器在解鎖時間鎖謎題前,計算訂單承諾,並將該承諾提交給結算層。這項承諾用於驗證排序器是否按照順序將交易提交給Rollup 執行層。 
Metis
Metis 是第一批實踐去中心化PoS 排序器的Layer 2 網絡,為未來的發展提供了一個重要的範本。這個範本不僅實現了排序器的去中心化,還提供了基於PoS(權益證明)的去中心化Optimistic Rollup 解決方案。在這個範本中,Metis 的去中心化PoS 排序器包含三個主要角色:管理者、排序器和PoS 共識層。

在傳統的Rollup 模式中,單一的Sequencer 雖然能有效處理交易和數據,但也集中權力,可能引發多種風險:
- 操作風險:如果Sequencer 發生故障或攻擊,整個系統的交易處理將會被阻斷。 
- 審查風險: Sequencer 能夠選擇性處理或拒絕交易,這可能限制使用者存取特定的去中心化金融(DeFi)協議或服務。 
- 操縱風險:Sequencer 在交易排序中可能優先處理自身交易,透過提高交易費用來獲取不正當利益,即最大可提取價值(MEV)。 
為了解決這些問題,Metis 設計了一個去中心化的Sequencer 池,由多個Sequencer 節點共同完成交易的聚合、排序和執行。這項設計確保了系統的公正性和透明度:
- 共識機制:超過三分之二的Sequencer 節點必須對每個新區塊的狀態達成共識,之後才能將交易批次提交到以太坊主網(L1)。 
- 多方計算(MPC)簽章:在交易批次提交到L1 之前,透過MPC 簽章驗證批次的真實性,確保資料的準確性。 
去中心化Sequencer 的優勢:
- 增強安全性:透過多個節點共同決策,降低了單點故障的風險,提高了網路的穩健性和安全性。 
- 降低審查和操控的可能性:多個Sequencer 的存在使得單一節點難以操控或審查交易,保護使用者的交易自由。 
- 穩定性與冗餘:支援Sequencer 的平滑輪換,最小化故障或中斷的影響,提高了整個網路的穩定性。 
在Metis 的去中心化Sequencer 模型中,每個節點由幾個關鍵元件組成:
- L2 Geth(包括OP-Node):負責交易排序和區塊組裝。 
- 適配器模組:作為與其他外部模組(主要是PoS 節點)互動的中介。 
- 批次提交者(Proposer):負責建立交易批次並在獲得多個Sequencer 的認可後提交到L1。 
- PoS 節點:在以太坊、共識和Metis 層之間進行協調,確保資產的安全鎖定並獎勵驗證者。 
- 共識層:由與以太坊主網並行運行的Tendermint PoS 節點組成,確保操作效率而不妨礙主網路的進程。 

L2 Geth(包括OP-Node)
主要程式碼為https://github.com/MetisProtocol/mvm fork optimism
主要是修改了兩部分
- 區塊組裝:mvm\l2 geth 服務程式碼,加入了 applyTransactionToTip 處理邏輯,以此判斷目前 sequencer 是否應組裝目前區塊。 
- 交易排序:修改原 op-node 代碼,借助 MPC 共識層的適配器模組,取得輪換列表與區塊高度對應的當前排序器的位置,來檢查自己是否為當前有效排序器。 
Sequencer 輪換
- 輪換資訊存在L2 MetisSequencerSet 合約中,資訊由共識層(PoS 節點)控制 
- 每個 epoch,共識層更新 Sequencer 訊息,經過 MPC 簽名,發起交易,更新合約 Sequencer 列表 
- 每個 epoch,根據合約 Sequencer 列表信息,輪流當職 
- 違規:未及時,或產生錯誤交易(兩筆相同L2 TxID),PoS 層會選擇新的Sequencer,{構造ReselectSeqencer 交易+ MPC 簽章},新的Sequencer 會在L2上發起目前TxID 的交易,同時新的Sequencer 也會更新到MetisSequencerSet 合約{沒有懲罰機制} 
- 觸發更新:收到常規交易,並且達輪換間隔,會暫停當前常規交易,執行 MetisSequencerSet.sol 合約更新交易,然後 PoS 層選擇將執行當前常規交易的新排序器。 
- 加入:POS 合約,部署在L1,任何人,抵押 metis,申請成為 sequencer。當達到上限,進入等待隊列 
- 獲得一個 NFT 
- 禁止直接轉移,可透過 LockingPool 合約->updateSigner 更換簽署者,轉移 NFT 
- NFT 的 tokenId 對應 sequence id 
- 替換:當 sequencer 長期處於不健康狀態,將被踢出,並由候補替換 
- 退出: 
- 銷毀 NFT 
- update:透過 LockingPool 合約->updateSigner 更換簽署者,轉移 NFT 
- 選擇:加權隨機選擇演算法 
MPC 模組

負責管理多重簽名金鑰的整個生命週期
- 多重簽名生成 
- 金鑰重新共享 
- 應用程式簽名 
- 刪除簽名 
- 提供多種多重簽章非同步使用的支持 
處理流程
第1 階段:通知MPC 節點做好準備
- 在本地產生一個隨機數 sessionID; 
- keyGenPrepare 使用p2p網路將訊息廣播到所有 MPC 節點; 
- 每個 MPC 節點收到 keyGenPrepare 訊息後,啟動各自的處理 goroutine; 
- 根據檢查本機資料(資料是指 TSS 模組是否儲存了該 id 對應的 mpc 資訊)keyId; 
- 如果狀態中已有資料 READY,則直接從儲存體傳回數據,無需繼續操作 keyGen; 
- 如果已經存在具有 PENDING 狀態的數據,則傳回錯誤,以避免因並發執行不同的金鑰產生呼叫而導致金鑰產生不一致; 
- 建立p2p通訊通道; 
- 將訊息傳回 keyGenReady 給發起節點; 
第二階段:啟動 keyGen 流程
- 發起節點等待接收 keyGenReady 來自所有節點的訊息; 
- 一旦發起節點收到 keyGenReady 來自所有節點的訊息,它就會 keyGenStart 使用p2p 網路將訊息廣播到所有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 


