一文詳解zkEVM方案:zkSync、StarkNet、Polygon zkEVM、Scroll

撰寫:Filippo Armani

編譯:深潮 TechFlow

ZK Rollups,也稱為有效性 Rollups,是一種革命性的以太坊擴充套件方式,它允許交易在鏈下進行處理,並在主鏈上以單個壓縮交易的形式合併。這個過程增加了交易吞吐量,降低了費用,同時保持了主鏈的安全性和去中心化。

使用零知識證明(ZKP)是 ZK Rollups 的突出特點之一,這種密碼學證明型別使得證明者能夠向驗證者證明一個陳述是正確的,而不洩露任何額外的資訊。

對於 ZK Rollups,ZKP 確保鏈下交易的完整性,使證明者能夠證明交易批次的有效性,而無需透露交易的具體細節,也無需要求驗證者在接受新狀態之前檢查所有交易。

與 Optimistic Rollups 相比,ZK Rollups 提供了更高階別的安全性,因為它們沒有在以太坊之上引入其他信任假設,並依靠以太坊和數學來保證安全性。Optimistic Rollups 依賴於博弈論和 1/n 誠實節點假設,這意味著對於每個交易批次,總會有至少一個誠實節點可以挑戰惡意交易。

另一方面,ZK Rollups 的操作者,也稱為序列器和證明者,沒有任何機會危害使用者的資金,因為他們的角色“僅僅”是收集交易批次並生成 ZK 證明,而使用者的資金仍留存在以太坊 L1 上,以太坊最終負責驗證 L2 提交的 ZK 證明並完成底層交易。

有效性證明是透過對狀態資料進行復雜的多項式計算來生成的。如果狀態資料無效,則無法生成有效性證明。L1 上的驗證者將輸入狀態資料來驗證有效性證明,因此如果證明者更改了狀態資料,則驗證者將不接受該證明。

與 Optimistic Rollups 相比,ZK Rollups 還有兩個優點:更快的最終性和更高效的資料可用性。

  • 首先,它們使得最終性更快。因為只要提供有效性證明,交易就在以太坊上被確認;而 Optimistic Rollups 需要等待一個星期確保沒有挑戰,因此才認為交易是合法和最終的。
  • 其次,與資料可用性相關,ZK Rollups 更加高效。因為只需要釋出狀態差異即可,因為無需重建所有交易以進行驗證,相反,Optimistic Rollups 需要釋出完整資料,以便任何人都可以重建交易並最終挑戰它們。

因此,ZK Rollups 在以太坊上使用的資料頻寬更少(這是所有 Rollups 都需要共享的稀缺資源,無論它們使用哪種系統來執行交易,包括 ZK 電路),使使用者甚至可以獲得更便宜的費用(甚至是零費用)。

Zk-rollups 被認為是以太坊可擴充套件性的終極解決方案,但由於以太坊虛擬機器(EVM)不設計支援 ZK 電路,實現它們是困難的。為了解決這個問題,許多組織和研究人員嘗試建立一個名為 zkEVM 的 Rollup 支援虛擬機器,它可以以與零知識證明計算相容的方式執行智慧合約。

Vitalik 提出的四種 zkEVM 分類

Vitalik 在他的部落格文章中概述了四種基於與以太坊相容性的 zkEVM 型別。

需要注意的是:

  • zkEVM 越接近以太坊的功能,生成 Zk 證明的速度就越慢,成本就越高。
  • 另一方面,如果一個區塊鏈或 Rollup 更符合以太坊的規範和標準,那麼開發人員就更容易在其上構建應用程序並整合到以太坊生態系統中。

總之,與以太坊高度相容的區塊鏈可能具有競爭優勢。

  • 第一類:完全等同於以太坊的 zk rollups,在所有部分(包括雜湊、狀態樹、交易樹、預編譯或任何其他共識邏輯)中精確地複製以太坊。到目前為止,還沒有任何 zkEVM 能夠實現與以太坊的等效性。
  • 第二類:完全等同於 EVM 的 Zk rollups 力求與 EVM 等效,但並非完全等效於以太坊。它們與現有應用程序完全相容,但對以太坊進行了一些微小修改,以使開發更容易,並且可以更快地生成證明。Scroll 和 zkEVM Polygon 在理論上屬於此類;在實踐中,它們目前屬於第三組。
  • 第三類:幾乎等同於 EVM,為了使證明生成更快,犧牲了更多元素和等效性。Polygon zkEVM 和 Scroll 目前屬於此類。這個類別通常是進入第二類的跳板。
  • 第四類:高階語言等效,意味著它們都接受用 Solidity 編寫的智慧合約,然後將其轉換為另一種自定義的、適用於 zk 的語言。zkSync 和 StarkNet 屬於這個類別,儘管 zkSync 可能會隨著時間推移新增對 EVM 位元組碼的相容性,並最終向更高的型別轉移。

