全面比較以太坊兩大擴容方案:Optimistic Rollup更能代表以太坊擴容的未來?
链捕手
2021-12-21 10:09
本文约8376字,阅读全文需要约34分钟
Optimistic Rollup 是滿足用戶對安全、去信任、與EVM 兼容L2 的現實需求最佳方式。

原文來源:Offchain Labs

原文編譯: James

正文

一級標題

正文

1、人們想要一條能夠提供安全性、有保證進度、可見性和快速確定性的去信任區塊鏈——他們希望這條區塊鏈上的交易成本更低且能與現有工具兼容。

2、在提供上述服務和功能的時候,與ZK Rollup 相比,我們深入研究瞭如何使用Optimistic Rollup的具體細節。

3、Optimistic Rollup 可以以較低的成本提供用戶想要的功能,因為構建ZK Rollup 證明的鏈下成本非常高。

4、由於ZK 證明非常昂貴,因此完全參與ZK 協議可能需要專用硬件和/或大規模並行性,從而使網絡變得更加中心化。

一級標題

一級標題

讓我們從頭開始

首先,肯定要先談以太坊。以太坊用戶創建交易以部署智能合約或與智能合約交互,你可以通過幾種不同的方式來考慮以太坊交易。一方面,您可以將其視為不透明的數據區塊,但如果你查看數據內容,就會發現一筆交易當然遠不止這些;所謂交易,其實應該是一個請求,要求智能合約做某事,比如:記錄一些信息,移動一些資產等。

當交易在以太坊區塊鏈上發佈時,會發生兩件重要的事情——

一級標題

一級標題

Rollups:Optimistic Rollup和ZKRollup都有什麼共同點?

如果讓每個以太坊節點執行每筆交易,成本勢必會非常高,而Rollups 其實是一類可以顯著減輕網絡負載的擴展解決方案,交易實際執行並不是在以太坊區塊鏈上完成的,而是轉移到Layer 2(“L2”)上。

一級標題

一級標題

Rollups:Optimistic Rollup和ZKRollup都有什麼不同點?

有效性證明

有效性證明有效性證明欺詐證明

欺詐證明欺詐證明二級標題

二級標題

成本

成本成本

Optimistic Rollup 要求節點簡單地執行合約,例如,如果合約執行添加操作,則節點執行該添加操作。

相比之下,ZK Rollup 需要生成複雜的密碼證明,需要進行成百上千次橢圓曲線運算才能將加法運算包含在證明中,因此成本很高。更重要的是,ZK Rollup 會導致每個合約中的每條指令產生成本,由於需要對每條指令生成複雜的密碼證明,而不僅僅是執行指令,因此給ZK Rollup 帶來了一個固有成本劣勢——而且是一個很大的劣勢。

ZK Rollup的支持者有時會爭辯說,該解決方案只需要一方創建“證明”,而Optimistic Rollup 則要求系統有許多節點。但是,如果你正在運行一個規模較大的區塊鏈,無論你使用哪種證明系統,它都會有很多節點。真正的區塊鏈需要很多節點來服務各類活動,比如非變異調用、搜索事件日誌、向用戶顯示交易數據、為用戶提供將資金提取回Layer 1 所需的數據等等。 Optimistic Rollup 區塊鏈的安全性依賴於這些節點做他們已經需要做的事情——執行交易並追踪區塊鏈的正確狀態。

正文

二級標題

正文

即插即用即插即用”。

Optimistic Rollup已經運行開放的、與EVM 兼容的區塊鏈(包括測試網)一年多了,我們了解到真正兼容以太坊非常具有挑戰性。最初階段95% 的兼容性並不太難,但在實踐中還不夠好,只有付出大量努力和構建不會妨礙產品的架構才能讓兼容性表現的更好。

在兼容性方面,ZK Rollup 系統運行的範圍很廣。但有些人認為ZK Rollup 是個“老派”工具,因為他們還在鼓勵人們學習他們的自定義語言。此外,一些ZK Rollup 系統並不試圖兼容以太坊,當然,對於那些不關心以太坊兼容性的開發人員和用戶來說,也不錯。

客觀上來說,EVM算是有史以來最好的鏈上工具。我們認為,考慮到已經與EVM 配合使用的開發人員、代碼和開發人員工具的數量,EVM 本身俱有非常大的實際優勢。考慮一個部署在以太坊上的項目,如果該項目想要擴展到Rollup,那麼開發人員就必須用新語言重寫他們的代碼、委託新的安全審計、並且維護多個代碼庫,這些工作不僅繁瑣且容易出錯。但即使對於尚未編寫任何代碼的新項目,EVM 兼容性也是非常重要,因為兼容EVM 意味著這些項目可以充分利用圍繞EVM 存在的代碼、工具和人才庫。

系統系統真實兼容性並不太好,該系統——

  • 未能實現ADDMOD、SMOD、MULMOD、EXP、SELFDESTRUCT 和CREATE2 操作碼兼容;

  • 正在考慮取消對XOR、AND 和OR 的支持;

  • 不支持標準交易格式;

  • 不支持任何預編譯;

  • 可能會限制交易中的合約調用次數。

似乎看起來ZK Rollup 模式從根本上就不兼容EVM,這顯然與Optimistic Rollups 實現的完全兼容性有很大差距。

需要澄清的是,目前依然存在多個特定於應用程序的ZK Rollup 系統示例(比如Zcash、ZKSync 1.0、Loopring)。事實上,這些系統運行良好,但核心區別在於,它們針對非常適合ZK Rollup實現的特定應用程序進行了微調和專門優化。雖然有團隊聲稱在研究一種通用編譯器,允許以兼容方式“打通” EVM 到ZK Rollup,二級標題

二級標題

Optimistic Rollupvs. ZK Rollup:去信任可見性和壓縮

在設計交易套利時,Optimistic Rollups 的關鍵屬性之一是去信任可見性。簡而言之,去信任可見性意味著任何人都可以在沒有中心化組織幫助的情況下查看或獲取區塊鏈的內容。更重要的是,這不僅意味著每個人都可以偶爾看到狀態快照——也意味著每個人都可以看到鏈的完整歷史——它是如何達到當前狀態的。一個實用的區塊鏈讓任何人都可以運行一個節點,同時節點也可以支持非變異調用、搜索事件歷史記錄並查看每筆交易——無需依賴中心化的數據提供者,而無信任的可見性使這成為可能。

坦率地說,一些ZK Rollup 系統在可見性方面似乎走了捷徑,並試圖談論他們沒有提供完整的區塊鏈功能的事實。當您聽到談論“壓縮”時,請仔細想想看——他們是不是說他們正在更有效地編碼鏈的內容? (Arbitrum 這樣做,並且在我們的Nitro 版本中會做得更好)或者他們是說區塊鏈歷史的某些部分根本不可用,除非中心化數據提供者願意稍後與您共享?

回想一下,ZK Rollup 證明其實只證明了“證明者”知道的有效鏈,但“證明”本身不會告訴你那個鍊是什麼,即使你有足夠的數據來驗證“證明”,可能也沒有足夠的數據來重建區塊鏈的歷史數據。

舉個例子,假設Alice 提交了一筆支付給Bob 的1 ETH 交易,很快又出現了Bob 提交了一筆支付給Charlie 的1 ETH 連續交易。接下來,你需要驗證一個證明,即:Alice 比以前少了1 ETH,Bob 的餘額沒有改變,而Charlie 比以前多了1 ETH。

但是發生了什麼? Alice 付錢給Bob 了嗎? Bob 付錢給Charlie 了嗎?也許是Alice直接付錢給Charlie,也許是Alice 銷毀了一個ETH,而Charlie 所獲得的1 ETH 是由其他人支付的,也許這個“其他人”名叫Diana,而不是Bob。如果我們從區塊鏈中尋找Bob 的支付證據,但對於一些不提供區塊鏈可見性的ZK Rollup 來說,根本無法區分並找到Bob 支付交易。

許多智能合約應用程序所需要的不是僅僅知道幾個檢查點,而是需要了解整個鏈條——了解發生了什麼以及如何達到最終狀態。ZK Rollups 有時吹噓比Optimistic Rollups 更好的“壓縮”,但它們隱藏了區塊鏈的數據,這意味著只有“證明者”知道數據不是壓縮,它們甚至有可能刪除依稀重要數據。二級標題

二級標題

Optimistic Rollupvs. ZK Rollup:去信任,及時終結

在評估Rollup 時,我們需要確定一個關鍵要求,即:Rollup 是否需要提供去信任的、及時的終結。簡單來說,這意味著在您提交交易後,你和其他所有人都應該及時且確定地知道該交易的結果,並且沒有人能夠更改或撤消這個交易。

在我們看來,實現及時終結的最佳方法是將交易的順序與交易執行分開。排序產生一個最終的提議交易序列,並且嘗試按該序列執行交易。如果交易的執行是確定性的,因為它是基於Arbitrum的,那麼確定交易的順序就足以確定結果,因為結果是交易順序的確定性函數。如果每個人都知道交易的順序,那麼每個人都可以輕鬆確定結果。

完成一個序列需要將序列發佈到Layer 1 鏈,並包含足夠的信息以允許任何人自己執行交易,以便無需信任地了解結果。理想的匯總是盡可能頻繁地將排序的交易數據發佈到Layer 1 鏈。

在Optimistic Rollup 系統中,發佈到Layer 1 鏈的成本最低,實際上Arbitrum 通常會在每一分鐘左右將排序的交易數據發佈到Layer 1 鏈,為用戶提供快速確定性並保證沒有人可以撤消他們的交易。此外,Arbitrum 還會每隔一小時左右就產生一個新的Optimistic Rollup 結果主張(Result Assertion),但由於序列已經最終確定並且執行是確定性的,因此完全不會減慢最終確定的速度。

原則上,ZK Rollup 系統也可以按照類似的方式運行;即,將交易的順序(可以經常發佈到Layer 1)與稍後進行的驗證與偶爾的有效性證明分開。然而,與Optimistic Rollup 系統發布數據一樣,以這種方式運行的ZK Rollup 需要將基本相同的數據發佈到Layer 1 鏈上,但對於上文中討論的(所謂)“壓縮”技術並不支持這麼做。 ZK Rollup 為了讓“壓縮”技術起作用,必須實時證明一系列Layer 2 交易的有效性,在同一個Layer 1 交易中,而且每次發布一批Layer 2 交易時都必須這麼做。

因此,雖然所謂的“壓縮”技術備受ZK Rollup 吹捧,但在遇到上述情況時,他們不得不做兩個選擇:

1) 每分鐘左右發布排序交易以及執行證明:這可以保持快速確定性,但需要每分鐘在情況鏈外生成ZK 證明並在Layer 1 鏈上進行驗證。根據實施情況,在區塊鍊鍊上發布ZK 證明的成本估計在500,000 到500 萬gas 之間。

2) 每小時發布排序交易和證明:這種做法雖然可以使ZK 證明檢查成本變得略微合理,但將最終確定時間會延長到一個小時。在用戶向ZK Rollup 運營者提交交易和其發佈到情況鏈上之間的時間裡,用戶無法保證他們的交易是否會被包括在內,而且只能相信ZK Rollup 的運營者。

如果你正在構建一個ZK Rollup 系統,會發現上述兩個選項其實都是不可接受的——第一個成本太昂貴,第二個無法提供及時的終結。因此,如果最終會使用相同類型的序列器(sequencer),就需要在Arbitrum 的ZK Rollup 版本中發布與我們的Optimistic Rollup 版本基本相同的數據。

二級標題

二級標題

Optimistic Rollupvs. ZK Rollup:去信任活性

去信任活性意味著任何人都可以迫使系統取得進步。 (去信任的安全屬性可以確保進度是正確的。)

Optimistic Rollup 允許任何節點聲明正確執行交易,提出該聲明只需要節點執行鏈的交易,然後存入一筆可以在協議確認聲明後退還的質押即可。

二級標題

二級標題

Optimistic Rollupvs. ZK Rollup:橋接

當然,ZK Rollup 並非一無是處,它在一個領域裡具有較大優勢,即:需要強調的是,需要強調的是,

需要強調的是,ZK Rollups 的橋接優勢其實並不是非常大:因為它只能用於從Layer 2 橋接回以太坊。總結

總結

總結

在全面比較Optimistic Rollup 與ZK Rollup 系統之後,我們認為Optimistic Rollup 系統顯然是贏家。 Optimistic Rollup 成本更低,與EVM 和現有工具完全兼容,實踐中唯一真正的缺點是在沒有快速跨鏈橋接服務的情況下,Layer 1 的橋接速度較慢。 ZK Rollup 的許多假定優勢需要犧牲區塊鏈可見性或終結時間,我們認為這不是用戶想要的。

不僅如此,ZK Rollup 想要做出改變似乎也不太可能。與EVM 兼容的合約執行的ZK 證明仍將比Optimistic Rollup 執行要昂貴得多,並且ZK Rollup 也很難實現有保證的進度、區塊鏈可見性和去中心化的要求。如果情況發生變化,我們願意將Arbitrum 切換到基於ZK Rollup 的交易執行,但我們認為它們不會做出優化改變。

最後要說的是,人們傾向於將Arbitrum 當前提供的內容與ZK 系統聲稱他們將在未來提供的內容進行比較,但這種比較其實毫無意義,因為我們要比,就拿現有系統作對比。像Arbitrum 這樣的Optimistic Rollup 擴容解決方案是唯一支持通用智能合約的開放部署系統。或者,如果要比較未來的系統,那麼我們就應該將未來的Arbitrum與未來的ZK 系統進行比較。

我們正在不斷改進Arbitrum,舉個例子,在我們即將發布的Nitro 版本里,將會為用戶提供更低的交易成本和更好的鏈上優化無損壓縮數據,不僅如此,我們正在不知疲倦地工作以改進交易套利並將成本降低到理論極限。正如我們在這篇文章中所分析的那樣,我們相信,當考慮到目前存在的兩個系統以及它們各自的理論限制時,Optimistic Rollups 顯然是真正的贏家。

链捕手
作者文库