排序器是負責在交易被批次處理並提交到 Rollup 發布層之前,對所有進入的交易進行排序的元件。排序器主要負責管理排序的寫入權限鎖,而不執行狀態轉換:它會收集用戶的交易,並將這些交易排列成區塊或批次,然後提交到底層的數據可用性層或主鏈。這一排序過程至關重要,因為它決定了當執行動作發生於 Rollup 節點時,Rollup 狀態機如何演進。專家指出,排序器作為交易排序與時序安排的關鍵把關者,其設計決策會影響系統活躍度、抗審查能力和手續費提取。
目前多數 Rollup 採用集中式排序器──通常由專案團隊維護與營運。這種架構雖能帶來高吞吐量和簡化治理,但也創造了單一控制點和潛在失效風險。集中式排序器能審查交易、可能遭遇停機,甚至可單方面更改政策。相較之下,去中心化排序模式則將排序權限分散至多個獨立節點或驗證者。去中心化排序器網路大幅提升抗審查性與可用性。進階的共享排序器網路則提供跨多個 Rollup 的通用排序層,達到規模效益,並增加穩定性,讓每個 Rollup 無需獨立維護排序器組合。
Rollup 屬於第二層擴展解決方案,可於鏈下執行智慧合約與交易,並將壓縮後的資料或證明發送到第一層區塊鏈。主要分為兩種類型:樂觀 Rollup 和零知識(zk)Rollup。
樂觀 Rollup 假設所有交易皆為有效,並依賴後續提交的欺詐證明來確保正確性;而 zk-Rollup 則透過密碼學方法計算有效性證明,並將簡要的證明發佈到主鏈。
這兩種方案都需仰賴排序器來進行交易排序及批次處理。在樂觀 Rollup 中,排序器負責將交易收集並組成之後會經過挑戰機制驗證的批次;在 zk-Rollup 架構下,排序器將交易排序後,該些交易於證明驗證通過後立即獲得最終定案。
排序與執行分屬於 Rollup 架構中的不同流程。排序階段在鏈下處理,負責整合交易並標註區塊位置,再進行提交以完成最終確定。執行則在排序之後展開,Rollup 節點取得排列好的資料後會套用至狀態機以推算出新狀態。有些排序器設計同時涵蓋執行功能,也就是排序器能預先知悉交易結果,因此可支援原子性執行。另一類架構則刻意將排序與執行拆開,方便更多 Rollup 串接,且每個排序器不必各自維護 Rollup 狀態機。業界分析認為,採用「延遲排序」能有效避免狀態膨脹,並簡化新 Rollup 的導入過程。
共享排序器網路讓多個 Rollup 可接入同一排序服務,不必個別建置並維護排序器架構。正交 Rollup 透過一套通用、去中心化的網路進行共用交易排序,能實現跨 Rollup 的原子性包納:跨不同 Rollup 的交易可以被打包於同一批次,確保其同時被納入。像 Astria、Espresso Systems、Radius、NodeKit 和 Rome Protocol 等專案正積極投入此基礎設施建構。技術專家指出,Astria 和 Rome 採用延遲排序(即排序器本身不執行交易)設計,可實現原子性包納,同時提升抗審查能力、排序速度和 MEV 效益。
原子包含可保證發往不同 Rollup 的相關交易納入同一批次,也就是「要嘛全部一起納入,要嘛全部都不納入」。這種機制的強度低於原子執行,原子執行要求排序器或區塊建構者模擬或保證所有納入的交易在執行時皆會成功。在僅提供排序、不負責執行的共享排序器網路中,原子執行無法獲得保證。例如,Rollup A 上的鎖定與 Rollup B 上的鑄造兩項交易能一同被包入,但若其中之一回滾,另一項仍有可能執行成功。區塊鏈研究人員指出,真正的原子執行需掌握每個 Rollup 狀態機,或由區塊建構者強制實現「區塊最前端」條件。目前,大多數方案僅支援原子包含,至於執行的保證則交由各 Rollup 的邏輯處理。
規模化推動共享排序器時,會遭遇多重挑戰。單純負責排序的設計雖讓排序器對 Rollup 狀態保持無感,且容易擴展,但卻無法保證交易執行必然成功;若排序器負責交易執行,則需為每個 Rollup 維護完整的狀態機,隨著 Rollup 數量大量增加,維護每個 Rollup 狀態機將變得難以實現。經濟誘因也是一大挑戰:共享網路必須具備充足的經濟抵押,才能確保安全運作。專案需規劃合適的代幣經濟模型,或結合現有驗證者系統以提供所需抵押資產。延遲與效能亦是重要考量,因為共享排序器網路必須媲美集中式排序器的高可用性和低延遲,才能成為主流且實際可行的選項。