跳至內容
0%

什麼是 ZKsync Era?給 Ethereum 開發者的概覽

Sankrit K headshot

作者 Sankrit K

發布於 2024年5月9日閱讀時間 5 分鐘

ZK rollup 已成為解決區塊鏈擴容問題的一個有前景的方案——它們透過零知識證明(ZKPs)提升隱私性、加快交易速度,並大幅降低費用。然而,由於 ZK rollup 與 Ethereum Virtual Machine (EVM) 不相容,導致其一直未能獲得廣泛採用。

EVM 是 Ethereum 的核心,讓開發者能使用 Solidity 建構並部署應用程式。由於傳統的 ZK rollup 與 EVM 不相容,開發者必須為 ZK rollup 環境重寫整個智能合約。因此,儘管這項技術潛力十足,卻成了其被採用的一大阻礙。ZKsync 的目標就是改變這個局面。

由 Matter Labs 打造的 ZKsync 是首創的 Ethereum layer 2 擴容方案。在公開其願景——打造一個無需信任、注重隱私的 Ethereum 擴容方案——僅僅六個月後,ZKsync 便以達成看似不可能的目標震驚了區塊鏈業界:EVM 相容性。

後來,ZKsync 演化出兩個版本:ZKsync Lite 與 ZKsync Era。

本文將深入探討 ZKsync Era 的細節、它與 ZKsync Lite 的差異,以及它相較於其他 ZK 區塊鏈的特點。

什麼是 zkSync era?

ZKsync 是一個通用型的 Ethereum layer 2 解決方案,也是全球第一個與 EVM 相容的 ZK rollup。

它解決了 Ethereum 主網長期存在的兩大問題:擴容性與高額交易費用。

zkSync Era TVL 圖表
zkSync Era TVL

借助其基於 LLVM 的編譯器,透過 ZKsync 為 Ethereum 開發的開發者可以用 Solidity、Vyper 等語言編寫智能合約。大多數基於 EVM 的智能合約都能直接遷移,充分發揮 ZK rollup 的潛力,而不需要重寫任何一行程式碼。

zkEVM 入門介紹

EVM 是完全透明的——這是有原因的,也就是可驗證性。唯有透過透明性,基於 EVM 的區塊鏈才能確保所有交易不僅可見,還能被任何參與者驗證。

這種開放程度確保了所有操作都遵循網路制定的共識規則,從而防止詐欺行為,並確保網路維持安全且去中心化。

但目標從來就不是透明性,而是無需信任。在 ZK rollup 出現之前,透明性只是通往無需信任的手段。

舉例來說,一個誠實的行為者(比如一般使用者)可能基於個人偏好,希望其交易及其他資訊保持私密。傳統上,區塊鏈並不允許這麼做。

但有了 zkEVM,區塊鏈上的任何交易都可以用機率方式證明,而不需要揭露交易中的每一項資訊。

zkEVM 交易示意圖。
zkEVM 交易示意圖

什麼是 zkSync lite?

Matter Labs 推出的第一版 ZKsync 是 ZKsync 1.0——一個主要專注於在 Ethereum 上實現安全且低成本代幣轉帳的 layer 2 解決方案。後來它更名為「ZKsync Lite」。

ZKsync Lite 在鏈下打包交易以產生有效性證明,再將這些證明提交至 Ethereum 主網進行驗證。然而,它並未實現完整的 EVM 相容性,因此所支援的應用程式範圍受到限制。

ZKsync Lite 的局限性促成了第二代方案 ZKsync 2.0 的誕生,也就是我們現在所知的「ZKsync Era」。

zkSync lite 與 zkSync era 比較

鏈

ZKsync Lite

ZKsync Era

重點

可擴展的支付與代幣轉帳

完全可程式化的擴容方案

EVM 相容性

有限

完整

智能合約支援

基本(交換、轉帳)

廣泛(DeFi、NFT、DAO 等)

架構

純 ZK rollup

混合架構(ZK rollup 搭配 zkPorter,以提升擴容能力)

整合速度

快速

較 ZKsync Lite 慢

使用情境

支付、簡單交易

支付、複雜應用程式、DeFi 協定、NFT 交易平台、遊戲等

在文件中了解更多。

zkSync 原生帳戶抽象化概觀

較舊或傳統的區塊鏈難以在協定層原生實現帳戶抽象化相關創新。由於這些鏈已相當成熟,若在協定層整合 AA 技術堆疊,會產生向後相容性問題。

而 ZKsync 則是一個相對較新的解決方案,透過類似 ERC-4337 的整合方式,將 AA 原生內建於協定中。

以下說明該協定如何原生實現 AA:

zkSync 帳戶抽象化示意圖。來源:Clave
zkSync 帳戶抽象化示意圖

交易發起

交易由 EOA 與合約發送至 mempool。這包括一般轉帳、合約互動及其他類型的交易。

交易聚合

