Celestia 研究員分析 Rollup(二):4 種新的 Rollup 方案

極客 Web3
2023-07-31 16:05:12
收藏
本文由 Celestia 研究員 NashQ 關於 Rollup 模型分析的零散發言整合而成,包含 4 種新的 Rollup 變體。

原文作者: NashQ , Celestia

編譯:林克,《極客 web3 》

導語:本文由 Celestia 研究員 NashQ 關於 Rollup 模型分析的零散發言整合而成,包含 4 種新的 Rollup 變體。此前,在《 Celestia 研究員分析6種 Rollup 變體: Sequencer =聚合器+ Header 生成者》一文中,他列舉了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 的輕節點而言,收到 ZKP roof 後,這個 Batch 包含的交易序列就完成了最終確認。當然, Prover 也可以通過 DA 層鏈下的 Rollup p 2 p 網絡廣播 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 + ZK P+去中心化 Prover ),變體 10 多了一個中繼器 Relayer 角色 ,它將 Batch Header + ZK - Proof 包裝到一筆交易中。只要將這筆交易發給 Rollup 2運行的 Rollup 1輕節點 ,就能證明某個高度的 Batch 是有效的。當然,Rollup 2還需要運行 DA 層的輕節點

這是保持跨鏈橋信任最小化的先決條件。但如果是從以太坊 Rollup (基於智能合約的 SC Rollup )上往以太坊跨鏈,則不需要再運行 Rollup 的 DA 層輕節點,因為 DA 層就是以太坊本身。這一點與 Celestia 的主權 Rollup 極為不同,後者的 Rollup 之間互跨,必須運行對方 DA 層的輕節點。

Relayer 發送跨鏈交易時,它將被 Rollup 2 的聚合器 2 和HP 2 處理。我們將兩者都添加到圖中,以理解 Rollup 2 的節點如何處理跨 Rollup 的交易。

Rollup 2 的中繼器 Relayer 將獲取 Rollup 2的 Batch Header 和 ZKP ,並將其發回 Rollup 1。 Rollup 1還有一個 Rollup 2的輕節點和 DA 層的輕節點。

我們可以讓模型更加簡化。假設兩個 Rollup 使用相同的共享聚合器和 Header Producer ,換言之,他們採用的 DA 層是重合的

在這種情況下,可以直接將 Relayer 取締。因為 Batch Header 和 ZK Proof 已由 HP 發布到相同的 DA 層,因此可以直接在 DA 層上讀取另一個 Rollup 的 Header 和 ZK P等數據,不再需要經由 Relayer 傳給共享聚合器。

顯然,使用相同 DA 層的 Rollup 不需要依賴於 Relayer (很多跨鏈橋都依賴中繼節點)。這可以解決跨鏈橋的安全問題(從這點來看,以太坊的 SC Rollup 之間的互跨,安全性要高於不同公鏈間的跨鏈)。

此時,信任最小化的最低配置: DA 層輕節點+ Rollup 輕節點。

鏈捕手ChainCatcher提醒,請廣大讀者理性看待區塊鏈,切實提高風險意識,警惕各類虛擬代幣發行與炒作,站內所有內容僅係市場信息或相關方觀點,不構成任何形式投資建議。如發現站內內容含敏感信息,可點擊“舉報”,我們會及時處理。
banner
ChainCatcher 與創新者共建Web3世界