雖然 Vitalik 提出的分類目前是最流行和最公正的,但也有其他分類方法。

Immutable 提出的四種分類

Immutable,這個基於 StarkWare 並專門針對 NFT 的 L2,在其一篇部落格文章中提供了以下有用的分類:

這些類別與 Vitalik 的分類相比,更清晰地基於現有 zkEVM 在堆疊的特定級別(高階語言、位元組碼或執行時環境)上達到其與以太坊的相容性或等同性。

  • Solidity 相容。與以太坊的相容性是在高階語言級別 Solidity 上實現的,這意味著開發人員可以繼續使用他們在以太坊上習慣使用的語言編寫智慧合約。然而,這些 Rollup 立即將 Solidity 轉換為它們的中間表示形式,然後在它們的位元組碼中編譯,並在它們的自定義環境中執行。具體來說,這些 L2 使用轉譯器將 Solidity 程式碼轉換為自定義 VM 的可讀程式碼(StarkWare 的 Cairo,zkSync 的 LLVM-IR)。這些轉譯器不支援某些 Solidity 功能,因此開發人員可能需要調整他們的智慧合約。例如:zkSync 和 StarkNet。
  • EVM 相容。從語言層面上看,這些 Rollup 與 EVM 相容,但它們擁有自己的位元組碼,這意味著 Solidity 可以直接編譯成 EVM 操作碼 / 位元組碼,然後在自定義 VM 執行時之前轉換為自定義位元組碼。實際上,這些 Rollup 與大多數以太坊程序相容,但某些應用程序可能需要進行重寫。此外,一些位元組碼功能(例如預編譯)不受支援。例如:Polygon zkEVM。
  • 等效於 EVM。這些 Rollup 建立了一個 zk 驗證電路,可以直接讀取 EVM 操作碼和位元組碼,儘管 VM 本身與 EVM 不同。這些 Rollup 完全相容現有應用程序,但可以對以太坊進行一些微小修改,以使開發更容易,並使證明生成更快。例如:Scroll。
  • 等效於以太坊。這意味著在所有組成部分上覆制以太坊,類似於 Polygon 所做的方式。到目前為止,沒有任何 zk Rollup 屬於此類別。

將此框架與 Immutable 提出的框架相結合,並新增一些其他資訊,可以概述以下圖表,在沒有任何效能資料可用之前,突出考慮在比較不同的 zkEVM 實現時要考慮的一些設計差異和相似之處:

zkSync 2.0 

zkSync 2.0 (在主網釋出前剛剛更名為 zkSync Era)是以太坊網路的擴充套件解決方案,與 Solidity 程式語言完全相容。使用 zkSync,使用者可以選擇兩種資料可用性型別:zkSync Rollup 和 zkSync Porter。前者將資料直接釋出在以太坊上,使其與以太坊 L1 一樣安全,而後者將資料儲存在鏈下,導致交易速度更快、成本更低,但安全級別較低。

zkSync 是 EVM 相容的,因為它可以將用 Solidity 編寫的智慧合約程式碼轉換為 Yul,並將 Yul 轉換為 LLVM-IR,然後將其重新編譯為專門設計用於 zkSync 的 EVM 的自定義電路相容位元組碼集。雖然這需要中間步驟,但也允許新增其他非 EVM 功能,例如 Account Abstraction。此外,zkSync 的公司 Matter Labs 計劃逐步使其更具有 Ethereum 工具包的相容性,並準備在可擴充套件性和互操作性領域推出其第一個三層原型 zkSync Opportunity,並作為其雄心壯志的一部分在測試網上釋出。

在撰寫本文時,zkSync Era 剛剛推出,因此對其表現作出評論還為時過早。只支援簡單交易的 zkSync 1.0 (現在稱為 zkSync Lite)是最大的 zk rollup 之一,據 TVL 統計,已鎖定超過 8300 萬美元,累計交易量超過 1900 萬筆,而 StarkNet 的 TVL 僅超過 1900 萬美元,累計交易量為 400 萬筆。

StarkNet

StarkNet 是一種型別 4 / Solidity 相容的 zk-rollup,它採用了一種不同型別的零知識證明,稱為 STARKs (Scalable Transparent ARgument of Knowledge),以確保鏈下交易的完整性。STARKs 被認為比 SNARK 更有效和可擴充套件,但可能需要更復雜的技術設定。

