作者:helloyyy
一、前言
時光飛逝,據Optimism 發幣已過去一年有餘,據Arbitrum 發幣也已過去將近半年;發幣僅是它們萬裡長徵的第一步,在此期間,Optimism 實現了Bedrock 升級、推出了通用的模組化L2 堆疊OP Stack, 基於此誕生了Base 等明星Rollup;Arbitrum 致力於探索L3 推動Arbitrum Orbit 的應用。
Rollup 賽道在兩位巨人的引領下,整個賽道的TVL 一度突破100 億美元,目前穩定在100 億美元上下。 Rollup 作為以太坊「招牌」的擴容解決方案被津津樂道的背後,它們仍然存在非抗審查、中心化的屬性。主流的Rollup 鏈普遍由官方運作中心化的排序器,雖然Arbitrum, Optimism, StarkNet 等Rollup 專案把排序器的去中心化列入路線圖中,但均處於規劃中短期內尚未實現的狀態。去中心化排序器作為Rollup 去中心化最重要的一塊拼圖,對Rollup 本身而言具有非常重要的戰略地位,也是民之所向。
二、Rollup 的交易費用
在了解什麼是排序器之前,先來聊聊Rollup 交易費用的組成。 Rollup 的交易費用即用戶在Arbitrum 等L2 交易產生的gas 費。
主要由2 部分組成:
1)L2 執行費用
2)L1 數據費用
L2 執行費用:交易在L2 執行的成本(每筆在L2 鏈上發起的交易都要支付一筆執行費)
交易瓦斯價格= L2 基本費用+ L2 優先費用
L2 執行費用= 交易瓦斯價格* L2 瓦斯使用量
L1 數據費用:將L2 交易發佈到L1 的成本。通常情況下,L1 資料費用要高於L2 執行費用。
L2 交易費用= L2 執行費用+ L1 數據費用
排序器的淨收入= L2 的交易費用收入- 排序器營運成本- L1 資料費用
專案方營運的中心化排序器擁有一定程度的定價權(例如L2 執行費用收高一點、L1 資料費用收高一點),這也是為什麼幾個知名Rollup 專案方賺得盆滿缽滿的原因。
什麼是排序器?
排序器,顧名思義,即負責交易排序的角色。在比特幣網絡,交易排序的職責由礦工負責;以太坊由節點集合負責,它們均不是固定的角色,而是更具共識機制來決定誰有權參與順序執行。
目前主流的Rollup 均運行中心化的單一排序器。使用者在L2 的交易進入mem 池(此時mem 池中的交易是無序狀態),排序器將交易排序、壓縮成一組有序的批次,然後發送到以太坊的DA 層。
Rollup 必須要排序器嗎?
答案是否定的。 Rollup 上的交易完全可以繞過排序器提交給L1 基礎層,由L1 來負責排序和結算,但也將面臨較高的gas 消耗和較長的交易確認時間。
Rollup 排序器類似於使用了「快車道」,把數百上千筆L2 交易壓縮聚合成單筆L1 交易,從而大大降低了gas 成本。這也是目前主流的Rollup 都運行中心化排序器的原因,為用戶提供更低的gas, 更快的交易確認,從而改善用戶交易體驗。
三、中心化排序器vs. 去中心化排序器
中心化!
中心化的優勢非常明顯,想怎麼給交易排序怎麼排,不需要換人排序,也不需要對排序的結果達成共識。也意味著擁有非常快速的交易確認速度,使用者的體驗感更好;但中心化也賦予了排序器對交易排序極大的自主權,它可以肆意對交易進行排序,以最大化自己的套利機會,攫取MEV 價值,延遲用戶交易甚至完全審查用戶。
排序器可以在單一區塊內透過改變交易排序攫取MEV 價值;危害更大的是,由於排序器控制著連續多個區塊的排序,很容易執行跨區塊MEV,從而造成規模更大的攻擊。
上述情況都屬於排序器主動作惡,有些錯誤並非排序器有意為之,但仍損害了使用者的體驗和權益。打個比方,排序器不小心把一筆已經花費的代幣交易重新包含在軟承諾中,然後發送給L1 驗證,可能存在交易遲遲無法得到確認的情況;又如單一的排序器掉線了,導致二層無法正常出塊,網路長時間宕機。
魚和熊掌不可兼得,但Rollup 性能的最佳化絕不能以犧牲去中心化和抗審查為代價。
去中心化?
如果中心化是1,那麼去中心化就是多。不同去中心化排序器方案的實作路徑有差異,但它們的核心概念是一致的,就是權力下放。
排序器不再擁有中心化對交易排序至高無上的權利,負責排序的角色基於特定的選舉機制從一組排序器集合中選出,並進行固定週期的輪換。
去中心化杜絕了排序器源源不斷地攫取MEV,也防止了單一排序器審查使用者的交易。加之對應的作惡懲罰機制,也能有效規範排序器的行為。
四、去中心化排序器賽道概覽
繞了這麼久,終於進入正題了。去中心化排序器,一種是Rollup 專案方自己做,另一種是藉助第三方實作。借助第三方實作去中心化排序器,其實也可以稱為Sequencing-as-a-Service,排序即服務。
Espresso、Astria、SUAVE、Radius 等專案都專注於去中心化排序器方案,它們的實作路徑各不相同。
1. Espresso
Espresso Systems 早期是一家專注於隱私解決方案的服務商,2022 年3 月宣布獲得由Electric Capital, 紅杉,Blockchain Capital 參投的近3,000 萬美元的A 輪融資。 Espresso Systems 目前基本轉型做Espresso Sequencer,專門為Rollup 提供去中心化排序器的服務。
L2 交易在Espresso 排序器的排序機制下,大體經歷的生命週期如下:
1)用戶在二層發生的交易傳送到Rollup 伺服器(API);
2)交易進入mem 池,排序器(透過HotShot 共識選舉)將交易排序並包含在一個區塊中;
3)排序器將交易廣播,經由其他節點達成HotShot 共識後出塊,交易被執行;軟承諾提供快速交易確認;
4)排序器將包含交易的區塊承諾附帶共識證書(QC: Quorum Certificate)發送並儲存在L1 排序器合約中(證明該區塊透過共識達成軟最終性);
5)已執行該區塊的Rollup 節點將新的Rollup 狀態傳送至L1(此時zkRU 需要附帶有效性證明,ORU 開啟挑戰期);
6)L1 Rollup 合約透過驗證排序器合約發送來的QC 檢查狀態更新的有效性。
這個流程看起來晦澀難懂,簡單理解就是:
HotShot 共識在一群排序器集合中選出其中之一,由它負責Rollup 交易的排序並把交易包含在一個區塊中;這個區塊必須經由其他的Rollup 節點簽署達成共識(2/3 以上HotShot 節點同意)才具有「最終性」,然後相關的區塊承諾和新的Rollup 狀態根才提交給L1 基礎層做驗證。
上面的「最終性」帶了引號,這個引號的「最終性」和不帶引號的最終性不是一個概念。引號的「最終性」是為了讓Rollup 的交易更快確認,延遲少,用戶的體驗更好;但Rollup 的交易最終還是要L1 基礎層去做驗證(zkRU 要驗證有效性證明,ORU 要等待挑戰期結束),驗證Rollup 提交的交易沒問題的情況下,這時Rollup 的交易才具有真正的最終性。
也意味著:如果L1 基礎層驗證交易是無效的話,相關的已出塊的L2 區塊就會面臨回溯。所以,「最終性」是為了讓交易快速確認,最終性是為了繼承以太坊的安全性。
Espresso + EigenLayer
Espresso 基於HotShot 共識解決了排序器輪換問題和交易「最終性」的確定問題,透過引入EigenLayer 解決排序器的存取問題。
EigenLayer 的再質押機制使以太坊的質押者同時成為Espresso 排序器成為可能,為HotShot 共識提供安全保障。簡言之,以太坊的節點質押者可以透過EigenLayer 的再質押機製成為Espresso Sequencer(ESQ),以太坊質押者在獲得PoS 節點收益的同時,也捕獲了二層MEV 的價值。
ETH 持有者的潛在收益= 原生網路的節點獎勵+ L2 EVM + 其他PoS 鏈的節點獎勵(使用EigenLayer 再質押機制),三重buff 極大賦能了ETH。
Espresso 作為通用類別的去中心化排序器解決方案,生態合作專案除EigenLayer 外,還包括Arbitrum, OP Stack, Caldera, AltLayer 等一眾明星模組化專案。
2. Astria
Astria 的定位是通用、無需許可的去中心化排序器,為不同Rollup 提供了開箱即用的共享排序器服務。融資方面,Astria 在2023 年4 月宣布完成由Maven 11 領投的550 萬美元種子輪融資,跟投機構包括1k(x), Delphi Digital, Lemniscap, Robot Ventures 等。雖然融資規模不大,但機構陣容非常華麗。
運作機制
Astria 去中心化排序器的運作機制和Espresso Sequencer 大同小異,目的都是透過把交易排序權利下放來弱化排序者的特權。具體來看:
針對排序器的輪換,Astria 提出了2 種輪換機制:簡單的領導者輪換(Leader Rotation)和拜占庭容錯(BFT)共識演算法。
- 1)領導者輪換
透過選舉的排序器組成一個集合,排序器集合輪流對Rollup 交易進行排序。這種方式杜絕了單一排序器長時間持續壟斷交易的排序權,一定程度上解決了對使用者持續審查的問題。
- 2)BFT 共識演算法
跟領導者輪調機制類似,輪到的排序器有權負責交易排序,但排序器集合中必須有2/3 及以上成員需要就這個排序達成共識。
兩種方法各有優缺點:前者交易確認速度更快,實現快速出塊,效率接近中心化排序器。但折衷點是仍很難約束輪到的排序器不去作惡;採用BFT 共識作惡的機率更小,需要集合中2/3 的排序器投票達成共識才出塊。但需要一定的時間進行共識投票,造成了網路延遲的問題。
3. SUAVE
SUAVE 是Flashbots 建構的去中心化、即插即用的共享排序器解決方案,作為通用類別方案,SUAVE 能為任意L1/ L2 提供記憶體池和去中心化區塊建置。 SUAVE 與前述共享排序器設計的不同之處在於,SUAVE Chain 本身就是一條EVM 相容鏈,透過區塊「競標」的方式實現交易排序。
SUAVE 架構
SUAVE 的架構由3 大核心元件構成:通用偏好環境、最佳執行市場和去中心化區塊建構。
1)偏好環境
偏好覆蓋範圍廣泛,從簡單的交易到複雜的事件。使用者的偏好以交易的形式反映在mempool 中,偏好環境作為一個公共的mempool 將偏好匯聚在一起。 SUAVE 提供的通用偏好環境使多鏈的使用者偏好公開透明,消除了資訊差,在一定程度上解決了跨鏈MEV 的問題。
2)執行市場
執行市場是由執行者參與的網絡,執行者負責監聽SUAVE memepool 並相互競爭,競爭驅動它們為用戶偏好提供最佳的執行。可以理解為所有的執行者透過「競標」的方式去實現用戶的偏好,將用戶交易產生的MEV 盡可能地返還給用戶。
3)去中心化區塊構建
最後,依據收集到的偏好和最佳的執行路徑,去中心化區塊建構網路將它們包含在區塊中。至此實現交易發現、交易排序、出塊的全流程。
4.Radius
Radius 的定位是一個無需信任的共用排序層。與前述方案的實現機制均不同,Radius 透過啟用加密mempool, 確保Rollup 交易被無需信任地排序,從而消除有效的MEV 和用戶交易審查。
融資方面,Radius 於2023 年6 月宣布完成由Hashed 領投的170 萬美元Pre-seed 輪融資,跟投機構包括Superscrypt, LambdaClass 和Crypto.com。
Espresso, Astria 等基於共識機制的去中心化排序器在一定程度上降低了MEV 和審查風險,但是以犧牲網絡可擴展性和時間效率為代價的,帶來了一定的交易確認延遲(需要就交易排序達成共識)。此外,雖然交易排序處在一個去中心化的環境中,由於mempool 的相關交易是透明的,排序器仍然有作惡的空間攫取MEV. Radius 透過加密mempool, 相關交易資訊對排序器不可見,旨在從源頭扼殺排序器惡意攫取MEV 和審查交易的問題。
技術架構
Radius 技術架構可分為以下4 大功能層級:排序層(Radius)、執行層(Rollup)、結算層和資料可用性層。
1)排序層
1. 使用者提交加密交易和證明給排序器;
2.排序器驗證證明並驗證交易;
3.排序器對交易進行排序,在此之前無法解密交易;
4.排序器建構一個區塊;
5.排序器將區塊提交給Rollup 執行。
2)執行層
1. Rollup 接收來自排序器的區塊,並按照提供的順序執行交易;
2.Rollup 將交易狀態和狀態證明提交給結算層。
3)結算層
1. 結算層接收來自Rollup 的狀態和狀態證明,負責驗證證明並確定交易的最終性;
2.排序層驗證執行是否與順序相符。
4)資料可用性層
資料可用性層儲存資料並確保資料可用。
mempool 的加密機制- PVDE
Radius 採用基於零知識證明的加密方案「實用可驗證延遲加密」(PVDE)來建立加密mempool。
具體流程如下:
當使用者向排序器提交交易時:
1.使用者產生一個時間鎖謎題和一個對稱密鑰;
2.使用者使用對稱金鑰對交易進行加密,加密後的交易進入mempool;
3.排序器對加密交易進行排序,排序器需要解鎖時間鎖謎題才能獲得解密金鑰;
4.排序器在解鎖時間鎖謎題前計算訂單承諾,並將承諾提交的結算層(用於驗證排序器按順序將交易提交給了Rollup)。
排序器的去中心化方案
加密mempool 確保了排序器的無需信任,但單點故障風險仍然存在。如果執行單一排序器+ 加密mempool, 排序器故障會導致網路宕機。為了解決這個問題,Radius 提出了多種去中心化排序器實作方案,包括秘密領導者選舉機制、排序器組分片機制等。
當然,Radius 也可以選擇參考Espresso 和Astria 的排序器輪替機制,同時實現交易排序的去中心化與不需信任。
區塊空間優化
Radius 透過區塊空間優化,旨在實現既保護用戶又最大化Rollup 利潤的目標。 Rollup 採用先到先服務(FCFS)的排序機制,優點是能有效防止MEV, 弊端是必須犧牲區塊空間拍賣的潛在利潤。
為了解決上述交易排序的兩難困境,Radius 透過將區塊空間劃分為頂部區塊空間和底部區塊空間2 部分:
其中頂部區塊空間專用於用戶交易,將用戶交易加密,消除交易排序操縱,從而保護用戶免受有害MEV 和審查風險;底部區塊引入一個基於拍賣的交易市場,套利者可以將捆綁交易和它們的出價提交給排序器,排序器會選擇出價最高的捆綁交易包含在區塊中,這種方法能夠使Rollup 利潤最大化。
以上就是目前主流的通用去中心化排序器解決方案。對於Rollup 而言,面臨著運行中心化排序器還是去中心化排序器?整合第三方通用排序器方案還是自行實現去中心化?採用哪一種技術實現方案來實現交易排序的去中心化?等多個維度的利弊權衡。
五、Rollup 間的博弈
權衡1: 是否去中心化?
Optimism, Arbitrum, zkSync, Base 等幾大主流Rollup 靠著運作中心化排序器賺得盆滿缽滿,去中心化將交易排序的權利下放必然涉及分潤。在不考慮Rollup 賽道愈發激烈的競爭格局的前提下,誰也不願意把這份到手的香餑餑分出去。但假設有Rollup 率先啟動去中心化排序器,這或許是一個巨大的流量入口,在Rollup 細分賽道中形成示範效應,從而倒逼其他Rollup 項目將其排序器去中心化。
權衡2: 整合通用第三方vs. 內部專用解決方案
排序器實現去中心化的路徑整體而言就2 種:一種是別人做好的拿過來用;另一種是自己下場幹。像Espresso, Astria 等第三方能夠為Rollup 提供開箱即用的去中心化排序器服務,那麼Rollup 本身就能繼續專注於產品差異化和優化性能,提高自身的核心競爭力;此外,集成通用類的去中心化排序器方案也更利於實現互通性,帶來包括跨Rollup 套利等更多的可能性。而此方案的弊端可能在於無法對Rollup 本身的原生代幣進行有效的賦能。
Rollup 如果採用內部專用解決方案實現去中心化排序器,這是最耗時且昂貴的方案,但確實實現Rollup 原生代幣賦能的最行之有效的方式。如StarkNet 的專案方可以要求用戶質押協議原生代幣成為排序器集合參與Rollup 的交易排序,並收取一定的服務費用,從而實現價值的累積。
權衡3: 採用哪一種技術實現方案實現去中心化排序?
如前所述,實現去中心化交易排序的技術實作方案有很多,包括但不限於基於不同的共識機制、FCFS、區塊競價、加密mempool 等方案。每種技術實現方案各有優缺點:基於共識機制將受限於時間效率、加密mempool 無法實現Rollup 利潤最大化等,當然也可以參考Astria 融合2 種不同的技術實現方案。各種不同技術實現方案間的權衡點是所有Rollup 專案需要深思熟慮的問題。
寫在最後
雖然目前Rollup 賽道的龍頭Optimism、Arbitrum 均已發幣,但這或許只是個起點,真正意義上的競爭可能才剛開始。至少從目前的趨勢來看,去中心化排序器一定是兵家必爭之地。
zk 系列Rollup 計畫也悄悄崛起,在競爭日益激烈的環境下,走錯一步可能都會造成無法彌補的損失。但在影響計畫生死存亡的革新面前,Rollup 們無從選擇,只能順應大勢。
參考文獻
[1] Binance Research: Ethereum's Rollups are Centralized. A Look Into Decentralized Sequencers
[2] Espresso HotShot: Consensus Designed for Rollups
https://medium.com/@espressosys/espresso-hotshot-consensus-designed-for-rollups-b080ba7362d1
[3] Based rollups—superpowers from L1 sequencing
https://ethresear.ch/t/based-rollups-superpowers-from-l1-sequencing/15016
[4] Introducing Astria: The Shared Sequencer Network
https://blog.astria.org/introducing-astria/
[5] Introducing the Astria Development Cluster
https://blog.astria.org/introducing-the-astria-development-cluster/
[6] Why Decentralize Sequencers?
https://blog.astria.org/why-decentralize-sequencers/
[7] IOSG 詳解SUAVE:MEV 規模成長的新十年
https://foresightnews.pro/article/detail/24673
[8] The Future of MEV is SUAVE
https://writings.flashbots.net/the-future-of-mev-is-suave/
[9] Radius Gitbook
https://docs.theradius.xyz/overview/introduction-to-radius