前言排序器(Sequencer)是以太坊擴(kuò)容方案 Rollup 中的核心組件之一,負(fù)責(zé)對交易進(jìn)行排序,并執(zhí)行區(qū)塊創(chuàng)建、交易接受、交易排序、交易執(zhí)行以及交易數(shù)據(jù)提交等相關(guān)任務(wù)。隨著以太坊網(wǎng)絡(luò) Layer 2 解決方案的不斷增加及其生態(tài)系統(tǒng)的蓬勃發(fā)展,Layer 2 的盈利模式和中心化問題日益受到關(guān)注。尤其是在 Rollup 中,如何實現(xiàn)排序器的去中心化以及排序器利潤的分配機(jī)制,成為大家關(guān)心的熱點話題。

什么是排序器?
排序器,顧名思義,是負(fù)責(zé)對交易進(jìn)行排序的角色。在比特幣網(wǎng)絡(luò)中,交易排序的職責(zé)由礦工負(fù)責(zé);在以太坊網(wǎng)絡(luò)中,這一職責(zé)由節(jié)點集合承擔(dān)。這些角色并非固定,而是通過共識機(jī)制來確定誰有權(quán)參與交易的順序執(zhí)行。
目前,主流的 Rollup 方案大多運行中心化的單一排序器。用戶在 Layer 2 (L2)的交易首先進(jìn)入 mem 池(此時交易是無序的)。排序器將這些交易進(jìn)行排序、壓縮成一組有序的批次,然后發(fā)送到以太坊的數(shù)據(jù)可用性(DA)層。

