區塊鏈排序器的發展前景將是一段振奮人心的變革之旅
作者:Ac-Core,YBB Capitalital Researcher
封面:Photo by Joel Filipe on Unsplash
前言
排序器(Sequencer)是目前乙太坊擴容方案 Rollup 中的重要元件,它用於對交易進行排序並進行區塊創建、交易接受、交易排序、交易執行和交易數據提交等相關操作。 隨著乙太坊網路 Layer2 數量的增多及其生態的繁榮,Layer2 自身的盈利方式和中心化問題也逐漸受到大家的關注,如在 Rollup 中較為重要的排序器元件能否實現去中心化和排序器利潤是怎麼分配的。 本文只做分析參考,不為專案宣發。
簡述 Rollup 經濟學
Rollup 的角色:
據乙太坊基金會研究科學家 @barnabemonnot 的解釋說明,我們可在 Rollup 系統中分出三個主要角色:使用者、Rollup 運營商和基礎層。 他們運行的主要流程大致為:當使用者在 L2 上進行交易,Rollup 運營商充當著使用者和基礎層之間的介面角色,並最終將數據發佈到基礎層,如下所示:
- 使用者:在 Layer2 網路上發送他們的交易,並將他們在 Layer2 上的資產部署在 Rollup 上進行合約交互,並將支付費用流向 Rollup 運營商;
- Rollup 運營商:代表處理 L2 網路上的交易所需的所有基礎設施,其中也包含很多其他角色,比如:發佈交易批次的排序器(Sequencers)、發佈聲明的執行者(Executors)、報告欺詐證明的挑戰者(Challengers)以及計算有效性證明的驗證者(Validator),其中最為重要的即為排序器;
- 基礎層:也可以理解為完整節點,其目的是保護 Rollup 的數據協定,用來處理和驗證所有交易,確保 Rollup 狀態正確並確保每筆交易的有效性,如發現錯誤交易並將其刪除。
Rollup 的成本:
Layer2 營運商成本:為維護一個交易池、序列批處理、計算狀態根/狀態差異/有效性證明等涉及到批量交易處理的排序、交易驗證、區塊生成等問題而產生的費用。 且由於 Rollup 運營商現在是中心化的,所以產生的成本由協定本身或合作方承擔,同時過程中的「交易壓縮」需要在基礎層上進行結算。
Layer1 資料可用性成本:DA 是 Rollup 等效於乙太坊安全性的保證,Rollup 為了在乙太坊上發佈數據,當運營商聚合了大量的交易集時,運營商就需要將交易集以「CallData」的形式釋出到基礎層,其中貢獻給乙太坊 L1 的 DA 成本占 Rollup 總成本的絕大多數,且當時的數據市場價格由 EIP-1559 進行管理。
Layer2 的擁堵驗證成本:這是一個飽受爭議的影響成本,當 Rollup 總區塊空間的供應無法滿足現有市場需求時,就必須對稀缺資源進行分配,它也直觀的反映了 Gas 價格與網路流量的動態平衡。
Rollup 的收入:
話題來到 Rollup 的收入,其收入主要有兩個來源:交易價值(Transaction Value)及發行(Issuance)。
交易價值
Rollup 的本質是對乙太坊進行擴容,提速和降低 Layer1 壓力,Rollup 中是否會獲得 MEV 相關的收益問題,其實答案是否定的。 因為 Rollup 自身是依靠排序器,依靠 Gas 支出高低進行交易排序,因它沒有區塊的概念所以本身不存在 Mempool,但現今像 OP Mainnet 的私有 Mempool 卻帶來了 MEV 問題,因此 Rollup 本身在沒有 “私有化 Mempool” 的前提下不會獲得 MEV 利潤,從本質來講 Rollup 最大的利潤來源於交易 Gas 之間的價格差。
發行
第二個收入來源是發行。 在基礎層,以網路原生加密資產的區塊生產者的新鑄造代幣形式獲得收入。 一定程度上抵消了區塊生產者的基礎設施成本,一旦利潤產生就會吸引來更多的區塊生產者。 我們在假設 Rollup 在能夠鑄造自己的 Token 的情況下,Rollup 可能會通過發行新代幣來支付運營費用(但實際這裡的模型會較為模糊,且有多種方式將收入來源用於 Rollup 成本)。
關於成本和收入平衡相關的問題,我們就不做展開敘述,上述僅做簡述,坎昆升級在一定程度上也會影響 Rollup 盈收情況,其核心 EIP-4844(又被稱為 Proto-DankSharding)如用一段話概括,便是緩解乙太坊 Layer1 的高昂 DA 成本問題,出現了 “blob” 的臨時外部存儲,可將 Layer2 交易的數據內容移動到一個新的臨時 ” blob“ 中存儲。 但它並沒有真正的把 Layer2 交易數據存儲到 Layer1 中,其好處在於 Layer2 會有更低的存儲成本和更快的速度,但目前 Layer2 的數據黑盒所帶來的不確定影響仍值得探究。
簡述 Rollup 工作原理:
- 匯總:卷積節點收集多個事務並創建一個壓縮摘要即捲積塊,其中包含事務驗證和狀態更新所需的基本資訊;
- 驗證:Rollup 區塊會被提交到主區塊鏈,由驗證器節點驗證區塊內交易的有效性,並確保它們符合預定義的規則。
總的來講區塊一旦得到驗證,Rollup 的狀態就會在鏈上更新並反映交易的結果。 以此通過 Rollup 來減少 Layer1 上的計算負荷和數據存儲需求,從而顯著提高可擴充性。 其中的有效做法是將計算和狀態存儲都轉移到鏈外,但將部分數據保留在鏈上。
什麼是排序器:
排序器是 Rollup 設計選擇上的核心元件,如同字面意思,它負責對接受的交易對,其支付的 Gas 價格進行排序,將交易打包捆綁到區塊中並提取費用,以此來提升交易的有序性和整個系統的處理效率。 但現實是目前乙太坊上所有的 Rollup 都以相互孤立且中心化的方式來運行,且均由各自的 Rollup 團隊進行管理,這帶來的直觀影響是 Rollup 供應商們通過維護自身中心化的排序器來讓整個網路達到更便宜和快捷的目的,但這同時也在獨食著 Rollup 的利潤。
如同上文中 Rollup 的成本和收入部分,其主要的利潤來自於對使用者的 Gas 差價的收入進行排序,而支出主要在於 Layer2 對於 Layer1 的數據可用性成本,以及中心化運營商的運營支出,所以排序器主要從用戶側收取交易費用,並向乙太坊支付 DA 費用,簡單理解:
排序器收入 = 使用者交易 Gas 差價收入 – L2 向 L1 數據支出 – 排序器運營支出
Op Rollups 與 Zk Rollups 的不同排序方案
Op Rollups 是將大量鏈外交易捆綁在一起,形成較大的批次然後再發佈到基礎層。 這一過程有利於將固定費用分配給每批中的眾多交易,從而降低用戶的費用。 在分批處理交易的同時,還採用了上述多種壓縮技術,以盡量減少發佈到基礎層的數據。 兩者不同的是 Zk Rollups 利用密碼學來證明鏈外交易的有效性,Op Rollups 依賴於一種檢測欺詐活動的機制來識別交易計算不準確的情況。
提交批量 Rollup 後會出現一個挑戰時間段,在此期間任何人都可以通過生成欺詐證明來質疑卷積交易的結果。 在欺詐證明成功后 Rollup 協定會重新執行交易,並相應調整卷積的狀態。 此外,欺詐證明成功會導致排序者的賭注被削減,因為排序者將錯誤執行的交易包含在一個區塊中。 在這一過程中,如排序者將錯誤執行的交易納入區塊欺詐證明,成功後會導致排序者的利益受損。 挑戰期結束后,如果滾動批次仍未被驗證(即所有交易均正確執行),則會被確認為有效並納入基礎層。 在實現過程中的排序器問題上,OP 是採用多鏈但單一的共用排序器。
ZK Rollups 將交易匯總成批次,在鏈外進行處理,從而減少了需要上傳到區塊鏈的數據量。 其排序器將代表整批事務所需的更改合併為單個,而不是單獨傳輸每個事務,這一過程為了驗證狀態變化是否正確,它們會生成有效性證明。 所以 Zk Rollups 是依賴零知識的有效證明而不是欺詐證明,排序器從 L2 收集交易數據,並負責向 L1 提交(根據具體架構,也可能負責發佈)零知識證明。 如果定序者有惡意行為,他們的賭注會被削減,這就促使他們發佈有效的區塊(或批次證明)。 證明者(或排序者,如果合併為一個角色)憑藉生成交易執行的不可偽造證明,來證明這些新狀態和執行是正確的。
隨後,排序器將這些證明連同交易數據或至少是狀態差異提交給乙太坊主網上的驗證器合約。 從技術上講,排序者和證明者的職責可以合二為一。 但是由於證明生成和交易排序都需要高度專業化的技能才能充分完成,因此將這些職責拆分開來可以防止在卷積設計中出現不必要的集中化。
在許多情況下,排序器在進行零知識證明的同時,只向 L1 提交 L2 狀態的變化,並以可驗證哈希的形式將這些數據提供給乙太坊主網上的驗證器智能合約。 由於 Zk Rollups 只需提供有效性證明即可完成交易,因此從 Zk Rollups 轉出或轉入基礎層的資金不會產生任何延遲。 一旦 Zk Rollups 合同確認了有效性證明,退出交易就會執行。
排序器的中心化與去中心化
目前 L2 中排序器都是中心化的,但去中心化排序器在未來也尤為重要,從意識形態的角度來看,在存在信任假設的前提下,單一的中心化排序器並不可取。 不過排序器並非必不可缺,它只是 Rullup 在設計上的選擇,因目前暫未有全新方案替且如今 Rollup 均採用中心化的排序方式來解決交易排序問題,當下 Rollup 的實際進展由下圖 L2BEAT 官方數據所示。
- 中心化排序器
優點:可以極大的提升交易確認速度和降低交易成本,友好使用者交易體驗;
缺點:其最主要的缺陷來自於單點宕機風險和壟斷,單點宕機問題不用做過多闡述,如今 Rollup 宕機事件頻發已不是什麼新鮮事,而壟斷帶來的風險也不言而喻,中心化排序器毋庸置疑獲得了交易的排序權,以此可輕鬆實現自身利益的最大化,其次也會帶來抗審查的相對薄弱風險。
- 去中心化排序器
優點:是否使用去中心化的排序器似乎已成為衡量 Rollup 能否真正去中心化的重要標準,其優點不言而喻,可以極強的增加去中心化程度,防止運營商作惡,以此極大程度上確保了用戶的資產安全,以及可有效防止 Rollup 出現種種宕機現象;
缺點:提升去中心化和安全的代價是降低交易速度或增加交易成本,從而導致在一定程度上弱化使用者的交互體驗。
第二層的不同類型:
Vitalik 在近文《Different types of layer 2s》中提到第二層專案的異構化趨勢在未來會越來越明顯,並且這一趨勢會一直持續下去,比如傳統上以 Arbitrum、Optimism 和 Scroll 為代表的公鏈,和近期以 Kakarot 和 Taiko 為代表的 EVM 生態系統的發展,其主要原因有以下幾點:
- 一些目前是獨立第 1 層的專案正在尋求向乙太坊生態系統靠攏,這些專案可能希望逐步過渡並有可能成為第 2 層。 但因為技術還沒準備好,所以暫時把所有東西都放在一個 Rollup 上;
- 一些中心化專案希望為其使用者提供更多安全保證,並正在探索基於區塊鏈的途徑。 在許多情況下,這些專案會在上一個時代探索「許可資產鏈(Permissioned Consortium chains)」。 實際上,它們可能只需要「中途之家」級別的去中心化。 此外,這些專案的輸送量往往很高,因此至少在短期內,它們甚至不適合滾動發展;
- 弱金融類應用如遊戲或社交類應用,他們也希望實現去中心化。 就社交媒體而言,現實中需要對應用程式的不同部分區別對待:使用者名註冊和賬戶恢復等罕見且高價值的活動應採用滾動方式,而帖子和投票等頻繁且低價值的活動只需要較低的安全性。 因鏈故障導致的帖子消失風險是可以承受的。 而因鏈失效導致的賬戶丟失風險就比較難以承受。
儘管目前乙太坊 Layer1 中的應用程式和使用者在短期內只需支付較小的 Rollup 費用,不過本章節我們想和大家強調的點是使用者是否能夠順利的將資產安全地從 Layer2 回撤至 Layer1,即 Rollup 的 “強制提款” 和 “逃生艙” 功能,見 Faust 解釋的相關擴展連結【1】。
假如你有一筆資產,它位於 Layer1 上,但需要先存入 Layer2,後才可轉入至其他錢包地址,我們能在多大程度上保證你能將這筆資產取回至 Layer1? 為此不妨隨著我們一起用一張簡單的圖表來將此釐清:
值得一提的是,這是一個簡化模式,有很多中間選項。 例如:
- 介於 Rollup 和 Validium 之間:在 Validium 中,任何人都可以進行鏈上支付,以支付交易費用,此時運營商將被迫向鏈上提供一些數據,否則就會損失押金。
- 在 Plasma 和 Validium 之間:Plasma 系統【2】提供類似於卷積的安全保證和鏈外數據可用性,但它只支援有限數量的應用。 一個系統可以提供完整的 EVM,併為不使用這些更複雜應用的使用者提供 Plasma 級保證,為使用這些應用的使用者提供 Validium 級保證。
這些中間選項可以看作是介於卷積和有效值之間的一個頻譜。 但是,是什麼促使應用程式選擇光譜上的某一點,而不是更左或更右的某一點呢? 這裡有兩個主要因素:
- 乙太坊原生數據可用性的成本,隨著技術的改進會逐漸降低。 乙太坊在下一個硬分叉 Dencun【3】里引入了 EIP-4844,提供每秒約 32 KB 的鏈上數據可用性。 在接下來的幾年內,隨著完整的「鏈上數據分片」【4】的推出,這一數據可用性預計將分階段提高,最終達到每秒約 1.3 MB 的數據可用性。 與此同時,數據壓縮技術的改進【5】將使我們能夠用相同數量的數據做更多的事情;
- 應用程式自身的需求:高昂的費用與應用程式出錯相比,使用者需要承擔多少損失? 金融應用程式會因應用程式故障而遭受更大的損失; 遊戲和社交媒體涉及每個使用者的大量活動,且活動價值相對較低。 因此對它們來說,不同的安全權衡是有意義的。
去中心化排序器,一種是 Rollup 專案方自己做,另一種是藉助第三方實現。 借助第三方實現去中心化排序器,其實也可以稱之為排序即服務(Sequencing-as-a-Service)。 Espresso、 SUAVE、Astria、Radius 等專案都專注於去中心化排序器方案,它們的實現路徑各不相同。
去中心化排序器解決方案:
1)Espresso:由五個主要元件組成:1. 基於 HotStuff 的共享機制【6】其過程需要經三分之二多數通過後才能確定且不可逆轉; 2. 其 DA 層提供兩種不同的數據檢索路徑。 第一種路徑樂觀而快速,第二種路徑更可靠,但備份速度較慢,專為對抗條件設計; 3.Rollup REST API:滾動程式使用此 API 與 Espresso Sequencer 無縫集成; 4. 排序器合約:排序器合約是一種驗證 HotShot 共識的智能合約,它可以充當輕用戶端,管理交易訂單檢查點以及負責監督 HotShot 協定的股權表; 5. 網路層: 該層用於促進參與 DA 層和 HotShot 共識的節點之間的通信。 總體如下圖所示,當使用者的交易被發送到 Rollup 時,它會使用 ZK 或樂觀方案進行交易驗證。
2)SUAVE 是一個獨立的網路層與其他區塊網路可以共用記憶體池,它自身無法與乙太坊或其他公鏈的智慧合約相通用,而是將記憶體池和區塊生成的部分從現有公鏈中單獨分離,以此支援更多的 Layer1 或者 Layer2 網路,並成為 Rollup 鏈的共用排序器。 所以它在跨鏈 MEV 和不同 Rollup 之間的交易排序也存在一定優勢, 不過其帶來的風險也同跨鏈橋所面對的那樣。
3)Astria 是建立一個共用排序器網路層以此避免中心化排序器的劣勢,它依靠基於 Tendermint 的領導者輪換(Tendermint-based leader rotation)機制來解決交易排序的可擴展性和中心化單點故障的宕機風險,與此同時 Astira 的排序器架構設計用於聚合來自多個 Rollup 的交易, 而不是為單一區塊生成不同的狀態根,形成的交易會按順序排列成有「內聚力」的區塊,然後統一發佈到 Layer1 的 DA 層,以此有效地將交易排序與執行分離開,也正因採用了這種解耦方式,使得 Astria 能夠容納各種具有不同狀態轉換功能的 Rollup。
4)Radius 與其他方案的實現機制均不同的是它通過啟用加密 Mempool 和讓多個排序器同時運行來確保 Rollup 交易被無需信任地排序,通過這種方式來消除 MEV 帶來的相關風險。 它採用可驗證延遲加密機制(PVDE)【7】來實現 Mempool 的加密,採用零知識證明加密方式來確保交易的無信任排序和防止中心化排序器相關風險。 不過用零知識證明來提升安全性的代價是,雖然有 MEV 保護但對用戶來說可能會出現交易延遲等問題。 Radius 的交易流程如下:
- 使用者向排序層發送事務
- 排序層對事務進行排序並生成一個區塊
- 組成的區塊隨後提交給 Rollup 相關程式
- Rollup 按照排序層提供的順序執行交易
- Rollup 將已執行的交易提交給結算層 DA 來進行最終確認
5)Madara 是 Layer2 網路 StarkNet 中使用的排序器,它是一種較為靈活的排序方式,既可以中心化運行也可以去中心化運行,以此對不同的應用程式進行定製,目前 Madara 是 StarkNet 的現成排序器解決方案,與之相關的研究和開發工作仍在進行中。
展望:
區塊鏈排序器的發展前景將是一段振奮人心的變革之旅,隨著區塊鏈生態系統的發展,排序器將經歷重大變革,從中心化設計轉向更為分散、高效和適應性更強的解決方案。 排序技術的進步對於乙太坊生態提高交易效率、可擴展性和安全性可謂是至關重要。
去中心化是加密貨幣的哲學基礎,共用排序網路通過經濟機制解決價值累積和收入分配問題,最後關於排序器日益成熟的模組化構建模組和開發框架生態系統在未來必將成為行業強大的催化劑。
解釋文獻:
【1】https://mp.weixin.qq.com/s/OEL4_-uocBy8WSU4jAeVgQ
【2】https://consensys.io/blog/ethereum-dencun-upgrade-explained-part-1
【3】https://hackmd.io/@vbuterin/sharding_proposal
【4】https://twitter.com/VitalikButerin/status/1554983955182809088
【5】https://arxiv.org/abs/1911.12095
【7】https://ethresear.ch/t/mev-resistant-zk-rollups-with-practical-vde-pvde/12677
參考文章:
https://pansophicchad.substack.com/p/the-tech-sequencers
免責聲明:作為區塊鏈資訊平臺,本站所發佈文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。 文章內的資訊僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。