原文:《Sidechains vs. Rollups: Breaking down the differences for dapp development》by Emmanuel Awosika
編譯:深潮 TechFlow
側鏈和 Rollups 是解決區塊鏈可擴充套件性問題的兩種方案。這兩種解決方案的核心思想是將計算從資源受限的區塊鏈(如以太坊)轉移到專為規模化優化的獨立區塊鏈上。這種方法帶來了一些好處,比如降低每筆交易的成本,減少延遲,提高整體吞吐量。但相似之處僅此而已。
側鏈和 Rollups 在其擴充套件方法上根本不同,並且在設計決策和權衡上也有所不同。對於希望利用這兩種解決方案構建可擴充套件的 dapp 的開發者來說,瞭解它們的區別非常重要。
本文概述了 Rollups 和側鏈,並探討了它們在架構、安全保證、擴充套件效能等方面的差異。
什麼是側鏈?
側鏈是與另一個區塊鏈(稱為“主鏈”)並行執行的區塊鏈網路。通常,側鏈通過一個雙向跨鏈橋與主鏈連線,允許在兩個網路之間轉移資產,以及可能的任意資料,如合約狀態、Merkle 證明和特定交易的結果。
大多數側鏈都有自己的共識機制和驗證者,與主鏈分開。這使得側鏈能夠在不依賴其他區塊鏈的情況下結算和完成交易。然而,這也意味著橋接到側鏈的資金的安全性取決於存在強大的加密經濟激勵,以防止驗證者之間發生惡意行為。
側鏈的型別
與 EVM 相容和非 EVM 側鏈:EVM 相容的側鏈使用了以太坊虛擬機器(Ethereum Virtual Machine)的自定義實現,該虛擬機器是在以太坊上部署智慧合約的執行環境。實際上,大多數這些區塊鏈最初都是以 go-ethereum(也稱為 Geth,以太坊協議的最流行實現)為基礎進行分叉的。
儘管保留了以太坊設計的大部分特性(如對智慧合約的支援),EVM 相容的側鏈在其他方面進行了優化,特別是共識機制,以提高執行效率和吞吐量。如今,EVM 相容的側鏈執行著大部分使用 Solidity 等 EVM 語言編寫的智慧合約,同時降低了去中心化應用使用者的成本和延遲。
非 EVM 側鏈實現了不同的虛擬機器架構,無法在冇有大量程式碼重構的情況下執行以太坊原生的 dapp。在非 EVM 鏈上構建的開發者無法使用熟悉的 EVM 開發環境和工具(如 Truffle、Remix、Hardhat),可能需要學習其他語言(如 Rust 或 Golang)來建立 dapp。
注意:Avalanche、Fantom、Celo 和 Palm 是 EVM 相容的側鏈的示例。NEAR、Solana 和 Algorand 是非 EVM 側鏈的示例。
提交鏈和 Optimistic 側鏈:並非每個側鏈都完全依賴自身的安全性;一些側鏈,尤其是提交鏈和 Optimistic 鏈,依賴於主鏈提供某些安全保證。提交鏈定期向另一個區塊鏈提交加密承諾(例如區塊頭)以更新其最新狀態。主鏈無法驗證這些狀態證明,因為它無法訪問側鏈的狀態,但它確保誠實的參與者可以在確認之前對無效的區塊頭提出質疑。
通常,這是通過在主鏈上實現一個智慧合約來完成的,該智慧合約處理側鏈驗證者的獎勵、質押、輪換和懲罰。如果驗證者犯下可證明的違規行為(例如在相同高度簽署兩個區塊),任何人都可以將證據提交給智慧合約,並削減該驗證者的質押。
Optimistic 鏈的運作方式類似,要求驗證者定期將區塊頭提交到主鏈上的智慧合約。然而,Optimistic 鏈冇有單獨的共識機制——區塊頭被簡單地假設為有效,直到受到防欺詐的挑戰。因此,Optimistic 鏈可以在只有一個(誠實的)驗證者的情況下執行,而提交側鏈需要多個驗證者才能正常執行。
在這兩種情況下,誠實的參與者可以向父區塊鏈證明側鏈上發生的惡意行為。這樣,即使側鏈的大多數驗證者都作惡,使用者仍然可以獲得一定的安全保證。
但需要注意的是,誠實的參與者無法在冇有訪問儲存在區塊中的狀態資料的情況下證明惡意行為。然而,由於主鏈只接收來自側鏈的區塊頭(而不是區塊體),它無法保證區塊的可用性。這使得不誠實的區塊提議者可以通過隱藏區塊資料來進行不誠實的行為,例如從跨鏈橋中竊取資金。
這個問題被稱為資料可用性問題,它是所有側鏈(不僅僅是提交鏈、Optimistic 側鏈和 Rollups)在安全性屬性上的差異的核心。
什麼是 Rollup?
Rollup 通過在單獨的執行環境中處理交易來提高底層區塊鏈的可擴充套件性。與側鏈類似,Rollup 具有用於在父區塊鏈和 Rollup 之間轉移資產的跨鏈橋。它們還實施了優化措施,以提高使用者的計算速度和成本效益。
然而,Rollup 會定期將區塊提交到主鏈中,從而繼承了主鏈的安全性和去中心化特性。這意味著父區塊鏈為 Rollup 提供了以下安全屬性的保證:
- 可用性:Rollup 區塊的可用性得到保證,因為資料儲存在更去中心化和安全的父網路上。例如,使用者可以始終向跨鏈橋合約證明 Rollup 狀態的詳細資訊(例如擁有某些代幣),並在 Rollup 驗證者隱藏交易資料時提取資金。
- 有效性:只有滿足由母鏈強制執行的有效性條件的 Rollup 區塊才能最終確定。
- 存活性:由於 Rollup 資料儲存在基礎層上,任何人都可以重建 Rollup 的最後一個有效狀態並生成新的區塊。此外,使用者可以通過將交易傳送到 Rollup 的鏈上智慧合約來強制將其包含在 Rollup 中。
Rollup 的型別
Rollup 有兩種形式:Optimistic 型和零知識型。零知識型 Rollup(也稱為有效性 Rollup)將區塊與證明一起提交到母鏈,以確認鏈下交易的正確執行。如果證明在鏈上通過驗證,該區塊將在基礎層上最終確定。
Optimistic 型 Rollup 提交的區塊冇有任何證明來證明鏈下計算的有效性。除非另一方通過“欺詐證明”對某個交易的結果提出質疑,否則區塊被簡單地假定為有效。欺詐證明採用驗證遊戲的形式,在母鏈的介入下,兩方爭議某個計算,直到發現不誠實的一方。
Optimistic 型 Rollup 以狀態轉換大部分有效的 Optimistic 假設命名。然而,這種 Optimistic 假設與加密經濟激勵相結合,保證了除非一個無效的區塊長時間未被質疑,否則它將永遠不會被主鏈最終確定。
注意:Arbitrum 和 Optimism 是 Optimistic 型 Rollup 的示例。
EVM 相容性是 Optimistic 型和零知識型 Rollup 之間的另一個值得注意的區別。雖然 Optimistic 型 Rollup 是 EVM 相容的,但零知識型 Rollup 在 EVM 相容性方面有所不同。由於在證明電路中證明原生 EVM 指令是複雜且資源密集的,一些有效性 Rollup 使用了針對更高效證明進行優化的自定義虛擬機器指令集。
對於與 EVM 相容的 ZK-Rollup,我們將其執行環境描述為“零知識 EVM”(ZK-EVM)。ZK-EVM 可以在鏈下執行以太坊智慧合約,並證明計算的所有部分都被正確執行。因此,與依賴加密經濟激勵和誠實假設來防止無效執行的 Optimistic 型 Rollup 相比,ZK-Rollup 被認為更安全。
Linea 是一個具有完整 EVM 支援的第二層有效性 Rollup 的示例,它允許開發者重用以太坊基礎設施和工具來構建 dapp。相比之下,在非 EVM 的 ZK-Rollup(如 StarkNet)上部署需要(a)使用不同的堆疊構建智慧合約,或者(b)修改程式碼庫以在 StarkNet 虛擬機器中執行。
側鏈與 Rollup 有何不同?
吞吐量:側鏈的平均交易處理量通常比 Rollup 更高,因為它們不依賴於主鏈的共識和資料可用性。例如,側鏈可以實現較大的區塊大小和極快的區塊時間,以獲得更高的吞吐量,而 Rollup 無法做到這一點。
Rollup 必須避免處理過多的交易,以至於交易批次無法適應單個主鏈區塊。否則,這將重新引入基礎層的擁堵,並使其難以跟上 Rollup 產生的區塊。因此,Rollup 的母鏈資料頻寬對其吞吐量施加了有效限制。
即使是部分依賴於主鏈安全性的側鏈(如提交鏈和 Optimistic 鏈),其吞吐量仍然優於 Rollup。
成本:與 Rollup 相比,使用者在側鏈上的交易可能支付更少費用。與側鏈和 Rollup 之間的其他區別一樣,這一點與 Rollup 依賴母鏈進行結算和最終性有關。以下是 Rollup 產生的一些運營成本(這些成本由使用者承擔):
- 資料儲存:將 Rollup 區塊提交到基礎層會產生固定成本(將交易包含在區塊中的成本)和可變成本(基於 Rollup 區塊的大小)。因此,Rollup 會向使用者收取計算和資料費用,資料量較大的交易支付更多費用,反之亦然。
- 證明生成和驗證:零知識 Rollup 需要為基礎層的驗證生成有效性證明,這會產生額外的成本。驗證有效性證明需要消耗大量資源,例如在以太坊上目前的成本約為 500,000 Gas。
純側鏈不會產生上述成本,因此使用它們的費用更低。提交鏈或 Optimistic 側鏈可能會產生一些額外的成本,例如提交區塊頭,但這些成本可以忽略不計。此外,可以通過在單個交易中累積多個區塊頭來降低成本。
最終性:完全負責其安全性的側鏈具有即時最終性,一旦獲得大多數驗證者的批准,區塊就無法撤銷。然而,提交鏈或 Optimistic 側鏈不適用於此規則,因為它們必須考慮可能延遲區塊頭最終化的挑戰。
通常情況下,Rollup 的最終性時間比純側鏈更長,原因各不相同。例如,Optimistic Rollup 會延遲確認交易,以確保誠實的參與者有足夠的時間來挑戰無效的狀態更新。
有效性 Rollup 具有即時最終性(一旦驗證通過),但與純側鏈相比,其最終性時間更長。由於生成和驗證有效性證明的成本較高,序列化者更傾向於在生成和提交批次的有效性證明之前積累大量交易。
安全性:Rollup(Optimistic 或零知識)的安全性由底層區塊鏈保證,減少了使用者的信任假設。正如前面所解釋的,Rollup 依賴於(經濟上安全的)主鏈進行共識和資料可用性(與側鏈不同)。這降低了審查、凍結提款、無效執行等風險。
純側鏈負責其安全性。然而,啟動多樣化和可靠的驗證者可能很困難,這就是為什麼側鏈被認為比 Rollup 更不安全的原因。
提交鏈和 Optimistic 側鏈比純側鏈稍微更安全,但使用者必須信任驗證者和提議者的資料可用性。如果在不承擔懲罰的情況下進行資料隱藏攻擊,提交鏈和 Optimistic 側鏈將冇有任何安全保證。
跨鏈橋:Rollup 和側鏈(大多數情況下)使用相同的資產橋接方案:在主鏈上的智慧合約中鎖定 X 代幣,並在子鏈上為使用者鑄造 X 代幣。它們的區別在於橋接合約中存入的資金如何得到保障。
由於 Rollup 專用於特定的基礎層區塊鏈,通常會有“規範橋接”連線兩者。存入 Rollup 橋接的資金由母鏈保障:
- 只有在驗證與包含退出交易的批次相關的證明在鏈上得到驗證後,才能提取存入有效性 Rollup 的資金。
- 對於 Optimistic Rollup,只有在包含使用者提款交易的區塊在爭議視窗(約 1-2 周)結束後未被挑戰,使用者才能提取資金。
相反,存入側鏈橋接的資金的安全性取決於其設計。例如,如果側鏈與另一個區塊鏈有一個規範跨鏈橋,那麼橋接資金的安全性與驗證者的誠實程度相關。另一個問題是橋接是否由整個驗證者(例如,Polygon PoS 橋)或一小組外部驗證者(例如,Avalanche-Ethereum 橋)進行驗證。
Rollup 和側鏈橋接之間的最終性時間差異也解釋了它們之間的差異。舉例來說,Optimistic Rollup 使用者在將資金橋接回主鏈時會遇到更多延遲,因為需要等待爭議視窗。使用側鏈,一旦收到最終確定的區塊頭(以及必要時有效的 Merkle 證明),使用者就可以從跨鏈橋合約中提取資金。
在Rollup和側鏈之間進行選擇
在部署智慧合約時,選擇使用 Rollup 還是側鏈取決於您的目標、使用者反饋和項目需求。以下是在不同情況下使用 Rollup、側鏈或兩者的優勢。
何時使用 Rollup:
- 您的使用者希望獲得最高的安全保證。
- 您的使用者可以容忍稍高的成本和增加的延遲/最終性。Rollup 的成本比以太坊低得多,速度更快(數量級上),但在這些指標上無法與側鏈相媲美。
- 您(或您的使用者)希望與母鏈生態系統(例如以太坊)建立更緊密的關係。
- 您計劃改進 Rollup 上 DApp 使用者的使用者體驗。這可能意味著使用流動性提供者來減少從 Optimistic Rollup 中提取資金的延遲,或者實施程式碼優化來減少使用者與您的智慧合約互動時生成的交易資料。
- 您希望在構建 DApp 時使用 EVM 工具和基礎設施。大多數 Rollup 相容 EVM,並使用與以太坊相同的工具、客戶端軟體和節點 API。
何時使用側鏈:
- 您的使用者希望以最低的費用進行交易。
- 您的使用者希望交易快速處理,特別是在橋接資金時。
- 您的使用者可以容忍增加的信任假設和較低的安全保證。
- 您(或您的使用者)不認為與主鏈生態系統的緊密關係是首要任務。
- 您可以學習使用一組新的程式語言、工具和基礎設施來構建 DApp(如果使用非 EVM 側鏈)。
何時同時使用側鏈和 Rollup:
- 您的項目已經在一個區塊鏈上建立了強大的網路效應,並準備同時擴充套件到多個生態系統(例如,為了利用流動性)。
- 您希望迎合不同型別的使用者,並避免疏遠市場的一方。
- 您的項目有足夠的資源來處理跨鏈擴充套件。這可能意味著有不同的團隊負責在不同的區塊鏈平臺上部署您的 DApp。