中心化 VS 去中心化
去中心化排序器賽道概覽
去中心化排序器可以通過兩種方式實現(xiàn):一種是由 Rollup 項目方自行開發(fā),另一種是借助第三方服務(wù)。借助第三方實現(xiàn)去中心化排序器,通常被稱為 Sequencing-as-a-Service(排序即服務(wù))。
目前,有多個項目專注于去中心化排序器方案,包括 Espresso、Astria、SUAVE、Radius 等。盡管它們的實現(xiàn)路徑各不相同,但目標(biāo)都是為了提升排序器的去中心化程度和可靠性。
Espresso
在 Espresso 排序器的排序機(jī)制下,L2 交易大致經(jīng)歷以下生命周期:
交易發(fā)送:用戶在二層網(wǎng)絡(luò)上發(fā)生的交易通過 API 發(fā)送到 Rollup 服務(wù)器。
交易排序:交易進(jìn)入 mem 池后,排序器通過 HotShot 共識選舉對交易進(jìn)行排序,并將其包含在一個區(qū)塊中。
交易廣播與確認(rèn):排序器將排序后的交易廣播出去,其他節(jié)點通過 HotShot 共識達(dá)成共識后出塊,交易被執(zhí)行。同時,軟承諾機(jī)制提供快速的交易確認(rèn)。
區(qū)塊承諾:排序器將包含交易的區(qū)塊承諾及其共識證書(QC:Quorum Certificate)發(fā)送并存儲在 L1 排序器合約中,證明該區(qū)塊通過共識達(dá)成軟最終性。
狀態(tài)更新:已執(zhí)行該區(qū)塊的 Rollup 節(jié)點將新的 Rollup 狀態(tài)發(fā)送到 L1。在 zkRU(零知識 Rollup)情況下,需要附帶有效性證明,而在 ORU(優(yōu)化 Rollup)情況下則會進(jìn)入挑戰(zhàn)期。
狀態(tài)驗證:L1 Rollup 合約通過驗證排序器合約發(fā)送來的 QC,檢查狀態(tài)更新的有效性。
這個流程可以簡化理解為:
交易排序與區(qū)塊創(chuàng)建:在一組排序器中,通過 HotShot 共識機(jī)制選出一個排序器,它負(fù)責(zé)對 Rollup 交易進(jìn)行排序,并將這些交易包含在一個區(qū)塊中。
共識與區(qū)塊承諾:該區(qū)塊必須由其他的 Rollup 節(jié)點簽署并達(dá)成共識(至少 2/3 的 HotShot 節(jié)點同意)才具有「最終性」。然后,相關(guān)的區(qū)塊承諾和新的 Rollup 狀態(tài)根提交給 L1 基礎(chǔ)層進(jìn)行驗證。
快速確認(rèn)與最終性:「最終性」帶引號是為了讓 Rollup 交易更快地確認(rèn),減少延遲,提升用戶體驗。然而,Rollup 交易最終還是要由 L1 基礎(chǔ)層進(jìn)行驗證(zkRU 需要驗證有效性證明,ORU 需要等待挑戰(zhàn)期結(jié)束)。如果 L1 驗證交易沒有問題,此時 Rollup 的交易才具有真正的最終性。
潛在回滾:如果 L1 驗證發(fā)現(xiàn)交易無效,相關(guān)的已出塊的 L2 區(qū)塊將面臨回滾。因此,「最終性」是為了讓交易快速確認(rèn),而最終性是為了繼承以太坊的安全性。
Astria
Astria 的定位是提供通用、無需許可的去中心化排序器,為不同的 Rollup 提供開箱即用的共享排序器服務(wù)。
運行機(jī)制
Astria 的去中心化排序器運行機(jī)制與 Espresso Sequencer 類似,目的是通過將交易排序的權(quán)利下放來減少排序者的特權(quán)。具體來說,Astria 提出了兩種針對排序器的輪換機(jī)制:
領(lǐng)導(dǎo)者輪換(Leader Rotation):這是一種簡單的輪換機(jī)制,通過預(yù)定的規(guī)則或時間間隔在排序器之間輪換領(lǐng)導(dǎo)者,從而分散排序權(quán)力。
拜占庭容錯(BFT)共識算法:這是一種更加復(fù)雜和安全的機(jī)制,允許在存在惡意節(jié)點的情況下仍能達(dá)成共識。通過這種算法,多個排序器共同參與決策,確保系統(tǒng)在遭受一定數(shù)量的節(jié)點故障或攻擊時仍能正常運行。
領(lǐng)導(dǎo)者輪換
通過選舉產(chǎn)生的排序器組成一個集合,集合中的排序器輪流對 Rollup 交易進(jìn)行排序。這種方式避免了單一排序器長時間壟斷交易排序權(quán)的問題,并在一定程度上解決了對用戶持續(xù)審查的隱憂。
SUAVE
SUAVE 是由 Flashbots 開發(fā)的去中心化、即插即用的共享排序器解決方案。作為一個通用平臺,SUAVE 能夠為各種 L1/L2 網(wǎng)絡(luò)提供內(nèi)存池管理和去中心化的區(qū)塊構(gòu)建功能。與傳統(tǒng)共享排序器設(shè)計不同,SUAVE Chain 是一條 EVM 兼容鏈,它通過區(qū)塊“競標(biāo)”的機(jī)制實現(xiàn)交易排序。
SUAVE 架構(gòu)
SUAVE 的架構(gòu)由三個核心組件組成:通用偏好環(huán)境、最佳執(zhí)行市場和去中心化區(qū)塊構(gòu)建。
偏好環(huán)境
SUAVE 的偏好環(huán)境廣泛涵蓋了從簡單交易到復(fù)雜事件的各種需求。用戶的交易偏好會以交易形式反映在內(nèi)存池中,偏好環(huán)境作為一個公共的內(nèi)存池將這些偏好匯總起來。SUAVE 提供的通用偏好環(huán)境不僅使多鏈用戶的偏好變得公開透明,還有效減少了信息不對稱,并在一定程度上緩解了跨鏈 MEV 問題。
執(zhí)行市場
執(zhí)行市場由一群執(zhí)行者組成,他們負(fù)責(zé)監(jiān)聽 SUAVE 的內(nèi)存池并相互競爭。競爭驅(qū)動這些執(zhí)行者為用戶的偏好提供最佳執(zhí)行方案。可以將這些執(zhí)行者視為通過“競標(biāo)”方式來實現(xiàn)用戶需求的參與者,他們力求將產(chǎn)生的 MEV 盡可能多地返還給用戶。
去中心化區(qū)塊構(gòu)建
最后,基于收集到的偏好數(shù)據(jù)和最佳執(zhí)行路徑,去中心化區(qū)塊構(gòu)建網(wǎng)絡(luò)會將這些交易信息打包到區(qū)塊中,完成從交易發(fā)現(xiàn)、排序到區(qū)塊出塊的整個過程。
Radius
Radius 的定位是一個無需信任的共享排序?qū)印Ec前述方案的實現(xiàn)機(jī)制不同,Radius 通過引入加密內(nèi)存池(encrypted mempool)來確保 Rollup 交易的排序過程無需信任。這種方法有效消除了 MEV 和用戶交易審查的問題,從而保障了交易的公正性和透明性。
盡管像 Espresso 和 Astria 等基于共識機(jī)制的去中心化排序器在一定程度上減少了 MEV 和審查風(fēng)險,但它們通常以犧牲網(wǎng)絡(luò)可擴(kuò)展性和時間效率為代價,從而導(dǎo)致交易確認(rèn)延遲(因為需要就交易排序達(dá)成共識)。此外,雖然這些排序器在去中心化環(huán)境中運行,由于內(nèi)存池中的交易信息是公開透明的,排序器仍然可能存在惡意攫取 MEV 的風(fēng)險。Radius 通過引入加密內(nèi)存池(encrypted mempool),確保排序器無法看到相關(guān)交易信息,旨在從根本上解決排序器惡意攫取 MEV 和審查交易的問題。
技術(shù)架構(gòu)
Radius 的技術(shù)架構(gòu)分為四個主要功能層級:排序?qū)樱≧adius)、執(zhí)行層(Rollup)、結(jié)算層和數(shù)據(jù)可用性層。
排序?qū)?/strong>
用戶將加密交易及其證明提交給排序器。
排序器驗證這些證明及交易的有效性。
排序器在解密交易之前對交易進(jìn)行排序。
排序器構(gòu)建一個區(qū)塊。
排序器將構(gòu)建好的區(qū)塊提交給 Rollup 執(zhí)行層。
執(zhí)行層
Rollup 接收排序器提交的區(qū)塊,并按照指定的順序執(zhí)行交易。
Rollup 將交易狀態(tài)及狀態(tài)證明提交至結(jié)算層。
結(jié)算層
結(jié)算層負(fù)責(zé)接收和驗證來自 Rollup 的狀態(tài)和狀態(tài)證明,以確認(rèn)交易的最終性。
結(jié)算層確保交易執(zhí)行符合排序?qū)又付ǖ捻樞颉?/strong>
數(shù)據(jù)可用性層
數(shù)據(jù)可用性層負(fù)責(zé)存儲數(shù)據(jù)并確保這些數(shù)據(jù)的可用性。
mempool 的加密機(jī)制 - PVDE
Radius 采用基于零知識證明的加密方案“實用可驗證延遲加密”(PVDE)來實現(xiàn)加密內(nèi)存池(mempool)。這一機(jī)制確保了交易在排序過程中保持加密狀態(tài),增加了交易處理的安全性。
具體流程如下:
用戶提交交易
用戶生成一個時間鎖謎題和一個對稱密鑰。
用戶使用對稱密鑰對交易進(jìn)行加密,加密后的交易進(jìn)入內(nèi)存池(mempool)。
排序器處理交易
排序器對加密交易進(jìn)行排序,但在解鎖時間鎖謎題之前無法獲取解密密鑰。
排序器在解鎖時間鎖謎題前,計算訂單承諾,并將該承諾提交給結(jié)算層。這一承諾用于驗證排序器是否按照順序?qū)⒔灰滋峤唤o Rollup 執(zhí)行層。
Metis
Metis 是首批實踐去中心化 PoS 排序器的 Layer 2 網(wǎng)絡(luò),為未來的發(fā)展提供了一個重要的范本。這個范本不僅實現(xiàn)了排序器的去中心化,還提供了基于 PoS(權(quán)益證明)的去中心化 Optimistic Rollup 解決方案。在該范本中,Metis 的去中心化 PoS 排序器包括三個主要角色:管理員、排序器和 PoS 共識層。
在傳統(tǒng)的 Rollup 模型中,單一的 Sequencer 雖然能有效處理交易和數(shù)據(jù),但也集中權(quán)力,可能引發(fā)多種風(fēng)險:
操作風(fēng)險:如果 Sequencer 發(fā)生故障或遭受攻擊,整個系統(tǒng)的交易處理將被阻斷。
審查風(fēng)險:Sequencer 能夠選擇性處理或拒絕交易,這可能限制用戶訪問特定的去中心化金融(DeFi)協(xié)議或服務(wù)。
操縱風(fēng)險:Sequencer 在交易排序中可能優(yōu)先處理自身交易,通過提高交易費用獲取不正當(dāng)利益,即最大可提取價值(MEV)。
為了解決這些問題,Metis 設(shè)計了一個去中心化的 Sequencer 池,由多個 Sequencer 節(jié)點共同完成交易的聚合、排序和執(zhí)行。這一設(shè)計確保了系統(tǒng)的公正性和透明度:
共識機(jī)制:超過三分之二的 Sequencer 節(jié)點必須對每個新區(qū)塊的狀態(tài)達(dá)成共識,之后才能將交易批次提交到以太坊主網(wǎng)(L1)。
多方計算(MPC)簽名:在交易批次提交到 L1 之前,通過 MPC 簽名驗證批次的真實性,確保數(shù)據(jù)的準(zhǔn)確性。
去中心化 Sequencer 的優(yōu)勢:
增強(qiáng)安全性:通過多個節(jié)點共同決策,降低了單點故障的風(fēng)險,提高了網(wǎng)絡(luò)的魯棒性和安全性。
降低審查和操控的可能性:多個 Sequencer 的存在使得單一節(jié)點難以操控或?qū)彶榻灰祝Wo(hù)用戶的交易自由。
穩(wěn)定性和冗余:支持 Sequencer 的平滑輪換,最小化故障或中斷的影響,提高了整個網(wǎng)絡(luò)的穩(wěn)定性。
在 Metis 的去中心化 Sequencer 模型中,每個節(jié)點由幾個關(guān)鍵組件組成:
L2 Geth(包括 OP-Node):負(fù)責(zé)交易排序和區(qū)塊組裝。
適配器模塊:作為與其他外部模塊(主要是 PoS 節(jié)點)交互的中介。
批次提交者(Proposer):負(fù)責(zé)構(gòu)建交易批次并在獲得多個 Sequencer 的認(rèn)可后提交到 L1。
PoS 節(jié)點:在以太坊、共識和 Metis 層之間進(jìn)行協(xié)調(diào),確保資產(chǎn)的安全鎖定并獎勵驗證者。
共識層:由與以太坊主網(wǎng)并行運行的 Tendermint PoS 節(jié)點組成,確保操作效率而不妨礙主網(wǎng)的進(jìn)程。
L2 Geth(包括 OP-Node)
主要代碼為https://github.com/MetisProtocol/mvm fork optimism
主要是修改了兩部分
區(qū)塊組裝:mvm\l2 geth 服務(wù)代碼,加入了 applyTransactionToTip 處理邏輯,以此判斷當(dāng)前 sequencer 是否應(yīng)組裝當(dāng)前區(qū)塊。
交易排序:修改原 op-node 代碼,借助 MPC 共識層的適配器模塊,獲取輪換列表與區(qū)塊高度對應(yīng)的當(dāng)前排序器的位置,來檢查自己是否為當(dāng)前有效排序器。
Sequencer 輪換
輪換信息存在L2 MetisSequencerSet 合約中,信息由共識層(PoS 節(jié)點)控制
每個 epoch,共識層更新 Sequencer 信息,經(jīng)過 MPC 簽名,發(fā)起交易,更新合約 Sequencer 列表
每個 epoch,根據(jù)合約 Sequencer 列表信息,輪流當(dāng)職
違規(guī):未及時,或者產(chǎn)生錯誤交易(兩筆相同 L2 TxID),PoS 層會選擇新的 Sequencer,{構(gòu)造 ReselectSeqencer 交易 MPC 簽名},新的 Sequencer 會在L2上發(fā)起當(dāng)前 TxID 的交易,同時新的 Sequencer 也會更新到 MetisSequencerSet 合約 {沒有懲罰機(jī)制}
觸發(fā)更新:收到常規(guī)交易,并且達(dá)輪換間隔,會暫停當(dāng)前常規(guī)交易,執(zhí)行 MetisSequencerSet.sol 合約更新交易,然后 PoS 層選擇將執(zhí)行當(dāng)前常規(guī)交易的新排序器。
加入:POS 合約,部署在L1,任何人,抵押 metis,申請成為 sequencer。當(dāng)達(dá)到上限,進(jìn)入等待隊列
獲得一個 NFT
禁止直接轉(zhuǎn)移,可通過 LockingPool 合約->updateSigner 更換簽名者,轉(zhuǎn)移 NFT
NFT 的 tokenId 對應(yīng) sequence id
替換:當(dāng) sequencer 長期處于不健康狀態(tài),將被踢出,并由候補(bǔ)替換
退出:
銷毀 NFT
update:通過 LockingPool 合約->updateSigner 更換簽名者,轉(zhuǎn)移 NFT
選擇:加權(quán)隨機(jī)選擇算法
MPC 模塊
負(fù)責(zé)管理多重簽名密鑰的整個生命周期
多重簽名生成
密鑰重新共享
應(yīng)用簽名
刪除簽名
提供對多種多重簽名異步使用的支持
處理流程
第 1 階段:通知 MPC 節(jié)點做好準(zhǔn)備
在本地生成一個隨機(jī)數(shù) sessionID;
keyGenPrepare 使用p2p網(wǎng)絡(luò)將消息廣播到所有 MPC 節(jié)點;
每個 MPC 節(jié)點收到 keyGenPrepare 消息后,啟動各自的處理 goroutine;
根據(jù) 檢查本地數(shù)據(jù)(數(shù)據(jù)是指 TSS 模塊是否存儲了該 id 對應(yīng)的 mpc 信息)keyId;
如果狀態(tài)中已有數(shù)據(jù) READY,則直接從存儲中返回數(shù)據(jù),無需繼續(xù)操作 keyGen;
如果已經(jīng)存在具有 PENDING 狀態(tài)的數(shù)據(jù),則返回錯誤,以避免由于并發(fā)執(zhí)行不同的密鑰生成調(diào)用而導(dǎo)致密鑰生成不一致;
建立p2p通信通道;
將消息返回 keyGenReady 給發(fā)起節(jié)點;
第二階段:啟動 keyGen 流程
發(fā)起節(jié)點等待接收 keyGenReady 來自所有節(jié)點的消息;
一旦發(fā)起節(jié)點收到 keyGenReady 來自所有節(jié)點的消息,它就會 keyGenStart 使用 p2p 網(wǎng)絡(luò)將消息廣播到所有 MPC 節(jié)點;
收到 keyGenStart 消息后,每個 MPC 節(jié)點:
在本地構(gòu)造一個 LocalParty 實例;
開始從其他節(jié)點接收信息
展望
區(qū)塊鏈排序器的發(fā)展前景充滿了激動人心的變革。隨著區(qū)塊鏈生態(tài)系統(tǒng)的不斷演進(jìn),排序器將經(jīng)歷從中心化到更加分散、高效和適應(yīng)性強(qiáng)的解決方案的重大轉(zhuǎn)變。這一變革對提高以太坊生態(tài)系統(tǒng)的交易效率、可擴(kuò)展性和安全性至關(guān)重要。
去中心化是加密貨幣的核心哲學(xué)。通過共享排序網(wǎng)絡(luò),經(jīng)濟(jì)機(jī)制能夠有效地解決價值累積和收入分配的問題。隨著排序器模塊化構(gòu)建和開發(fā)框架的日益成熟,未來這些技術(shù)將成為行業(yè)發(fā)展的強(qiáng)大催化劑,推動區(qū)塊鏈生態(tài)系統(tǒng)向更加創(chuàng)新和高效的方向邁進(jìn)。
參考資料
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
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。