雖然 StarkNet 也支援智慧合約,但由於使用 STARKs,以及 StarkNet 合約和 StarkNet OS 是用 Cairo 語言編寫的,所以它的能力相對較小。為了使開發更容易,StarkWare 最近升級到了 Cairo 1.0 ,該版本模擬 Rust。與 zkSync Era 一樣,可以將 StarkNet 歸類為“Solidity 相容”,因為它不會在 EVM 內執行程序,而是建立一個全新的、專門設計的 VM,並使用自定義位元組碼。StarkWare 使用 Warp 轉譯器將 Solidity 程式碼轉換為 Cairo VM 位元組碼。

然而,與 zkSync Era 和其他 zkEVM 實現不同,StarkNet 團隊的目標不是與 EVM 或其他以太坊元件相容,而是旨在透過滾動其自定義客戶端 API、JavaScript 庫和錢包系統使 StarkNet 的 VM 儘可能高效,這將迫使與以太坊相容的工具手動新增 StarkNet 支援。儘管 Cairo 1.0 還引入了 Sierra——安全中間表示——作為 Cairo 1.0 和 Cairo bytecode 之間的新中間表示層,但 Warp 轉譯器不支援某些 Solidity 功能,並且離匹配 zkSync Era 的 EVM 相容性還有很長的路要走。

Polygon zkEVM

Polygon zkEVM 是一種 zk-rollup,它使用自定義語言 zkASM 來解釋 zkEVM 程式碼,並在非 EVM 執行時環境中驗證智慧合約的執行。該專案始於 2021 年,透過以 2.5 億美元收購 Hermez Network 開始開發一個結合了 STARK 和 SNARK 的安全性和效率的 EVM 等效系統。雖然 STARK 用於為交易狀態生成有效性證明,但 SNARK 用於評估 STARK 證明的正確性。這些解決方案的組合可以實現安全性、速度和低交易費用。

2022 年 7 月,Polygon 宣佈將 Polygon Hermez 改名為 Polygon zkEVM,在撰寫本文時剛剛推出。Polygon zkEVM 的最新測試網版本引入了遞迴功能,允許使用一個 ZK 有效性證明來驗證其他 ZK 證明的批次,其中每個證明都可以驗證多個交易。這一功能得益於 Plonky 2 ,一種遞迴 SNARK,比現有替代品快 100 倍,並與以太坊本身原生相容。

除了 Polygon zkEVM,Polygon 還開發了 Polygon Avail,這是一個僅最佳化資料可用性的區塊鏈。該網路將是無需許可的,允許任何人加入作為驗證器,與現有的 DAC(Data Availability Committees)不同,它將有數百個節點協作提供網路安全。Avail 將與 Polygon Hermez(Rollup)配對工作,從 Hermez 上傳狀態資料而不是在以太坊上釋出,提供 Validium 和 Rollup 之間的解決方案。

儘管一些專家指出,Polygon 提供的規格說明更適合描述為 EVM 相容性,但該團隊正在努力建立第一個完全等效於 EVM 的解決方案。

Scroll

Scroll 是由 Scroll 團隊與以太坊基金會的 PSE(Privacy and Scaling Explorations)小組合作開發的 EVM 等效 zk-rollup,目前處於 Pre-Alpha 測試網階段,旨在在位元組碼級別上與以太坊虛擬機器(EVM)完全相容。這意味著開發人員可以使用任何相容 EVM 的語言建立智慧合約並部署到 Scroll 上。儘管 Scroll 目前不支援 EVM opcode,但計劃透過構建 1: 1 opcode 對映來實現,並直接接受 EVM opcode 而無需編譯器。

Scroll 的架構包括一個集中式序列化節點和一個分散的證明網路。集中式序列化節點負責對交易進行排序、建立區塊,並將交易資料作為 calldata 提交到以太坊上的 Rollup 合約以供資料可用性。Scroll 計劃逐步去中心化序列化節點。另一方面,一個名為 Roller 的分散式證明生成器會產生證明並將其釋出到 L1 網路上,利用分散式計算能力。Rollers 是隨機選擇的,可以在不同的 Rollers 上並行生成不同塊的多個證明以增加速度。

*注:雖然目前僅支援鏈上資料可用性,但 Scroll 的原始設計也包括 Validium 模式。

