原文作者:NashQ,Celestia
編譯:林克,《極客web3》
導語:本文由Celestia研究員NashQ關於Rollup模型分析的零散發言整合而成,包含4種新的Rollup變體。此前,在《站在Celestia的視角解析Rollup:6種變體的審查抗性和活性》一文中,他列舉了6種不同的Rollup模型,而本文是他在此基礎上新抽像出的4類Rollup模型。
此前,NashQ將定序器Sequencer分成聚合器+Header Producer兩大模塊,從交易指令的生命週期切入,講解了Celestia主權Rollup的運作原理,探討了不同Rollup變體的抗審查性和活性,以及用戶在信任最小化前提下的最低配置(就是要達到Trustless,Rollup用戶至少要運行哪些類型的節點)。
變體7 : Based Rollup+多個Header Producer+“highest Protocol MEV”
在這個Rollup變體中,Rollup網絡用戶直接把交易數據發佈到DA層區塊上,然後Header Producer負責交易排序,MEV被其提取。顯然,Rollup變體7的交易聚合/包含流程,與以前介紹過的Based Rollup一樣,由DA層負責(用戶直接把交易發到DA層),但交易排序與Based Rollup不同,DA層節點不負責排序,由HP(Header Producer)負責。
下面假設有三個HP,它們彼此存在競爭關係,並且遵守名為“highest Protocol MEV”的MEV分配協議。該協議由Cosmos生態的Skip Protocol提出,不同於以太坊PBS方案,Block Builder需要額外支付一筆付給區塊鍊網絡Validator的“小費”,付小費最多的Builder構建的區塊會被Validator們採納。同時,SKIP Protocol提出了“主權MEV”的概念,意圖讓公鍊網絡的全體Validator及社區有對MEV分配的自主權,解決以太坊PBS中Builder因飛輪效應越來越中心化的問題(但這不是本文要探討的核心)。
在本文介紹的Rollup變體中,不同的Header Producer需要在自己創建的Batch Header中聲明小費金額,付小費最多的HP發布的Batch Header自動被Rollup的節點們接納(通過節點代碼中寫好的賬本分叉選擇算法自動完成)。
除此之外,HP發布的Batch Header必須能夠對應DA層上的完整交易批次Batch。
如果HP發布的Header存在錯誤,比如交易執行結果Stateroot不對,或者沒有包含Batch中的某筆交易(丟交易),誠實的Rollup全節點會向輕節點廣播欺詐證明Fraud proof。但通常(樂觀情況下),輕節點可以接受HP發布的Header並相信它沒有問題。
抗審查性分析:該Rollup存在2處可進行交易審查的點。第一處存在於DA層,它可以審查交易內容,並拒絕包含某些用戶的交易。第二處還是存在於DA層,它可以審查HP提交上去的Header,並拒絕包含某個Header,這樣它就可以和Header串謀,通過審查攻擊來壟斷MEV。
同時,交易排序由HP負責,由於有欺詐證明的存在(可以針對HP丟交易的情況),HP自己往往不會展開審查攻擊,但它可以賄賂DA層的節點去做(或者自己跑一些DA層的節點)。對此的解決方法是,延長Rollup交易序列被最終敲定的窗口期,使得被惡意DA層節點拒絕的Header,可在窗口期結束前及時被誠實DA層節點包含上鍊,進而增加DA層節點審查攻擊的難度。
活性:L = L_da && ( L_hp1 || L_hp2 || L_hp3 )
如果DA層出現活性故障,則Rollup也會出現活性故障。在此基礎上,僅當所有HP都出現活性故障時,Rollup才會出現活性故障。
變體8:共享聚合器+去中心化Prover的ZK Rollup
變體8使用共享聚合器Shared Aggregator(SA)進行交易包含+排序,由SA將交易序列Batch發佈到DA層上,交易序列發到DA層後,交易次序理論上不再改變。
而在Batch發到DA層之前,共享聚合器SA可以先將Batch+ SA Header廣播給全節點和Prover,將SA Header廣播給輕節點,只是此時未上DA層的Batch還不穩定,隨時可能被替換。
需要注意的是,共享聚合器SA發布的Header與HP發布的Batch Header不是一樣東西。 SA Header包含了密碼學證明,確保Rollup節點從DA層讀取的Batch的確由SA生成,而不是它人偽造的。
Prover從DA層讀取交易批次Batch(也可以直接向共享聚合器同步),生成一個ZK Proof+Batch Header,發佈到DA層。顯然Prover充當了HP的角色。
對於Rollup的輕節點而言,收到ZKProof後,這個Batch包含的交易序列就完成了最終確認。當然,Prover也可以通過DA層鏈下的Rollup p2p網絡廣播ZKP,使其更快的被輕節點接收,但此時ZKP還沒發到DA層上,還不具備“最終性”。
- 抗審查性:變體8中,DA層不能對某些筆特定的交易進行審查攻擊,只能針對共享聚合器提交的整個交易批次Batch審查攻擊。同時,共享聚合器可以拒絕打包某些用戶的交易。
- 活性:L = L_da && L_sa && L_pm。該變體中,任何部分出現活性故障,則Rollup都會出現活性故障。如果Prover故障,那麼輕節點將無法有效的同步Rollup賬本進度。但由於全節點同步了所有的交易序列Batch,它可以跟上賬本進度。此時全節點不受影響,輕節點全部失效,等價於以前介紹過的採用共享聚合器的Based Rollup的情況。
- 信任最小化的最低配置:DA層輕節點+共享聚合器網絡輕節點+ Rollup輕節點
變體9:共享聚合器+去中心化Prover+有多個DA的ZK-Rollup
變體9其實基於上面的變體8展開,只是其DA層不止一個,這樣可以有效提高Rollup的活性。變體9中,共享聚合器SA可以將交易序列Batch發佈到任意一個DA 層上,它可以根據自己的需求選擇不同的DA層發布數據,這樣就可以動態優化Rollup的相關參數,比如:數據成本、安全性、活性、交易延遲和最終性。
根據Rollup項目方的需求,可以定制最便宜、最安全、最活躍、結算速度的Rollup,選用吞吐量最高的DA層。一般而言,某個Rollup區塊高度(比如第1萬個)的Batch不必同時存在於不同的DA層上,但如果存在,它們的內容必須一致。如果不同的DA層上出現了高度相同、內容不同的兩個Batch,則說明共享聚合器故意搞賬本分叉。
這裡,我們選用了和變體8相同的去中心化Prover Market,由Prover充當Header Producer,發布Batch Header和ZKProof。此時,Prover需要通過變體7中提到的小費競拍機制展開競爭(由SKIP Protocol提出)。
變體9的交易結算速度(最終確認速度)受它採用的出塊最快的DA層影響。
抗審查性:共享聚合器可以搞審查攻擊,但可選的DA層變多了,與DA層相關的審查攻擊可能性降低了。
活性:L = ( L_da1 || L_da2) && L_sa && L_pm。
與之前的變體相比,變體9活性更強。只要不是全部DA層網絡出現活性故障,一切就能夠正常進行。
信任最小化的最低配置:不同DA層的輕節點+共享聚合器網絡輕節點+Rollup輕節點。
顯然,我們採用的DA層越多,就必須運行越多的輕節點。但這樣做的好處可能會蓋過其成本。
變體10:兩個ZK-Rollups+去中心化Prover,彼此間有一個鏈上輕節點(可橋接)
變體10是變體5的擴展,目的是創建2個可以相互橋接的ZK-Rollup。相比於變體5(Based Rollup+ZKP+去中心化Prover),變體10多了一個中繼器Relayer角色,它將Batch Header+ZK-Proof包裝到一筆交易中。只要將這筆交易發給Rollup2運行的Rollup1輕節點,就能證明某個高度的Batch是有效的。當然,Rollup2還需要運行DA層的輕節點。
這是保持跨鏈橋信任最小化的先決條件。但如果是從以太坊Rollup(基於智能合約的SC Rollup)上往以太坊跨鏈,則不需要再運行Rollup的DA層輕節點,因為DA層就是以太坊本身。這一點與Celestia的主權Rollup極為不同,後者的Rollup之間互跨,必須運行對方DA層的輕節點。
當Relayer發送跨鏈交易時,它將被Rollup2的聚合器2和HP2處理。我們將兩者都添加到圖中,以理解Rollup2的節點如何處理跨Rollup的交易。
Rollup2的中繼器Relayer將獲取Rollup 2的Batch Header和ZKP,並將其發回Rollup1。 Rollup 1還有一個Rollup 2的輕節點和DA 層的輕節點。
我們可以讓模型更加簡化。假設兩個Rollup使用相同的共享聚合器和Header Producer,換言之,他們採用的DA層是重合的。
在這種情況下,可以直接將Relayer取締。因為Batch Header和ZK Proof已由HP發佈到相同的DA層,因此可以直接在DA層上讀取另一個Rollup的Header和ZKP等數據,不再需要經由Relayer傳給共享聚合器。
顯然,使用相同DA層的Rollup不需要依賴於Relayer(很多跨鏈橋都依賴中繼節點)。這可以解決跨鏈橋的安全問題(從這點來看,以太坊的SC Rollup之間的互跨,安全性要高於不同公鏈間的跨鏈)。
此時,信任最小化的最低配置:DA層輕節點+Rollup輕節點。