摘要:Optimistic便宜且與EVM和現有工具完全兼容。原文標題:《Optimistic Rollups:以太坊擴容的現在和未來》 當下大家常聽見很多關於ZK Rollup 如何被認為是通用智能合同系統未來的談論。而我們不同意——這篇文章解釋了原因。它藉鑑了我們從運行一個開放、安全、與EVM兼容的L …
Optimistic便宜且與EVM和現有工具完全兼容。
原文標題:《Optimistic Rollups:以太坊擴容的現在和未來》
當下大家常聽見很多關於ZK Rollup 如何被認為是通用智能合同系統未來的談論。而我們不同意——這篇文章解釋了原因。它藉鑑了我們從運行一個開放、安全、與EVM兼容的L2鏈中學到的實踐經驗教訓,該鏈擁有數百個dapp、數十萬用戶和數百萬筆交易。
我們構建了Arbitrum作為Optimistic Rollup (OR),因為我們認為OR是滿足用戶對安全、無條件信任、與EVM兼容的L2的現實需求的最佳方式。我們選擇Optimistic Rollup而不是ZK,因為系統固有的可伸縮性和成本優勢;我們今天仍然會做出同樣的選擇。如果你想了解原因,請繼續閱讀。
邁克爾約翰遜——最初以蘋果和橙子的形式發佈到Flickr——他們不比較,CC BY 2.0,https://commons.wikimedia.org/w/index.php?curid=4289506
等等!這個帖子有多長?
是的,這個帖子很長,在有些地方具有一定技術性。人們希望從鏈上得到的很簡單,但談論提供這些優勢所需的技術需要我們深入研究一些細節。我們希望技術界理解我們的觀點。
如果你不想閱讀整篇文章,這裡有一個簡要大綱。
1、人們想要一條可以無條件信任的鏈提供安全、保證進度、可見性和快速性的屬性——並且他們想要低成本並與現有工具兼容。
2、與ZK Rollup 相比,我們深入研究瞭如何使用Optimistic Rollup來提供這些屬性的細節。
3、由於ZK的鏈下成本非常高,Optimistic可以以更低的成本提供用戶想要的屬性。
4、由於ZK證明非常昂貴,充分參與ZK協議可能需要特殊用途的硬件和/或大規模並行性,使網絡有效地更加集中。
5、ZK聲稱的優勢要么也適用於Optimistic Rollup系統,要么需要犧牲重要的安全性或可用性功能。
6、Optimistic Rollup 在操作成本上大獲全勝,因為執行代碼比計算複雜的加密證明要便宜得多。
從頭開始
我們先從以太坊開始。以太坊用戶創建一筆交易以部署或與智能合同交互。你可以用幾種不同的方式看待以太坊交易。一方面,可以將其視為不透明的數據。但如果看看它的內容,交易當然遠不止於此;它是一個請求,要求智能合同做一些事情:記錄一些信息,移動一些資產等。
當交易發佈在以太坊時,會發生兩件重要的事情。首先,它被包括在內,以太坊就一套有序交易達成了共識。其次,以太坊執行這些事務併計算由此產生的狀態更新。
Rollup :Optimistic和ZK的共同點
让每个以太坊节点执行每笔交易都很昂贵,Rollup是一类扩容解决方案,可以显著减轻此负载。交易的实际执行不是在以太坊完成的,而是转移到第2层(“L2”)区域。
但等一下—— Rollup 應該由以太坊來保證。這意味著我們需要以太坊以某種方式保證交易執行的正確性,即使它發生在L2上。那麼,以太坊如何將其批准印章授予Rollup 狀態呢?
總之,答案是:證明。 Rollup 使用專有證明向以太坊證明其正確性,即使不執行交易,也可以驗證其正確性。
Rollup :Optimistic和ZK的不同之處
這些證明似乎相當神奇:允許以太坊在不實際執行的情況下驗證Rollup 狀態。你可能想知道這些證明是什麼樣子的,以及它們在實踐中是如何實現的。這就是各種Rollup與眾不同的地方。
ZK Rollup使用有效性證明。 ZK依賴於某方發布簡潔的加密證明,該證明確定該方知道以特定狀態結尾的有效鏈。這要求驗證方執行鏈,以便知道如何構建驗證,然後通過執行一系列複雜的加密操作來構建驗證。證明由鏈上的L1合同檢查。 ZK證明很簡潔,驗證成本足夠便宜,可以通過以太坊交易完成。
Optimistic Rollup使用不同類型的證明:欺詐證明。顧名思義,Optimistic Rollup是樂觀的,當他們向以太坊發布更新的狀態時,他們根本不用發布任何證明。任何人都可以發布一個Rollup 塊,其中包含關於執行某些交易的正確結果的索賠。其他節點執行相同的事務,如果他們不同意第一個節點的主張,可以發布挑戰。有效的爭議協議可以解決任何分歧,保證正確的一方將贏得挑戰。各方有強烈的動機只發布正確的索賠,而不是質疑錯誤的索賠,因此在通常情況下,所有節點都只是執行所有交易,並且永遠不需要調用證明代碼。整個過程由L1合約管理。
好吧,那麼哪種類型的Rollup 更好呢?在接下來,我們將在幾個維度上比較ZK和Optimistic Rollup,並解釋為什麼我們認為未來是Optimistic的,而像Arbitrum這樣的Optimistic Rollup本質上更具有可擴展性。
Optimistic Rollup與ZK:成本
也許Optimistic Rollup和ZK之間最重要的區別是成本。
Optimistic Rollup要求節點簡單地執行合約。例如,如果合約執行添加操作,節點將執行該添加操作。
另一方面,ZK需要生成一個複雜的加密證明,該證明需要數百或數千個昂貴的橢圓曲線操作,才能將添加操作包含在證明中。 ZK為每份合約中的每項指令承擔這筆費用。需要對每個指令生成複雜的加密證明,而不僅僅是執行指令,這對ZK來說是一個固有的成本劣勢——而且是一個很大的成本劣勢。
ZK倡導者有時認為,只需要一方當事人才能創建證明,而Optimistic Rollup要求系統有很多節點。但是,如果你運行的是大型鏈,無論你使用哪種驗證系統,它都會有很多節點。真正的鏈需要許多節點來服務非變異調用事件日誌,向用戶顯示交易數據,為用戶提供將資金撤回到L1所需的數據,等等。 Optimistic Rollup鏈的安全依賴於這些節點做他們已經需要做的事情——執行交易和跟踪鏈的正確狀態。
另一方面,ZK構建昂貴的橢圓曲線證明是一個非常大的額外成本。你需要特殊用途的硬件設備或大規模並行性——或兩者兼而有之,才有可能用ZK進行大規模證明,但這很貴。
結論:Optimistic Rollup系統具有固有的、巨大的成本優勢。
Optimistic Rollup與ZK:EVM兼容性
在構建Arbitrum時,我們的一個重要考慮因素是與EVM的兼容性。 Arbitrum與EVM完全兼容;它具有相同的RPC接口,並接受與EVM相同的字節碼。在實踐中,這意味著為以太坊編寫的任何代碼都可以在Arbitrum上開箱即用。
我們已經運行開放的、與EVM兼容的鏈(包括測試網)一年多了,我們已經了解了真正兼容是多麼具有挑戰性。前95%的兼容性並不難,但這在實踐中還不夠好,做得更好既需要大量的努力,也需要一個不會妨礙的產品架構。
ZK系統在兼容性方面運行範圍很廣。有些人將其視為遺留工具,並鼓勵人們學習他們的自定義語言。
但一些ZK系統沒有試圖兼容。當然對於不在乎兼容性的開發人員和用戶來說,這很好。
我們並沒有爭辯EVM客觀上是有史以來最好的。我們認為的是,考慮到已經與EVM配合使用的開發人員、代碼和開發人員工具的數量,EVM具有很多實際優勢。考慮一個部署在以太坊上的項目,該項目如果希望擴展到Rollup ,必須用新語言重寫代碼,委託進行新的安全審計,並維護多個代碼庫,這既麻煩又容易出錯。但即使對於尚未編寫任何代碼的新項目,EVM兼容性也是一個很大的優勢,因為它允許這些項目利用圍繞EVM存在的代碼、工具和人才庫。
一些ZK項目正在努力實現與EVM兼容的版本,但儘管它們的聲明含糊不清,但我們不知道迄今為止發布的任何代碼允許人們在ZK Rollup 時運行EVM合同。現有的初步的系統存在嚴重的不兼容性。例如,一個聲稱EVM兼容性的ZK系統未能實現ADDMOD、SMOD、MULMOD、EXP、SELFDESTRUCT和CREATE2操作碼;正在考慮刪除對XOR、AND和OR的支持;不支持標準事務格式;不支持任何預編譯;並可能限制事務中的合約調用次數。與ZK模型似乎存在根本性的不兼容,這保證了即使在最好的情況下,ZK EVM兼容性也會附帶詳細的打印頁面,而不支持Optimistic Rollups實現的完全兼容性。
值得澄清的是,今天存在幾個特定於應用程序的ZK系統的示例(例如Zcash,ZKSync 1.0,循環)。事實上,其中一些系統運行良好。核心區別在於,這些只是微調的,並針對非常適合ZK實現的特定應用程序進行了特別優化。今天不存在的是通用編譯器,允許人們以兼容的方式實現從EVM到ZK轉換。雖然有一些團隊聲稱正在研究它,但沒有可用的公共代碼或用戶定義的ZK-EVM合同的證明成本的基準。根據我們的知識和所有公開的數據,我們認為它們的成本高得令人望而卻步。
結論:只有Optimistic支持完全的EVM兼容性,成本最低。
Optimistic Rollup與ZK:無條件信任的可見性和壓縮性
我們在設計Arbitrum時的關鍵屬性之一是無條件信任的可見性。簡而言之,無條件信任的可見性意味著任何人都可以在無中心化的情況下看到或獲取鏈上的內容。重要的是,這不僅意味著每個人都能看到狀態快照;還意味著每個人都能看到鏈上的完整歷史——它是如何達到當前狀態的。實用鏈允許任何人運行一個節點,該節點可以支持非變異調用、搜索事件歷史記錄並查看每個事務——而無需依賴集中數據提供商。無法信任的可見性使這成為可能。
坦率地說,一些ZK系統在可見性方面有所減弱,並試圖圍繞它們沒有提供完整的區塊鏈功能這一事實進行交談。當你聽到關於“壓縮”的談論時,請好好聽一聽:他們是否說他們正在更有效地編碼鏈上的內容(Arbitrum這樣做了,並將在我們的Nitro版本中做得更好)?還是他們說,除非集中數據提供商稍後願意與你共享,否則鏈上歷史記錄的部分永遠不會可用?
回想一下,ZK證明只證明證明人知道有效的鏈。證明沒有告訴你該鍊是什麼,即使你有足夠的數據來驗證證明,你可能也沒有足夠的數據來重建鏈的歷史。
例如,假設Alice連續向Bob提交1 ETH的交易,Bob連續向Charlie提交1 ETH的交易。稍後,你驗證了愛麗絲比以前少1個ETH的證明,Bob的餘額沒有改變,Charlie比以前多1個ETH。
但發生了什麼事?愛麗絲付錢給鮑勃了嗎? Bob付錢給Charlie了嗎?也許愛麗絲直接付錢給查理。也許愛麗絲燒掉了一個ETH,Charlie是由別人支付的。也許戴安娜是中介,不是鮑勃。 Bob指望區塊鏈尋找證明,但一些ZK Rollup 無法提供鍊式可見性,他無法分辨區別。
許多智能合同應用程序需要的不僅僅是偶爾知道一個檢查站。它們需要了解鏈上——知道發生了什麼以及如何達到最終狀態。 ZK Rollups有時吹噓比Optimistic Rollups有更好的“壓縮”,但事實上是隱藏了鏈的數據,以便只有證明人知道它不是壓縮——它刪除了重要數據。如果ZK提供商表示他們“不需要”發布鏈上歷史記錄,他們真正說的是,他們不能保證鏈可見性。放棄鍊式可見性保證不是我們願意做出的妥協。
結論:Optimistic Rollup系統以最低的成本提供無條件信任的可見性。
Optimistic Rollup與ZK:無條件信任、及時的結局
考慮Rollup 時的一個關鍵要求是它是否提供了無條件信任、及時的最終結果。簡而言之,這意味著在你提交交易後,你應該迅速、確定地向你和其他人知道該交易的結果,任何人都不應更改或撤銷它。
我們認為,實現及時終結的最佳方法是將交易的順序與其執行分開。排序生成一個最終的擬議事務序列,執行嘗試執行該序列中的事務。如果事務的執行是確定性的,就像在仲裁上一樣,那麼完成事務的順序就足以最終確定結果,因為結果是事務序列的確定性函數。如果每個人都知道交易順序,那麼每個人都可以輕鬆確定結果。
最終確定序列需要將序列發佈到L1鏈中,並包含足夠的信息,以便任何人都可以自己執行交易,以便無條件信任地了解結果。理想的Rollup 是盡可能頻繁地將序列交易數據發佈到L1鏈。
在Optimistic Rollup系統中,發佈到L1鏈的開銷最小,事實上,Arbitrum通常每隔1分鐘左右都會向L1鏈發布序列化的交易數據,為用戶提供快速的最終結果,並保證沒有人可以撤銷他們的交易。大約每小時都會做出新的Optimistic Rollup結果斷言,但由於序列已經完成,並且執行是確定性的,這不會減慢最終結果。
原則上,ZK系統可以以類似的方式運行;即將交易順序(可以經常發佈到L1)與稍後進行的驗證分開,偶爾會提供有效性證明。然而,以這種方式運行的ZK Rollup 要求將基本與Optimistic Rollup系統發布的數據發佈到L1鏈上;上面討論的(所謂的)“壓縮”技術都不會可用。為了使這些“壓縮”技術發揮作用,每次發布一批L2交易時,在同一筆L1交易中,必須實時驗證一系列L2交易的有效性。
因此,尋求使用吹捧的“壓縮”技術的ZK Rollup 留有兩種選擇:
1) 每一分鐘左右發布序列交易以及執行證明:這保留了快速性,但要求每分鐘在鏈外生成ZK-Proof並在L1鏈上驗證。根據實施情況,在鏈上發布ZK證明的成本估計在50萬至500萬的gas之間。
2) 每小時發布順序交易和證明:這使ZK證明檢查成本合理,但將最終時間延長到一小時。在用戶向ZK運營商提交交易到發佈在鏈上的幾個小時內,用戶甚至不能保證他們的交易將被包括在內,而只是信任運營商的消息。
如果我們正在構建ZK系統,我們會發現這兩個選項不可接受——第一個太昂貴,第二個沒有提供及時的最終結果。因此,我們最終會使用與Optimistic Rollup版本相同的序列器,並在ZK版本的Arbitrum中在線發布基本相同的數據。
如果你聽到有人吹噓ZK可以將數小時的數據壓縮到一個時間節點,請小心。如果他們只在很長一段時間結束時發佈單個數據點,那麼這意味著他們在此期間沒有提供終結。
結論:出於實際的考慮迫使Optimistic Rollup和ZK系統以同樣的方式及時處理終結。
Optimistic Rollup與ZK:無條件信任的活力
無條件信任的活力意味著任何人都可以迫使系統取得進展。 (無條件信任的安全屬性確保了這一進展是正確的。)
優化的Rollup 允許任何節點聲明正確的執行。提出索賠只需要節點執行鏈上交易,然後存入股份,該股份可以在協議確認索賠後退還。
在ZK系統上,進度要求任何節點都可以創建和發布推進鏈狀態所需的ZK證明之一。這必須使用任何人都可以隨時可用的硬件和軟件。因此,它絕不能要求構建或購買特殊用途硬件,也不能進行大規模並行計算。必須有在普通設備上構建合適的ZK證明的途徑。不提供此服務的ZK提供商,或未發佈為其係統生成證明的代碼,不提供無條件信任的進展,系統也沒有活力保證。他們的系統是集中的,因為只有擁有特殊裝備的各方才能迫使進步。 (目前還不清楚領先的ZK Rollup 提供商是否會使證明對普通用戶可行。)
結論:在一個Optimistic Rollup系統中,更容易有無條件信任的進步。
ZK vs.Optimistic Rollup:橋接
ZK Rollup 確實具有優勢的一個領域是與以太坊的橋樑。 Optimistic Rollup系統預計將資金從Rollup 到L1將延遲一周,而ZK Rollup 允許在ZK證明發佈到L1後立即架起。在實踐中,這並沒有那麼大的差異,因為Optimistic Rollup用戶可以利用快速橋接服務,將L2資金換成低延遲的L1基金。因此,ZK的優勢主要是其用戶可以避免支付橋接服務收取的小額費用(這些服務在價格上相互競爭)。這不只是理論上的:今天有很多實時快速橋接服務,可以提供從Arbitrum的即時提款。
重要的是,ZK Rollups的橋接優勢相當狹窄:它僅適用於從L2到以太坊的橋接。從前(大約2019年),許多人認為Rollups將提供一兩個實時dapp的緩慢推出。在這樣裡的世界裡,Rollup用戶會不斷發現自己在L1和L2之間來回切換。但那不是我們所處的世界。 Arbitrum擁有一個蓬勃發展的生態系統,數百個dApp遍布Defi的每個角落,許多用戶正在與Arbitrum建立橋樑,並長期停留在那裡。此外,由於用戶跳過多個鏈,他們不僅僅是去以太坊。它們也會使用其他L1和側鏈,對於這種直接橋接,ZK Rollups沒有比Optimistic Rollups的優勢。
結論:ZK系統在與L1橋接方面略有優勢,但由於快速橋接和多鏈使用模式,它在實踐中很大程度上被消解了。
總結
將Optimistic Rollup和ZK系統相比,我們認為Optimistic Rollup系統顯然是贏家。 Optimistic便宜得多,與EVM和現有工具完全兼容,在實踐中唯一真正的缺點是,如果沒有快速橋接服務,L1橋接速度會更慢。 ZK的其他假設優勢需要犧牲鏈的可見性或快速性,我們認為這不是用戶想要的權衡。
這些都不太可能有改變。 ZK證明與EVM兼容的合約執行仍將比Optimistic Rollup執行昂貴得多,實現保證進展、鍊式可見性和分散化的要求也將保持不變。雖然如果情況發生變化,我們總是願意將Arbitrum切換到基於ZK的執行,但我們認為他們不會。
最後,我們謹慎地進行總結。人們傾向於將Arbitrum今天提供的內容與ZK系統表示的未來提供內容進行比較。但這種比較毫無意義,因為如果我們比較當今存在的系統,像Arbitrum這樣的Optimistic Rollup 是唯一支持開放部署一般智能合約的系統。或者,如果我們比較未來的系統,那麼我們應該比較未來的Arbitrum和未來的ZK系統。我們正在不斷改進Arbitrum——例如,我們即將發布的Nitro版本包括降低成本和更好地優化鏈上數據的無損壓縮。我們正在不懈努力改進Arbitrum,並將成本降至理論極限。正如我們在這篇文章中表明的那樣,我們認為,當考慮當今存在的系統及其各自的理論限制時,Optimistic Rollup顯然是贏家。