確實,Scroll 和 Polygon 都採用了位元組碼級別的方法來構建它們的 zkEVM。這種方法完全消除了轉譯步驟,這意味著在編譯和解釋之前,這些 zkEVM 不會將 Solidity 程式碼轉換為其他語言。然而,雖然 Scroll 與以太坊唯一的區別在於執行時環境,但 Polygon 建立了一個自定義 VM 並進行了最佳化,然後將 EVM 位元組碼轉換為該 VM 的位元組碼。與 Scroll 不同的是,Polygon 的執行時(“zkExecutor”)執行定製的“zkASM”操作碼(圖中的微操作碼),而不是 EVM 操作碼,以最佳化 EVM 解釋(即減少約束的數量而不是直接證明 EVM)。Polygon zkEVM 可能不會與 100 % 的 Solidity 程式碼、工具和應用程序相容,儘管大部分都可以。

雖然這些是專注於推出通用 zkEVM 實現的最顯著專案,但其他特定應用專案也在實踐中使用 zk 技術。

Looping 是一種特定應用的 zk-rollup,用於支援去中心化交易所(DEX)協議。Loopring 也是一個使用 zk 證明讓任何人構建 dex 的平臺。Immutable X 是另一個基於 StarkWare 構建的特定應用的 zk-rollup,用於 NFT 交易和遊戲。Aztec 是一種以隱私為本的基於以太坊的 zk-rollup,它透過加密資料來保持資料對協議的透明度和可用性,同時保護使用者的隱私。此外,Aztec 還發明瞭 PLONK 證明系統,也被 zkSync 和其他專案使用。

Immutable X、Sorare、rhino.fi、ApeX、dYdX 等多個協議都是基於 StarkEx 構建的。在使用 StarkEx ZK-Rollup 的專案中,資料作為 calldata 傳送到以太坊併發布在鏈上。在 Validium 模式下,資料儲存在鏈下,只有雜湊值儲存在鏈上。雖然 Rollup 模式確保更高的安全性(使用者只需與以太坊區塊鏈進行互動即可重新建立分類賬狀態),但 Validium 模式可以確保更低的成本和更高的隱私。

總體而言,儘管 zkSync Lite 是最大的 zk rollup,StarkWare 擁有最大的生態系統,包括在 StarkEx 上構建的專案,它的 TVL 和市場份額也最大。

總結

總之,zk-rollup 是擴充套件區塊鏈網路的一種有前途的解決方案,提供各種實現以滿足不同的需求和要求。雖然存在一些分類,但值得注意的是,它們是近似的解釋,缺乏對定義和技術差異的共識。

正如 Scroll 聯合創始人 Sandy Peng 所承認的:“沒有任何定義能夠得到清晰的共識。「Scroll 的整個研究團隊」傾向於某種敘述方式或某種看法,但這並不是一個明確的事情。我們的研究團隊甚至在所有事情的含義上都沒有達成共識。”

儘管如此,在 zk rollup 實現中出現了一些共同的趨勢:

  • 首先,它們似乎都採用了混合方法來處理資料可用性,提供一個傳統的鏈上資料儲存的 rollup 版本和一個鏈下資料儲存的 validium 版本。Avail 執行長 Anurag Arjun 告訴 Blockworks:“在我看來,你會發現每個 rollup 都會有一個 rollup 版本和一個 validium 版本。”
  • 其次,它們大多避免使用純開原始碼,直到它們實際執行,這也與來自像 Arbitrum 和 Optimism 這樣的 optimistic rollups 的激烈競爭有關。Zk-rollups 承諾更高效,但技術上更難以實現。
  • 此外,正如上表所清楚的那樣,optimistic rollups 尤其是 Arbitrum,正在受益於先發優勢,並且在應用程序、交易量和市場份額方面領先市場。如果被證明成功,optimistic rollups 可以將有效性證明模型與他們已經建立的使用者基礎相結合(例如,Optimism 的升級 Bedrock 可能引入有效性證明)。
  • 此外,儘管所有實現開始時都採用了中心化序列器來提高效率,但它們都致力於逐步去中心化,以解決對集權的擔憂。有趣的是,去中心化排序器可能需要一種原生代幣的經濟激勵,因此所有提到的專案都應該採取這個步驟。
  • 最後,過去一年中這些 zkEVM 實現所取得的驚人成果已經引起了總體上 zk 技術的新一輪關注,公司專注於各個方面的發展,包括開發新的 zk 硬體來提高證明生成速度。

儘管仍然存在一些挑戰需要解決,但在僅僅一年多的時間裡,zkEVM 設計所取得的進展是值得注意的, 2023 年可能是這項技術決定性的一年。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *