Web3.com Ventures 原創研究分析

0xFishylosopher

介紹

“zk-Rollups” 可能是今年最熱門的 Web 3 流行語。隨着 zk-Sync 的 v2.0“baby alpha”主網在過去幾天的發佈,這種興奮達到了頂峯 [1]。但是在所有這些流行語的背後,“zk-Rollups”到底指的是什麼?zk-Sync 又在哪裏發揮作用?在本文中,我將努力深入研究 zk-Rollups 的原理和實踐,闡明 zk-Sync v2.0 作爲一個項目的關鍵技術特徵,並探索這項期待已久的技術在未來的潛在影響。

zk-Rollups 的原理

我們爲什麼需要 zk-Rollups?當然,以太坊很棒。但在目前的狀態下,網絡從根本上來說是規模不經濟的。隨着網絡活動的增加,gas 價格變得非常昂貴,特別是如果網絡活動突然激增。隨着以太坊在過去幾年中在使用和吸引力方面越來越受歡迎,其目前有限的可擴展性已成爲網絡的致命弱點。

這就是“rollups”的用武之地——以太坊 rollups 本質上是一個“插件”,它爲以太坊提供了額外的可擴展性,從而解決了其固有的規模不經濟問題。這個想法背後的直覺很簡單。想象一下,你有 5 件物品需要從 A 點帶到 B 點。這樣做的“常規”方式是依次攜帶物品 1、物品 2 等等。但這顯然很慢而且很麻煩。“rollup”本質上是將所有 5 件物品“卷”到一個袋子裏,這樣你就可以進行一次旅行,而不是 5 次。

但有兩點需要注意:

  1. 我們如何確保彙總可以“容納”所有內容?

  2. 我們如何確保彙總不被欺騙?

zk-Rollups 是領先的 rollup 技術之一(另一種是 Optimistic Rollups),它利用“零知識證明”來解決這兩個問題。爲了解決這些問題,zk-Rollup 會將一定數量的交易捆綁在一起,在 L2 上進行計算,並向 L1 上的驗證者提交狀態更改和“有效性證明”,以表明計算是完整完成的。這種“有效性證明”以“零知識證明”的形式出現,這是一種數學方式,告訴某人您知道一些事情,但不必告訴他們您知道什麼。

零知識證明的一個簡單示例是代碼自動評分器(用於計算機科學作業)。自動評分器是一個“驗證器”,它會給你一堆隨機生成的測試用例,而你是一個“證明者”,必須能夠通過所有測試用例才能證明你擁有正確的代碼。與此同時,你不會直接與自動評分器分享你的代碼。瞧,你剛剛進行了一次“零知識證明”,證明你知道一些事情,但不必說出你所知道的內容。[2]

上面的代碼自動評分器使用“交互式零知識證明”,其中自動評分器和代碼提供者直接“交互”。相比之下,大多數 zk-Rollups 使用數學上更復雜的非交互式證明(例如 zk-SNARK,即零知識簡潔非交互式知識論證),與交互式證明相比,這節省了時間和空間。雖然 zk-SNARK 的技術細節超出了本文的範圍,但測試用例通過的基本原理是相同的。

zk-Rollups 的目標是一個零知識以太坊虛擬機(zk-EVM),它允許開發人員將任何以太坊智能合約無需修改地移植到 zk-Rollup 鏈上。但這很難。因爲每個“問題”都需要不同的“測試用例”,所以開發一種可以解決所有可以想象到的測試用例的“證明算法”是零知識證明和 zk-Rollups 的技術瓶頸。

正如 Vitalik Buterin 自己所說:

總體而言,我個人的觀點是,在短期內,Optimistic Rollups 可能會在通用 EVM 計算中勝出,而 ZK Rollups 可能會在簡單支付、交易所和其他特定於應用程序的用例中勝出,但從中長期來看,隨着 ZK-SNARK 技術的改進,ZK Rollups 將在所有用例中勝出。[3]

因此,從歷史上看,zk-Rollup 僅僅是針對特定應用用例而建立的技術,其中“測試用例”定義明確且範圍有限。然而,一些項目正在迅速向“山上的城堡”邁進——一種通用的與 EVM 兼容的 zk-Rollup 算法。[4]

zk-Sync v2.0

zk-Sync v2.0 只是目前正在開發 zk-EVM 的衆多項目之一(其他項目包括 StarkNet、Polygon Hermez 和 Scroll)。與 zk-Sync v1.0 不同,zk-Sync v1.0 要求用戶重建其代碼庫的大部分內容才能從 EVM 移植到 zk-Sync,而在 zk-Sync v2.0 中,程序員幾乎無需更改即可部署其應用程序 — — 或者如 zk-Sync 可能聲稱的那樣。

實際上,並非所有 zk-EVM 都是平等的。可組合性(與原始 EVM 合約的接近程度)和性能(zk-Rollups 的運行速度)之間存在明顯的權衡 [6]。在這個權衡中,zk-Sync 選擇完全優化性能,從而犧牲了可組合性。

