探討側鏈與Rollup:架構、安全保證、擴展性能方面的異同

2023-07-27 08:49 深潮TechFlow


作者: 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 提供了以下安全屬性的保證:

  1. 可用性:Rollup 區塊的可用性得到保證,因爲數據存儲在更去中心化和安全的父網絡上。例如,用戶可以始終向跨鏈橋合約證明 Rollup 狀態的詳細信息(例如擁有某些代幣),並在 Rollup 驗證者隱藏交易數據時提取資金。

  2. 有效性:只有滿足由母鏈強制執行的有效性條件的 Rollup 區塊才能最終確定。

  3. 存活性:由於 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

  1. 您的用戶希望獲得最高的安全保證。

  2. 您的用戶可以容忍稍高的成本和增加的延遲/最終性。Rollup 的成本比以太坊低得多,速度更快(數量級上),但在這些指標上無法與側鏈相媲美。

  3. 您(或您的用戶)希望與母鏈生態系統(例如以太坊)建立更緊密的關系。

  4. 您計劃改進 Rollup 上 DApp 用戶的用戶體驗。這可能意味着使用流動性提供者來減少從 Optimistic Rollup 中提取資金的延遲,或者實施代碼優化來減少用戶與您的智能合約交互時生成的交易數據。

  5. 您希望在構建 DApp 時使用 EVM 工具和基礎設施。大多數 Rollup 兼容 EVM,並使用與以太坊相同的工具、客戶端軟件和節點 API。

何時使用側鏈

  1. 您的用戶希望以最低的費用進行交易。

  2. 您的用戶希望交易快速處理,特別是在橋接資金時。

  3. 您的用戶可以容忍增加的信任假設和較低的安全保證。

  4. 您(或您的用戶)不認爲與主鏈生態系統的緊密關系是首要任務。

  5. 您可以學習使用一組新的編程語言、工具和基礎設施來構建 DApp(如果使用非 EVM 側鏈)。

何時同時使用側鏈和 Rollup

  1. 您的項目已經在一個區塊鏈上建立了強大的網絡效應,並准備同時擴展到多個生態系統(例如,爲了利用流動性)。

  2. 您希望迎合不同類型的用戶,並避免疏遠市場的一方。

  3. 您的項目有足夠的資源來處理跨鏈擴展。這可能意味着有不同的團隊負責在不同的區塊鏈平台上部署您的 DApp。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

標題:探討側鏈與Rollup:架構、安全保證、擴展性能方面的異同

地址:https://www.sgitmedia.com/article/6008.html

相關閱讀: