我們將Arbitrum 構建為一個Optimistic Rollup 網絡,因為我們相信Optimistic Rollup 是滿足用戶對安全、無須信任、EVM 兼容的L2 網絡這一現實需求的最佳方式。
我們聽到了很多關於ZK Rollups如何被認為是通用智能合同系統的未來的討論。但基於我們從運行開放、安全、EVM 兼容的L2 鏈中獲得的實踐經驗,且該L2 鏈包含數百個dapps、數十萬個用戶和數百萬個交易,我們對此不予苟同,這篇文章將對此進行解釋。
我們將Arbitrum 構建為一個Optimistic Rollup 網絡,因為我們相信Optimistic Rollup 是滿足用戶對安全、無須信任、EVM 兼容的L2 網絡這一現實需求的最佳方式。我們選擇Optimistic Rollup 系統而不是ZK Rollup,是因為Optimistic Rollup 系統固有的可擴展性和成本優勢;鑑於此,如果讓我們再次做出選擇,我們依然會選擇Optimistic Rollup。欲了解其中緣由,請繼續往下讀。
等等!這篇文章的篇幅有多長?
是的,這篇文章很長,而且有些地方很技術性。人們想從他們選擇的鏈中得到什麼很簡單,但談到提供這些優勢所需的技術,我們需要詳細說明。我們希望技術社區能夠理解我們的觀點。如果你不想讀完整篇文章(這無可厚非!),這裡有一個簡短的概要:
-
們想要一個可靠地提供安全、進展保證、可見性和快速敲定的區塊鍊網絡——他們希望這條鏈的使用成本很低並且兼容於現有的工具。
-
通過與ZK Rollup 進行比較,我們深入研究了Optimistic Rollup 如何提供上述這些屬性的細節方面。
-
Optimistic Rullup 能夠以較低的成本提供用戶想要的這些屬性,因為構建ZK 證明有著非常高昂的鏈下成本。
-
由於ZK 證明的構建成本如此高昂,因此完全參與到ZK 協議中可能需要專用的硬件設備和/或大規模並行性,從而導致ZK Rollup 網絡實際上更加中心化。
-
ZK Rollup 所聲稱的那些優勢,要么同樣適用於Optimistic Rollup,要么要求犧牲重要的安全性或可用性特性。
-
Optimistic Rollup 在操作成本上贏得了很大的勝利,因為執行其代碼比計算複雜的加密證明要便宜得多。
讓我們從頭開始
讓我們從以太坊開始講起。以太坊用戶需要通過創建交易來部署智能合約或與智能合約進行交互,你可以通過幾種不同的方式來看待以太坊交易:一方面,你可以將其視為一個不透明的數據塊,但如果你查看其內容,你會發現交易顯然並不只是數據塊;它是一個請求,請求智能合約做某件事情,比如記錄一些信息,轉移一些資產等等。
當一筆交易被發佈到以太坊時,會發生兩件重要的事情:首先,交易會被打包,以太坊會對一組經排列的交易達成共識;其次,以太坊執行這些交易,併計算由此產生的狀態更新。
Optimistic Rollups 與ZK Rollups 的共同之處
让每个以太坊节点执行每笔交易的代价很高 (容易造成网络拥堵和交易成本高昂),而 Rollups 是一类可以显著减轻这种负载的可扩展性解决方案,可以显著减轻这种负载。通过这种方案,交易的实际执行不是在以太坊上完成的,而是转移到第2层 (L2),也即 Rollups 网络中。
但等等——Rollups 應該是由以太坊保護的。這意味著Rollups 需要以太坊以某種方式擔保交易執行的正確性,即使交易發生在L2 領土中。那麼以太坊如何對Rollups 的狀態批准蓋章呢?
簡言之,答案就是:通過使用證明(proofs)。 Rollups 通過使用專門的證明(proofs) 來向以太坊證明其正確性,該證明允許以太坊在不執行交易的情況下驗證其正確性。
Optimistic Rollups 與ZK Rollups 的不同之處
這些證明看起來非常神奇:允許以太坊在無需實際執行交易的情況下驗證Rollups 的狀態。你可能想知道這些證明是什麼樣子的,以及它們在實踐中是如何實現的。這正是不同的Rollups 的相互區別之處。
ZK Rollups 使用有效性證明(validity proofs):ZK Rollups 依賴於某一方發布簡潔的密碼證明,該證明可以表明該發布者知道這條以特定狀態結尾的區塊鏈的有效性。這要求該證明方需要執行這條鏈,從而才能知道如何構建該證明,然後通過一系列複雜的密碼操作來構造該證明。該證明通過一個鏈上L1 合約進行檢查。 ZK Rollups 的有效性證明是簡潔的,而且驗證成本足夠便宜,可以通過一筆以太坊交易來完成。
Optimistic Rollups 使用一種不同類型的證明:欺詐證明(fraud proofs)。顧名思義,Optimistic Rollups 網絡是“樂觀的”,因為當Optimistic Rollups 將更新的狀態發佈到以太坊上時,它們不會發布任何證明。在Optimistic Rollups 網絡中,任何人(節點) 都可以發布一個Rollup 區塊,其中包含了有關執行了某些交易之後的正確結果的聲明,其他節點在執行這些相同的交易時,如果不同意該節點的主張就可以提出挑戰。一個有效的爭議協議會解決任何分歧,保證正確的那一方將會在該挑戰中獲勝。這些參與方(節點) 有很強的動機只發布正確的主張,而不是去挑戰不正確的主張,因此在通常情況下,所有節點就是簡單地執行所有的交易,而證明代碼永遠不需要被調用。這整個過程都是由一個L1 合約管理。
那麼哪種類型的Rollup 更好呢?在本文的其餘部分,我們將從幾個維度比較ZK Rollups 和Optimistic Rollups,並解釋為何我們認為未來是屬於Optimistic Rollups,以及像Arbitrum 這樣的Optimistic Rollups 本質上有著更好的可擴展性。
Optimistic Rollups 對比ZK Rollups:成本
也許Optimistic Rollups 和ZK Rollups 最關鍵的不同之處就是成本。
Optimistic Rollups 網絡需要其節點簡單地執行合約。比如,如果某個合約執行添加操作,那麼網絡中的節點就執行該添加操作。
另一方面,ZK Rollups 需要生成一個複雜的密碼證明,需要成百上千次昂貴的橢圓曲線運算來將該添加操作包含進證明中。在ZK Rollups 中,每個合約中的每個指令都會產生這種成本。由於需要對每個指令都生成一個複雜的密碼證明,而不是僅僅執行指令,因此對於ZK Rollups 而言這是一個固有的成本劣勢,而且這是一個很大的劣勢。
ZK Rollups 的支持者有時會爭辯說,該解決方案只需要一方創建“證明”,而Optimistic Rollups 則要求系統有許多節點。但是,如果你正在運行一條規模較大的區塊鏈,無論你使用哪種證明系統,它都會有很多節點。真正的區塊鏈需要很多節點來服務各類活動,比如非變異調用、搜索事件日誌、向用戶顯示交易數據、為用戶提供將資金提取回L1 (主鏈) 所需的數據等等。 Optimistic Rollups 的安全性依賴於這些節點做它們已經需要做的事情——執行交易並追踪區塊鏈的正確狀態。
另一方面,在ZK Rollups 中構建昂貴的、基於橢圓曲線的證明是一個非常大的附加成本。如果想要大規模地證明ZK Rollups,將需要專用硬件設備或者大規模並行——或者兩者都需要。這都是非常昂貴的。
小結:Optimistic Rollups 系統有著巨大的固有成本優勢。
Optimistic Rollups 對比ZK Rollups:EVM 兼容性
當我們在構建Arbitrum 時考慮的一個重要因素是其與EVM (以太坊虛擬機) 的兼容性。 Arbitrum 完全兼容於EVM;它具有相同的RPC 接口,並接受與EVM 相同的字節碼。這意味著在實踐中,任何為以太坊編寫的代碼都可以在Arbitrum 上開箱即用。
我們已經運行開放的、兼容EVM 的鏈(包括測試網) 一年多時間了,我們已經了解到真正兼容於EVM 多麼具有挑戰性。最初的95% 的兼容性並不難實現,但這在實踐中還不夠好,而要做到更好則不僅需要大量的努力工作,還需要一個不礙事的產品架構。
就EVM 兼容性而言,ZK Rollups 系統運行的範圍很廣。一些ZK Rollups 認為EVM 兼容性是是老派的工具,並鼓勵人們學習使用它們自定義的語言。一些ZK Rollups 系統並不試圖兼容於EVM,當然這對於那些不關心這種兼容性的開發者和用戶來說,這也沒什麼問題。
我們並不是說,在一個全新的世界裡,EVM 兼容性是客觀上最好的東西。但考慮到已經使用EVM 的開發者、代碼和開發者工具的數量,我們認為EVM 具有很多實際的優勢。想像一下,某個已經部署在以太坊上的項目想要擴展到一個Rollup 網絡中,如果需要使用一種新的語言重寫代碼,委託新的安全審計,並維護多個代碼庫,那麼這將是非常繁瑣且容易出錯。但即使對於尚未編寫代碼的新項目而言,EVM 兼容性也是一個巨大的優勢,因為這允許這些項目使用圍繞EVM 的現有代碼、工具和人才庫。
一些 ZK Rollups 项目正在致力于实现兼容 EVM 的版本,尽管其声明含糊其辞,我们还不知道迄今为止有发布任何代码允许人们在 ZK Rollup 上运行 EVM 合约。当前已经存在的主要 ZK Rollups 系统有着显著的 EVM 不兼容性。比如,一个声称兼容于 EVM 的 ZK Rollup 并不能实现 ADDMOD、SMOD、MULMOD、EXP、SELFDESTRUCT 和 CREATE2 操作码;正在考虑取消对 XOR、AND 和 OR 的支持;不支持标准交易格式;不支持任何预编译;且可能会限制单笔交易中的合约调用次数。而且,ZK 模型似乎存在根本性的 EVM 不兼容性,即使在最好的情况下,ZK 的 EVM 兼容性也无法像 Optimistic Rollups 那样支持完全的兼容性。
值得說明的是,目前存在幾個特定於應用程序的ZK Rollup 系統的例子,例如Zcash、ZKSync 1.0、Loopring。事實上,其中一些系統運行良好。其核心區別在於,它們經過了微調,並針對非常適合ZK Rollup 實現的特定應用程序進行了特別優化。當前還不存在一個通用的編譯器,以允許人們以兼容的方式從EVM 過渡到ZK Rollup。雖然有一些團隊聲稱正在對此進行研究,但對於用戶定義的ZK-EVM 合約,當前沒有可用的公共代碼或證明成本的基準。根據我們了解的情況和所有可公開獲得的數據,我們認為這會非常昂貴。
小結:只有Optimistic Rollups 以最小的成本支持完全的EVM 兼容性。
Optimistic Rollups 對比ZK Rollups:無須信任的可見性和壓縮
在設計Arbitrum 時,我們考慮的一個關鍵屬性是無須信任的可見性(trustless visibility)。簡單來說,無須信任的可見性意味著任何人都可以在無需某個中心化的參與方的幫助下查看或獲取區塊鏈的內容。重要的是,這不僅意味著每個人都可以看到偶爾的狀態快照,還意味著每個人都可以看到區塊鏈的完整歷史——即它是如何到達當前狀態的。一個實用的區塊鍊鍊可以讓任何人運行一個節點,它可以支持非突變調用、搜索事件歷史記錄和查看每一筆交易——而不需要依賴一個中心化的數據提供商。無須信任的可見性使之成為可能。
坦率地說,有些ZK Rollups 系統在可見性方面走了捷徑,並試圖迴避它們沒有提供完整區塊鏈功能的事實。當你聽到“壓縮”這個詞時,請小心弄清楚:他們是否說他們正在更有效地編碼鏈的內容(這正是Arbitrum 所做的,並且將在我們的Nitro 版本發布中做得更好)?或者,他們是在說,部分區塊鏈歷史根本就不會被提供給你,除非一個中心化的數據提供商願意稍後與你共享?
回想一下,ZK Rollups 證明其實只證明了“證明者”知道的有效鏈,但“證明”本身不會告訴你那條鍊是什麼,即使你有足夠的數據來驗證該“證明”,可能也沒有足夠的數據來重建區塊鏈的歷史。
舉個例子,假設Alice 提交了一筆支付給Bob 1 ETH 的交易,很快又出現了Bob 提交了一筆支付給Charlie 1 ETH 的連續交易。接下來,你需要驗證一個證明:Alice 比以前少了1 ETH,Bob 的餘額沒改變,而Charlie 比以前多了1 ETH。
但是具體發生了什麼? Alice 付錢給Bob 了嗎? Bob 付錢給Charlie 了嗎?也許是Alice 直接付錢給Charlie,也許是Alice 銷毀了1 ETH,而Charlie 所獲得的1 ETH 是由其他人支付的,也許這個“其他人”名叫Diana,而不是Bob。如果我們從區塊鏈中尋找Bob 的支付證據,但對於一些不提供區塊鏈可見性的ZK Rollups 來說,根本無法區分並找到Bob 支付的交易。
許多智能合約應用程序所需要的不是僅僅知道某個偶然的檢查點,而是需要了解整條鏈——了解發生了什麼以及如何達到最終狀態。 ZK Rollups 有時吹噓自己有著比Optimistic Rollups 更好的“壓縮”,但它們會隱藏區塊鏈的數據,這樣只有“證明者”知道這並不是壓縮,而是刪除了重要的數據。如果ZK Rollup 提供商表示他們“不需要”發布整條區塊鏈的歷史,其實他們真正的意思是他們無法保證區塊鏈的可見性,而放棄區塊鏈可見性保證並不是Optimistic Rollups 願意做出的妥協。
小結:Optimistic Rollups 以最小的成本提供無須信任的可見性。
Optimistic Rollups 對比ZK Rollups:無須信任的、及時的最終性(finality)
在評估某個Rollup 網絡時,我們需要確定一個關鍵要求,即該Rollup 是否提供無須信任的、及時的最終性(finality)。簡單來說,這意味著在你提交交易後,你和其他所有人都應該及時且確定地知道該交易的結果,並且沒有人能夠篡改或撤消該交易。
在我們看來,實現及時的最終性的最佳方法是將交易排序與交易執行分開。排序就是對被提交的交易生產一個敲定的順序,執行就是試圖以該順序來執行這些交易。如果交易執行是確定的(正如在Arbitrum 上那樣),那麼敲定交易排序就足以敲定結果,因為這些結果就是交易順序的確定性函數。如果每個人都知道交易的順序,那麼每個人都可以輕鬆確定結果。
敲定一個交易順序需要將該順序發佈到L1 鏈上,並包含足夠的信息以允許任何人自己執行這些交易,以便以無須信任的方式知曉其結果。理想的Rollup 是盡可能頻繁地將排序的交易數據發佈到L1 鏈。
在Optimistic Rollups 系統中,發佈到L1 鏈的成本最低,實際上Arbitrum 通常會在每一分鐘左右將排序的交易數據發佈到L1 鏈,為用戶提供快速的最終性(finality) 並保證沒有人可以撤消他們的交易。此外,Arbitrum 還會每隔一小時左右就產生一個新的Optimistic Rollup 結果主張(result assertion),但由於拍下已經被敲定,且執行是確定性的,因此完全不會減慢最終敲定的速度。
原則上,ZK Rollups 系統也可以按照類似的方式運行;即將交易的排序(可以頻繁發佈到L1)與稍後進行的驗證以及偶爾的有效性證明分開。然而,與Optimistic Rollups 系統發布數據一樣,以這種方式運行的ZK Rollups 需要將基本相同的數據發佈到L1 鏈上,但對於上文中討論的(所謂) “壓縮”技術並不支持這麼做。 ZK Rollups 為了讓“壓縮”技術起作用,必須在同一筆L1 交易中實時證明一系列L2 交易的有效性,而且每次發布一批L2 交易時都必須這麼做。
因此,尋求使用備受吹捧的“壓縮”技術的ZK Rollups 只有兩個選擇:
1) 每分鐘左右發布排序交易和執行證明:這可以保持快速的最終性(finality),但需要每分鐘在鏈下生成ZK 證明並在L1 鏈上進行驗證。根據實現情況,在區塊鍊鍊上發布ZK 證明的成本估計在500,000 gas 到500 萬gas 之間。
2) 每小時發布排序交易和證明:這種做法雖然可以使ZK 證明的檢查成本變得略微合理,但將最終性(finality) 的時間會延長到一個小時。在用戶向ZK Rollups 運營者提交交易和其發佈到鏈上之間的時間裡,用戶無法保證他們的交易是否會被打包在內,而且只能相信ZK Rollups 的運營者。
如果你正在構建一個ZK Rollup 系統,會發現上述兩個選項其實都是不可接受的——第一個成本太昂貴,第二個無法提供及時的最終性。因此,如果你最終會使用與我們在Optimistic Rollup (即Arbitrum) 中使用的相同類型的定序器(sequencer),並在一個ZK Rollup 版本的Arbitrum 中發布基本上相同的數據。
如果你聽到有人吹捧某個ZK Rollup 可以將數小時的數據壓縮為一個點,要務必謹慎。如果他們只在很長一段時間結束時發佈單點數據,那麼這意味著他們在這段時間內沒有提供最終確定性。
小結:出於實際考慮,ZK Rollups 系統不得不以與Optimistic Rollups 相同的方式來實現及時的最終性。
Optimistic Rollups 對比ZK Rollups:無須信任的活性
無須信任的活性(trustless liveness) 是指任何人都可以推進系統進程(無須信任的安全屬性可以確保這種進程的正確性)。
Optimistic Rollups 允許任何節點聲明正確的交易執行。提出該聲明只要求節點執行該鏈的交易,然後存入一筆質押金(stake),當該聲明被協議確認之後可以退還該質押金。
在ZK Rollups 系統上,進展要求任何節點都可以創建並發布推進區塊鏈狀態所需的ZK 證明,但這必須是通過使用任何人都可以獲取的硬件和軟件就能實現,因此必須不能要求構建或購買獨特的專用型硬件,也不能要求進行大規模並行計算。必須有一條在普通的設備上就能構建一個合適的ZK 證明的途徑。如果某個ZK Rollup 提供商無法做到這一點,或者沒有發布用於生成系統證明的代碼,那麼該ZK Rollup 就無法提供無須信任的活性,該系統也就沒有活性保證。他們的系統是中心化的,因為只有擁有專用設備的參與方才能推進系統進程。 (目前還不清楚的是那些領先的ZK Rollups 提供商是否將讓證明對普通用戶可行。)
小結:Optimistic Rollups 系統更容易提供無須信任的活性。
Optimistic Rollups 對比ZK Rollups:橋接
ZK Rollups 的優勢領域是與以太坊L1 的橋接。 Optimistic Rollups 系統在將資金從Rollup 取款至L1 方面有一個為期一周的延遲,而ZK Rollups 則允許在ZK 證明發布至L1 之後立即實現橋接。在實踐中,這並不是一個很大的差異,因為Optimistic Rollups 用戶可以使用快速橋接服務,從而實現將資金從L2 撤回至L1 的低延遲。因此,ZK Rollups 在這方面的優勢主要是,其用戶可以避免支付橋接服務收取的小額費用(這些服務在費用上將會相互競爭)。這並不是理論上的:製劑室,當前有許多上線的橋接服務,提供從Arbitrum 即時取款的服務。
需要強調的是,ZK Rollups 在橋接方面的優勢非常狹窄:僅限於從L2 橋接回以太坊L1。從前(大約是2019年),許多人認為Rollups 的推出將很緩慢,且只會有一到兩個上線的dApps,在這樣的情況下,Rollup 用戶將會經常發現自己在L1 和L2 之間來回橋接。但我們並不處於這樣的世界中。 Arbitrum 擁有一個蓬勃發展的生態系統,其中包含了數百個dApps,範圍覆蓋了整個DeFi 領域,且許多用戶正在橋接至Arbitrum 並長期留在這個網絡中。此外,在某種程度上,用戶不僅僅是去以太坊,而是跨越多條鏈。他們也在前往其他L1 鍊和側鏈,且對於這種直接橋接,ZK Rollups 對比Optimistic Rollups 並沒有什麼優勢。
小結:ZK Rollups 系統在橋接至L1 方面有一點優勢,但由於快速橋接服務和多鏈使用模式,因此在實踐中這種優勢在很大程度上被減弱。
寫在最後
通過對比Optimistic Rollups 和ZK Rollups,我們認為Optimistic Rollups 系統是明顯的贏家。 Optimistic Rollups 更便宜,擁有完全兼容EVM 和現有的工具,且在實踐中唯一的缺點是在沒有快速橋接服務的情況下橋接至L1 較為緩慢。 ZK Rollups 的其他優勢需要犧牲鏈的可見性或最終性時間,我們認為這並不是用戶想要的。
對於ZK Rollups 系統來說,這些都不太可能改變。兼容於EVM 的合約執行的ZK 證明將保持著比Optimstic Rollups 的執行更加昂貴,且實現無須信任的活性、鏈可見性和去中心化的要求也將保持不變。雖然如果情況發生變化,我們也願意將Arbitrum 切換到基於ZK Rollup 的執行,但我們認為不會。
我們將以一個警告結束。現在有一種趨勢是,人們將Arbitrum 今天提供的東西與ZK Rollups 系統說他們將來會提供的東西進行比較。但這種比較沒有什麼意義。如果我們將現有的系統進行比較,就會發現只有像Arbitrum 這樣的Optimistic Rollups 支持通用智能合約的開放部署。或者,如果我們在比較未來的系統,那麼我們應該將Arbitrum 的未來與未來的ZK Rollups 系統進行比較。
我們正在不斷改進Arbitrum——例如,我們即將發布的Nitro 版本包含更低的成本和更好優化的鏈上數據無損壓縮。我們正在孜孜不倦地改進Arbitrum ,將成本降低到理論極限。正如我們在這篇文章中所展示的,我們相信,當考慮到這兩種系統的現狀以及它們各自的理論局限性時,Optimistic Rollups 顯然是贏家。
撰文:Offchain Labs
編輯:南風
展開全文打開碳鏈價值APP 查看更多精彩資訊