一文了解區塊鏈領域新興熱點「應用特定 Rollup」。
撰文:Smrti Lab
編譯:Modular 101
英文原文發佈於 2023 年 3 月 28 日,本文為上半部分內容。
本文全面分析了 RollApp 生態,比較了四種現存方案的優劣。
太長懶得讀版:
- 目前的應用特定 rollup(RollApp)生態包括四種類型:RollApp SDK、Rollup 即服務(RaaS)、Rollup-SDK 即服務和統一排序網絡(Unified Sequencing Network)。
- RollApp SDK 幫助開發者創建個性化的 RollApp。通常,RaaS 提供商利用 Rollup-SDK 來開發服務,這樣可以省去編寫 RollApp 部署的需求,提供了類似智能合約的開發體驗。
- 雖然 RaaS 主要面向智能合約開發者 (2C),但也需要為開發者聚合所有這些不同的 SDK,這引發了 2B 服務提供商 Rollup-SDK 即服務的出現。
- 統一排序提供商在序列器的某些特性上進行了專業分工,例如去中心化、可擴展性和安全性。
- Rollup 有四種主要類型:結算 Rollup、主權 Rollup、基礎 Rollup 和內嵌式 Rollup。不同的 RollApp SDK 和 RaaS 專注於不同類型的 Rollup,並具有各自的權衡。
- 當前的 RaaS 項目提供了相似程度的定製化。主要關注點是這些特性的實施程度,以及部署的速度和穩定性。
- 統一的接口帶來了模塊化。而模塊化則帶來了組合性,解鎖了多種 RollApp 的潛力。如果沒有統一的接口,可能會面臨一堆彼此不兼容的樂高積木。
- 在市場上,序列器的去中心化可能需要做出妥協。相反,有效執行商業模式以及啟動和定製應用 RollApp 的便利性更受重視,即使節點最初並非去中心化的。
應用特定 rollup(即 RollApp)正在成為區塊鏈領域的重要議題。雖然 “RollApp” 的理念目前仍然很年輕,但我們在過去一年中見證了該領域出現了幾個項目。
在此概覽中,我們希望強調並比較這個特定領域內的一些不同解決方案,因為它們可能在可預見的未來成為區塊鏈領域的重要因素。在深入討論這些單獨的解決方案之前,有必要先討論一下我們是如何走到今天的。
最初,開發者只能選擇在現有的 Layer 1(L1)鏈上部署(如以太坊等)。雖然在現有層上部署為構建者提供了足夠的安全保證,但它們缺乏擴展到大眾用戶所需的可擴展性功能。
為了解決這個擴展問題,我們開始看到出現越來越多 Rollup,而不是更多的 L1 鏈。Rollup 提供了足夠的可擴展性,同時保留了基礎鏈的安全性。雖然這解決了一些擴展問題,但開發者現在面臨的問題是可定製性。
每個在以太坊的 Layer 2(L2)上部署的 dapp 都與該 Rollup 中的所有其他 dapp 共享計算資源,這導致了激烈的 gas 競爭來爭奪有限的區塊空間。除此之外,dapp 還缺乏可定製性,因為它們必須遵循所部署的基礎鏈的相同規則。
有限的區塊空間和缺乏可定製性,促使了應用特定區塊鏈(應用鏈)的興起。這種類型的框架由 Cosmos 生態系統推廣,隨後被 Polygon Superchains、Avalanche Subnets 等採用。然而,即使是應用鏈也有其自身的缺點,比如必須啟動自己的驗證人網絡,和負責自身的安全性。
但是,如果開發者既能夠結合在 Rollup 上部署的安全性優勢,又能擁有自己專用環境的靈活性,豈不是更好?
這正是應用特定 Rollup 或 “RollApp” 試圖實現的目標。這個想法本質上是將從 Rollup 借來的安全性與靈活性,和擁有自己的專用環境的特性相結合。
1. RollApp 生態系統
目前,RollApp 生態系統有四個主要參與者。
RollApps SDK
這是一個供開發者輕鬆構建定製 RollApp 的框架和工具包。但是,開發者需要理解基本的區塊鏈邏輯,才能構建自己的應用特定 Rollup。不同的 SDK 專注於不同類型的 Rollup,具有不同的有效性和欺詐證明選項。因此,對於開發者來說,選擇適合其特定需求的 SDK 非常重要。
Rollup 即服務(RaaS)
RaaS 指的是 Rollup 服務提供商。RaaS 提供商通常在 Rollup-SDK(例如,Caldera 使用 Op Stack)之上構建服務。Rollup 部署無需代碼。所有節點 / 調用都由 RaaS 運營商處理。對於智能合約開發者來說,無需理解區塊邏輯,開發體驗與開發智能合約的過程非常相似。
Rollup-SDK 即服務
雖然 RaaS 主要針對智能合約開發者 (2C),但也有將各種 SDK 整合到一起的需求,從而誕生了面向開發者的 2B 服務提供商,即 Rollup-SDK 即服務。目前,專注於這一領域的項目數量有限。模塊化 Cloud 團隊在 2022 年展示了這一功能,但他們目前的重點是構建一個瀏覽器,用於多種模塊化區塊鏈。
統一排序網絡
儘管每個 RaaS 或 App Rollup SDK 可能都有自己的排序器,但仍然需要一個專門的排序器提供商,專注於去中心化排序器網絡的共識和安全。一個共享和統一的排序網絡可以簡化跨不同 RollApp 實現原子性和互操作性的實現。
圖 1. RollApp 生態全景圖
2. 有哪些不同類型的 Rollup?
Rollup 旨在為 L1 提供擴展優勢。它們由不同的組件組成,包括用戶客戶端、VM、排序器、證明系統(特別是對於 zk Rollup)、一個或多個內存池,以及 L1 上的橋接合約。
儘管 Rollup 是否應由橋接合約定義存在爭議,我們可以根據哪個鏈 / 層作為真理源來區分 “主權” 和 “結算” Rollup,就像我們區分橋接協議一樣。
圖 2. 結算 Rollup 與主權 Rollup
結算 Rollup 是指依賴於結算層上的智能合約來驗證證明和橋接資產的類型。這個智能合約充當 Rollup 鏈的真理源。為了保護這個橋接智能合約,許多 Rollup 團隊(如 Arbitrum 和 Optimism)緊握升級密鑰,以便在任何時候修復 Rollup 上的明顯漏洞。然而,這種權威另一方面也給了隨意更改代碼而不被注意到的風險。
主權 Rollup 是由 Celestia 引入的,Rollup 本身就像一個 Layer 1 區塊鏈一樣運作。主權 Rollup 本身是真理的來源,而不是 L1。Rollup 節點通過自己的 P2P 網絡傳輸欺詐(有效性)證明,並在本地驗證它們,同時只使用基礎鏈來存儲有序交易。
此外,主權 Rollup 社區可以在不經基礎層許可的情況下通過硬分叉升級鏈。當一些惡意行為發生並且主權 Rollup 想要撤銷它時,這是有益的。
圖 3. 基礎 Rollup 與嵌入式 Rollup
基礎 Rollup 是指使用 L1 節點作為排序器的 Rollup 類型。L1 排序設計可以幫助它繼承 L1 的活躍性和去中心化,減輕來自中心化或短期排序器的有害 MEV。目前,還沒有使用基礎 Rollup 設計的 SDK 或 RaaS 協議。
嵌入式 Rollup 意味著在 L1 本身內構建 Rollup 區塊。在以太坊上,執行客戶端構建包含區塊頭和區塊體的區塊。如果我們將這個區塊包裝成帶有(有效性 / 欺詐)證明的 Rollup 區塊,那麼其他驗證者就不需要重新計算所有交易,只需要計算狀態差異並驗證證明。
這個想法與無狀態(stateless)想法非常相似,即只有一個構建者包含完整狀態以生成見證,然後其他人可以在不下載所有狀態的情況下直接驗證。目前,Dymension 是一個內嵌式的 Rollup 結構,稍後將在本文中提供對這種結構的詳細討論。
3. 深入瞭解 RollApp SDK 解決方案
3.1 Rollkit 和 OP Stack
今年 2 月 21 日,Celestia 團隊推出了 Rollkit,一個模塊化 Rollup 框架,使開發者能夠自由選擇不同的功能來構建自己的定製 Rollup。Rollkit 和 OP Stack 之間的一個關鍵區別是,Rollkit 支持主權 Rollup。
(1) Rollkit 提供的 VM 可能比 OP Stack 更靈活
主權 Rollup 的主要好處不是其分叉的能力,而是它允許開發者不必為 Rollup 編寫 Solidity 輕客戶端。
這可以鼓勵更靈活的 VM 創新,因為它們不受已處理和結算 zk 和欺詐證明的 L1 的限制。在許多情況下,基礎結算層(例如以太坊)可能無法有效處理。
OP Stack 旨在通過為所有 Superchain 構建自己的結算層來緩解這個問題。然而,結算層可能仍然受制於以太坊的結算能力,這對於希望在其他 VM 上結算的 Superchain 來說可能不是完美的場所。
希望融入 OP Stack 的各個 VM 模塊必須支持 Engine API,它是所有以太坊執行客戶端實現的一組方法。Engine API 目前正在開發中,並不是所有虛擬機都天然支持這個接口。因此,為了確保與更廣泛的虛擬機兼容,還有很多工作要做。
(2) 在將其他 VM 引入 Rollkit 時,VM 包裝和語言不兼容可能是主要挑戰
然而,如果 Rollkit 可以實現更靈活的 VM 設計,為什麼 Rollkit 中沒有包含許多 VM(如 SolVM、MoveVM)?
Rollkit 為 Rollup 提供了類似 ABCI 的客戶端實現。這意味著它處理請求,並通過應用區塊鏈接口(ABCI)將它們轉發到其本地應用實例,該接口最初由 Cosmos SDK 引入。換句話說,ABCI 允許區塊鏈客戶端和應用程序相互通信,即使它們是用完全不同的語言編寫的。
另一方面,如果區塊鏈上的客戶端想要與應用程序(例如 VM)通信,那麼唯一的方法就是通過發送請求調用 ABCI 方法。
因此,對於任何應用程序或 VM,它必須被包裝成 ABCI 接口,以便融入 Rollkit。這是一個複雜的過程,因此,到目前為止,唯一被 ABCI 包裝的 VM 是 EVM(Etheremint)。
此外,當開發時,它也會帶來一些其他問題。ABCI 是由 Cosmos-SDK 設計的。因此,目前在 ABCI 之上構建應用程序所用的大多數工具都是針對 Golang 的,這給那些希望將 Fuel 或 Aptos 堆棧(使用 Rust 和其他語言編寫)引入 Rollkit 的人帶來了困難。
Rollkit 與使用其他編程語言的應用程序通信的最簡單方法是使用套接字(sockets)連接。然而,Rollkit 目前沒有與套接字使用應用程序通信的本地能力,這可能限制了其他 VM 或應用程序的遷移速度。
另一方面,OP Stack 有自己類似 ABCI 的接口要求,稱為 Engine API,該接口正在開發中,任何融入 OP Stack 的 VM 都必須與 Engine API 兼容。
圖 4. Rollkit 結構
(3) Rollkit 可以集成到非 EVM 鏈(如比特幣)以繼承其安全性,而 OP Stack 不能
對於 OP Stack,它必須依賴第三方鏈作為其他 OP Stack 鏈的結算層,這需要在結算層上部署源鏈的輕客戶端或智能合約。
使用非 EVM 兼容鏈作為結算層,需要每條鏈理解和驗證其他 VM 系統的證明和狀態。這需要構建彼此的輕客戶端或全客戶端的複雜過程。然而,在像比特幣這樣的鏈上構建 OP Stack 的輕 / 全客戶端幾乎是不可能的,使得集成到比特幣幾乎不可能。
然而,由於主權 Rollup 通過自己的輕客戶端驗證證明,將數據拉入比特幣來將其用作 DA 層可能相對容易。
(4) 比特幣主權 Rollup 無法從比特幣繼承有效性
比特幣主權 Rollup 使用比特幣作為 DA 層,並在鏈下驗證證明,但它能從比特幣繼承多少安全性?
鑑於幾乎不可能為比特幣上的主權 Rollup 編寫完整或輕客戶端。這意味著沒有在比特幣和其主權 Rollup 之間移動資產的去信任橋,從主權 Rollup 解釋證明和狀態是不可能的。
Sreeram Kannan 提供了一個評估區塊鏈安全性的出色框架。將此框架應用於評估比特幣主權 Rollup 的安全性,我們會看到抗重組性、抗審查性和數據可用性可以從比特幣繼承,只留下有效性屬性作為特殊挑戰。
圖 5. 比特幣主權 Rollup 的安全性
因此,比特幣主權 Rollup 不適合需要原生使用 BTC 的應用程序,或需要在比特幣上組合其他應用程序邏輯的能力。然而,對於優先考慮抗審查性和抗重組性的項目(例如 NFT 項目)來說,它可能是一個很好的選擇。
然而,比特幣是否可以成為其主權 Rollup 的合適數據可用性層?Taproot 見證賦予比特幣在每個區塊中包含多達 4MB 任意數據的能力。儘管存儲主權 Rollup 數據的成本仍需進一步討論,但據 Taproot 創始人 Eric Wall 稱,按字節計算,它可能比以太坊便宜 7 倍。
3.2 ZK 主權 SDK 和 ZK 結算 Rollup
ZK rollup 的最終確定時間應該比樂觀 rollup 快,但由於驗證證明的高成本,ZK rollup 仍然受到較長最終確定時間的影響。
在以太坊 rollup 中驗證單個證明的成本,可能在 30 萬到 500 萬 gas 不等,這取決於底層的證明系統。然而,證明的大小隨交易數量的增加而緩慢增長。因此,rollup 經常選擇等待並積累批量交易,以分攤每筆交易的證明驗證成本。
當前 zk 結算 rollup 中 zk 的最終確定時間長的主要原因,是降低成本所需時間的延遲。然而,通過使用和信任中心化的排序器,zk 結算 rollup 可以實現更快的“軟最終確定”。
從這個角度來看,主權 SDK 提供了獨特的優勢,通過降低驗證成本實現快速和“真實”的最終確定。主權 rollup 中的節點可以實時創建證明,並稍後使用遞歸將它們聚合成一批證明。此外,主權 rollup 不需要額外的鏈上驗證成本,這消除了為了分攤交易成本而需要的額外等待時間。
再次強調,最終確定仍然受到 DA 和共識層的限制,但可以大大減少由於證明驗證高成本造成的延遲。
3.3 內嵌式 Rollup(Dymension)
如上所述,內嵌式 rollup 意味著在 L1 本身內構建 rollup 區塊。在以太坊中,執行客戶端構建包含區塊頭和主體的區塊。如果我們將此區塊作為帶有證明(zk/ 欺詐)的 rollup 區塊進行包裝,則其他驗證者無需重新計算所有交易。相反,他們只需計算狀態差異並驗證證明。
這可以產生一些優勢:
- 不需要重新執行,特別適合狀態見證解決方案。這也可以由於歷史負載輕,而加速節點同步過程。
- 幾乎所有值將直接交給 L1 —— Dymension Hub。
- 不需要在結算層構建橋接合約,實現更小的延遲和更快的最終確定。
將內嵌式 rollup 納入以太坊是困難的,這就是為什麼像 Dymension 這樣的項目選擇在 Cosmos 生態系統中構建的原因。
然而,內嵌式 rollup SDK 最大的潛在問題是其缺乏靈活性和主權。區塊生產、證明驗證和 rollup 類型的基本邏輯是 “內嵌” 在結算層中的,不能被開發者自由修改或 “樂高化”。
因此,內嵌式 Rollup SDK(例如 Dymension)與其結算層緊密相連,很難像 Rollkit 或 Sovereign SDK 那樣自由修改 Rollup 的每個模塊。
3.4 Rollup SDK 的關鍵特性是什麼?
模塊化促進可組合性。例如,模塊化 SDK 可以針對不同用途進行定製和實現,從 DEX 到需要高 TPS 的遊戲項目,通過結合各種模塊,從執行環境到證明方案。能夠順利集成到同一 SDK 中的特定開發模塊越多,可組合性就越高,這反過來顯著降低了使用門檻。
然而,模塊化也需要統一接口。擁有標準接口會更容易更換組件。相反,不同的接口可能會導致應用 rollup 生態的分裂。在缺乏統一接口的情況下,有最終成為彼此不兼容的樂高集合的風險。統一接口會帶來模塊化。模塊化反過來帶來組合性,為眾多應用 rollup 解鎖潛力。
圖 6. 模塊化和組合性