Bundler(Operator Sequencer)從 mempool 取出交易,並將它們打包成一個批次。

此過程包含由 **Entrypoint(BootLoader)**產生密碼學證明(可能是零知識證明),用以證明批次中所有交易的有效性,而不揭露底層交易資料。

證明提交與交易確定

打包後的交易及其證明會被提交至 Ethereum L1 上的 Rollup Contract。

Rollup Contract 會驗證這些證明,一旦驗證成功,就會將交易定案。

這個步驟實際上是將 layer 2 運算的結果寫回 Ethereum 主鏈。

確定性

一旦交易獲得 Rollup Contract 確認,就被視為已定案。

Ethereum 上區塊的最終確定性確保了所有納入的交易都是不可竄改的,且正式成為 Ethereum 帳本的一部分。

ZKsync 使用哪種 ZK 技術?

「ZK 技術是擴容領域的聖杯。而這正是 Ethereum 及所有區塊鏈最終將實現擴容的方式。」

— Alex Gluchowski | Matter Labs 共同創辦人暨執行長

零知識證明,特別是遞迴式 ZK-SNARK,是 ZKsync 所用技術的核心。

SNARK 是一種特定類型的零知識證明,具備簡潔性(意即體積小、驗證快速)與非互動性(證明者與驗證者之間不需要往返通訊)的特點。

遞迴式 SNARK 在此基礎上進一步擴展,允許一個 SNARK 證明去驗證另一個 SNARK。這使得建構「證明金字塔」成為可能,其中每一層都依賴於前一層的有效性,讓大量運算或交易能夠以可擴展且有效率的方式被驗證。

因此,即使是運算能力相對較低的裝置,例如智慧型手機,也能以極少的資源驗證大量交易。

Matter Labs 製作的 zkSync 區塊驗證示意圖
zkSync 區塊驗證示意圖。來源:Matter Labs

支撐 ZKsync 技術的是其框架 ZK Stack。

以 ZK stack 建構:驅動 zkSync 的框架

ZK Stack 是一個模組化、開源的框架,基於 ZK Credo 的原則,用於建構由 ZK 驅動的 Hyperchain。

這些 Hyperchain 就像是獨立的區塊鏈,能在 ZK Sync 生態系統內享有無縫的互通性。

ZK 驅動的 hyperchain 結構示意圖。
ZK hyperchain 示意圖。來源:Matter Labs

ZK Stack 的模組化設計讓開發者能對以下項目進行細緻控制:

  • **資料可用性:**可在 rollup、validium 或 volition 等配置之間選擇,以取得隱私與擴容性之間的最佳權衡。
  • **代幣經濟學:**可以 Ether 作為基礎代幣設計你的 Hyperchain,也可使用自訂代幣,甚至支援多種代幣。
  • **排序機制:**可實作不同的 sequencer 設定,以達到中心化的高效率(如高頻交易)或去中心化的無需許可式安全性。

zkSync 與其他 ZK 區塊鏈的比較

直到幾年前,社群仍在尋求以側鏈及 plasma 技術來實現 Ethereum 擴容。然而,如今 rollup 已成為有效擴展 Ethereum 的核心技術。

自 2018 年問世以來,ZK rollup 尤其獲得了大量關注與採用,例如 Polygon 等大型專案的採用,以及像 Vitalik Buterin 這樣的意見領袖的倡導。

ZK 證明與擴展性示意圖。
ZK 證明與擴展性示意圖。來源:Linea

根據 L2 beat 的資料,截至本文撰寫時,已有 11 個活躍的 ZK rollup 型 layer 2 擴容方案,另有 14 個即將推出。面對如此多的選項,開發團隊該如何做出明智的決策,選擇適合建構的 rollup?

基於 ZK rollup 的第二層擴展方案清單。
基於 ZK rollup 的第二層擴展方案。來源:L2Beat

建構應用程式時,有三項因素需要考量:

  1. **選擇合適的鏈:**評估擴容性、安全性與開發者支援程度,選擇符合專案需求的區塊鏈。
  2. **考慮多鏈策略:**在多鏈方案帶來的更廣泛市場接觸與風險分散,與隨之增加的複雜度與成本之間取得平衡。
  3. **評估工程負擔:**考量整合難易度、營運維護以及所需的開發技能,估算所需的總成本與時間投入。

接下來,我們來看看 ZKsync Era 與 Starknet 及 Polygon zkEVM 有何不同。

zkSync era 與 StarkNet 的比較

Starknet 是(以 TVL 而言)目前領先的 Ethereum ZK rollup 擴容方案,其目標與 ZKsync Era 類似——擴展 Ethereum 並促進大規模採用。

ZKsync Era 專注於向後相容性,讓開發者能輕鬆遷移專案,或利用既有的 Solidity 與 Vyper 知識進行開發。

而 Starknet 則採取另一種策略,優先考慮能吸引那些不熟悉主流區塊鏈開發語言的新進開發者,讓他們可以直接使用相對簡單的語言 Cairo 進行開發。