在 Vitalik Buterin 看來,zk-EVM 有四種不同的類型,總結如下表:

正如 Vitalik 所說,目前 zk-Sync v2.0 是一個 Type 4 zk-EVM,它能夠使用自己的編譯器(不同於 EVM)編譯用 Solidity 和高級語言編寫的合約。由於 zk-Sync 完全控制其編譯器的設計,因此它們能夠積極優化速度和吞吐量。這樣做的代價是某些 DApp 和 EVM 調試工具鏈可能與 zk-Sync v2.0 不兼容。從本質上講,zk-Sync 與以太坊是同一個汽車外殼,只是換了一個引擎 [5]。

事實上,Matter Labs 在其開發者文檔中聲稱,雖然智能合約的“讀取”操作可以在不更改代碼的情況下集成,但智能合約的“寫入”操作需要“額外的代碼”,因爲“L1 和 L2 之間存在根本差異” [6]。其實,這有點誤導。這並不是因爲 L1 和 L2 之間存在“根本差異”,而是因爲 Matter Labs 決定追求的 zk-Rollup 類型——Type 4 rollup。因爲 zk-Sync 本質上是一個使用不同編譯器和字節碼的 Type 4 rollup,這意味着智能合約有不同的地址,而依賴於字節碼分析的調試器基礎設施可能無法在 zk-Sync v2.0 上工作 [7]。

未來,zk-Sync 可能會增加對 EVM 字節碼的更多原生支持,讓系統慢慢過渡到支持更廣泛這些“邊緣情況”的 Type 3 rollup。但是,zk-Sync 的 Type 4 或 Type 3 zk-Rollup 要想與 Polygon Hermez 和 Scroll Labs 的 Type 2 rollup(本質上是用速度換取更廣泛的兼容性)相比取得成功,必須滿足兩個重要前提條件。首先,只有極少數不重要的項目與 zk-Sync 的自定義編譯器不兼容。其次,zk-Sync 的執行速度與 Type 2 zk-EVM 相比有質的差別。

不幸的是,我個人認爲情況不太可能如此。任何先進的開發生態系統都依賴於成熟的“腳手架”基礎設施,包括便捷、模塊化的調試和測試工具。如果像 Vitalik 所假設的那樣,由於字節碼的差異,很大一部分 EVM 原生的調試工具無法移植到 zk-Sync,那麼 zk-Sync 將不得不開發自己的一套測試和調試工具。與 Polygon Hermez 和 Scroll 等更具可組合性的 Type 2 zk-EVM 競爭對手相比,這筆額外的開銷最終可能會阻礙 zk-Sync 作爲 L2 解決方案的採用速度。

zk-Rollups 的未來

由於許多競爭對手都在爭奪 zk-EVM,因此可以說,我們看到功能齊全的 zk-EVM 只是時間問題。但接下來是什麼呢?道路只有在道路上有建築物時纔有用;zk-Rollup 的長期優勢來自使用該解決方案的項目。

目前,DeFi、GameFi 和移動應用程序是 zk-Rollup 基礎設施的主要受益者。DeFi 和 GameFi 從根本上來說都是規模經濟,因爲它們在大量使用它們的環境中蓬勃發展。移動錢包等移動應用程序也爲懶惰(或買不起)臺式電腦的大衆消費者打開了大門。因此,在這些情況下使用 zk-Rollups 非常有意義。

但這絕不是 zk-Rollups 實用性的極限。如果說有什麼不同的話,那就是這只是一個開始。zk-Rollups 之於以太坊,就如同 5G 之於互聯網。正如 5G 可以開啓一個全新的物聯網應用和系統世界一樣,zk-Rollups 也可能打開“物聯網區塊鏈”的閘門,讓我們物理世界的數字設備——冰箱、手錶、交通信號燈等等——能夠與以太坊上的智能合約相結合。

反對物聯網的最大論點之一是,它將允許大型科技公司介入我們的日常生活。但有了“物聯網區塊鏈”,我們可以享受物聯網的便利,而不必擔心我們的智能設備在中心化數據庫中受到攻擊。我們可以同時擁有便利和隱私,而不是非要選擇便利或隱私。這就是 zk-Rollups 可以向我們承諾的世界。

🐦@0xfishylosopher

📅 2022 年 10 月 31 日

此信息僅供參考,不應視爲財務建議。所有觀點均爲作者觀點,並不一定得到 Web3.com Ventures 的認可。

參考

[1] https://blog.matter-labs.io/baby-alpha-has-arrived-5b10798bc623

[2] 改編自 https://pages.cs.wisc.edu/~mkowalcz/628.pdf

[3] https://vitalik.ca/general/2021/01/05/rollup.html

[4] https://www.coindesk.com/tech/2022/07/20/the-sudden-rise-of-evm-compatible-zk-rollups/

[5] https://cryptobriefing.com/the-race-scale-ethereum-zkevm-rollups/

[6] https://docs.zksync.io/dev/contracts/#porting-smart-contracts

[7] https://vitalik.ca/general/2022/08/04/zkevm.html