下表說明了 ZKsync Era 與 Starknet 之間的差異。

鏈

ZKsync Era

Starknet

證明產生方式

ZK-SNARK

ZK-STARK

證明大小

小

大

無需信任程度

較低

較高

驗證成本

每批次約 460,000 gas

多對數複雜度(搭配 EIP-4844 後更低)

EVM 相容性

有

無

開發者體驗

對 Ethereum 開發者較容易上手

對 Ethereum 開發者有學習曲線

程式語言

Solidity、Vyper

Cairo

編譯器

LLVM

Warp

zkSync era 與 Polygon zkEVM 的比較

ZKsync Era 與 Polygon zkEVM 的推出時間相差不到一週,兩者採用的技術相似,但仍有些細微差異。具體來說,Polygon zkEVM 是「EVM 等效」(EVM-equivalent)的 rollup,而 ZKsync Era 則是「EVM 相容」(EVM-compatible)的 rollup。

「EVM 相容」意味著其底層虛擬機能理解並執行為 Ethereum Virtual Machine(EVM)編寫的程式碼。開發者可以輕鬆將現有的 Ethereum 智能合約移植到 ZKsync Era,僅需做少量修改。

「EVM 等效」則意味著它在底層使用不同的虛擬機,但能達成與 EVM 相似的功能。開發者可能需要調整既有的 Ethereum 智能合約,才能在 Polygon zkEVM 上完美運作。

下方的比較表格突顯了 ZKsync Era 與 Polygon zkEVM 之間的重要差異。

鏈

ZKsync Era

Polygon zkEVM

證明產生方式

ZK-SNARK

ZK-SNARK 及 zk-STARK

證明大小

小

大

無需信任程度

較低

較高

EVM 相容性

相容

等效

開發者體驗


可輕鬆遷移 Ethereum 智能合約

可能需要一些程式碼調整

程式語言

Solidity、Vyper

Solidity

編譯器

LLVM

未使用編譯器

使用 Alchemy 進行開發

ZKsync 現已在 Alchemy 上線。

此整合免除了自行運行與維護 ZKsync 節點的負擔,讓你能專注於應用程式獨特的價值主張。

透過 Alchemy 的 Node API,即可存取 ZKsync Era 的主網與測試網 RPC 端點。使用 Alchemy 的 API,開發者能獲得高可靠性與流暢的開發體驗。

三步驟即可開始

  1. **註冊免費帳戶:**前往 Alchemy 建立你的帳戶。
  2. **取得 ZKsync Era RPC 端點:**在你的 Alchemy 儀表板上尋找 ZKsync Era(主網與測試網)端點。
  3. **開始建構:**將這些端點整合到你的 dApp 中。

更多資訊請參閱ZKsync Era API 快速入門文件。

常見問題

什麼是 zkSync era?

zkSync Era 是一個 Ethereum layer 2 擴容方案,也是全球第一個與 EVM 相容的 ZK rollup,它解決了 Ethereum 的擴容性問題與高額交易費用,同時完整維持與現有 Ethereum 智能合約的相容性。

zkSync era 與 zkSync lite 有何不同?

zkSync Lite 專注於可擴展的支付與代幣轉帳,EVM 相容性有限;而 zkSync Era 是一個完全可程式化的擴容方案,具備完整的 EVM 相容性,支援 DeFi 協定、NFT 交易平台、遊戲等廣泛的應用程式。

開發者需要學習新的程式語言才能在 zkSync era 上開發嗎?

不需要,開發者可以使用熟悉的 Ethereum 程式語言,如 Solidity 與 Vyper,而且大多數基於 EVM 的智能合約都能直接遷移,不需要重寫任何一行程式碼。

zkSync era 使用哪種零知識技術?

zkSync Era 使用遞迴式 ZK-SNARK,這是一種簡潔且非互動式的零知識證明,能以極少的運算資源有效驗證大量交易。

什麼是 zkSync era 上的原生帳戶抽象化?

zkSync Era 在協定層原生內建了帳戶抽象化,能實現進階的錢包功能與使用者體驗改進,且不會產生較舊區塊鏈所面臨的向後相容性問題。

zkSync era 與 Starknet 等其他 ZK rollup 相比有何不同?

zkSync Era 優先考量 EVM 相容性,使用 Solidity 與 Vyper 以便於遷移;而 Starknet 則使用自有的 Cairo 程式語言,開發者需要學習新工具,但對新進開發者而言可能提供較簡易的開發體驗。

什麼是 ZK stack,它與 zkSync era 有何關聯?

ZK Stack 是驅動 zkSync Era 的模組化開源框架,能用於建構由 ZK 驅動的 Hyperchain,並對資料可用性、代幣經濟學及排序機制等配置提供細緻控制。

Background gradient

打造區塊鏈魔法

Alchemy 結合最強大的 Web3 開發者產品與工具,並提供資源、社群與卓越的支援。