zkEVM 不會完全兼容 EVM,這意味着部分開發者還需要對智能合約進行修改。
Uniswap 經過投票計劃將 V3 上線二層擴容網路 Arbitrum 在引發了社區熱議的同時,也讓市場感受到了二層網路勢不可擋的浪潮已經形成。
而今天 Matter Labs 的 zkSync 終於將支持通用智能合約的 2.0 版本上線了測試網,爲此前計劃在 8 月上線的主網進行著最後的準備。
此次 zkSync 2.0 也公開了很多此前未披露的信息,其中很多都會直接影響用戶和開發者的體驗。
zkEVM:99% 兼容 EVM
此前 Arbitrum 引發一個討論話題是 EVM 兼容性,雖然 Optimism、Arbitrum 和 zkSync 2.0 都聲稱兼容 EVM (以太坊虛擬機),這也意味着現在的以太坊開發者(比如 Solidity)可以很方便的將現有的代碼通過某些方式遷移至 L2 網路中。
但是根據幾個擴容協議的文檔顯示,他們對於 EVM 的兼容性並不是 100% 的,比如 Optimism 就不支持部分 Opcode。
而 zkSync 的 zkEVM 也是如此,雖然此前他們稱 zkEVM 是圖靈完備的,但還是不支持 EVM 的部分 Opcode。
zkSync 公佈的訊息顯示,他們尚未支持 ADDMOD、CREATE2 等數個 Opcode,但是未來支持加入。而另外比如 KECCAK256 在該版本中也會缺失,但是團隊會引入另一個哈希函數。還有一類是以太坊基金會計劃移除的 Opcode,zkSync 將不會支持。
所以根據他們的總結,zkEVM 將不會完全支持 EVM,不過預計可以支持 99% 以 Solidity 編寫的智能合約。
zkSync 2.0 如何簽署交易?
爲了支持更廣範圍的錢包類型,比如普通的以公私鑰生成的以太坊地址或者以智能合約爲基礎的帳戶,zkSync 2.0 在交易上支持兩種方式。
對於絕大多數的用戶而言(比如使用 MetaMask 或 imToken),如果是原生二層網路的交易,用戶的體驗就是通過錢包對交易進行「簽名」即可,所以用戶不需要支付以太坊主網的交易費。他們採用的是 EIP-712 的標準,所以在 MetaMask 等錢包中是可以得知需要簽署的交易訊息的基本內容的。
而對於智能合約錢包(比如 Argent),zkSync 爲他們也提供了解決方案,會爲這類帳戶設置一個公鑰,以創建內部的 Schnorr Signature 以簽署交易,這將允許這類錢包與 zkSync 2.0 交互的時候不需要錢包使用者支付額外的 L1 交易費。
Gas 消耗由兩部分組成
與以太坊主網使用 ETH 作爲交易手續費不同的是,L2 在聚合交易訊息的同時,還會增加一些額外的支出,特別是這些以零知識證明(ZK)爲基礎的 L2 協議。
首先,zkSync 的交易費會受到 L1 的 Gas 費影響,所以隨着 L1 上的 Gas 增加,zkSync 的 Gas 也會增加。另外,由於該方案本身的特性,需要消耗計算量以提供 ZKP (零知識證明數據),所以這部分的計算費支出也會通過某種形式轉移給使用者。當然,這部分費用也可能會因爲專用計算設備(比如 FPGA)的推出而逐漸降低這部分計算量的成本。
目前,針對這部分 ZKP 計算如何定價以及以何種方式支付,官方還沒給出具體的細節。
與目前以太坊 DApp 的兼容性?
目前的版本中,zkSync 2.0 還沒包括對 Web3 API 的兼容。但 Matter Labs 表示,下個版本支持的 Web3 API,將與以太坊官方文檔中所定義的 Web3 標準兼容,這也就代表着所有的事件(Events)都可以開箱即用,所有的服務也都可以集成。
另外 zkSync 還將包括 L1 中沒有的功能,比如提交的區塊和最終確定的區塊的概念,所以還會爲開發者增加額外的方法,爲開發者能更精確地控制數據。
zkSync+zkPorter 的妥協在哪?
zkSync 一直都是標榜自己幾乎與以太坊主網同等安全性的擴容方案,在安全性上幾乎不用妥協,當然所以它的擴容效果遠遠不如側鏈等方案,比如 Polygon、xDAI,甚至是 BSC (當然也可以不把它看作是側鏈)。
所以從他們的視角中來看,側鏈方案和 Optimistic Rollup 的對比類似於下圖。
而 zkSync 爲了提供更誇張的擴容效果,也同步推出了可以兼容 zkSync 帳戶體系的 zkPorter 方案,將數據可用性移到以太坊之外,這樣就可以更顯著降低 Gas 了。而這部分移出的數據可用性就是依賴於 zkSync 的持幣者通過某些博弈論或者代幣經濟設計來提供了,他們暫時還沒有公開這部分細節。
所以對比 Optimistic Rollup 來說,他們認爲 zkSync 這種基於密碼學的方案,安全性更高,和 L1 相同。不過他們也承認 Rollup 都會降低去中心化的程度(相比 L1),這裡可能代表了節點數量上的區別,所以可能會產生交易審查等情況。
而 zkPorter 則是降低了部分的安全性,換取了更大的擴容效果,他們認爲可以媲美側鏈。所以「zkSync 2.0」和「zkSync 2.0+ETH2 數據分片」方案的區別,可以參考下圖。
考慮到當 zkPorter 在 4 月公開部分細節後 Vitalik Buterin 就質疑了其安全性無法媲美 Optimistic Rollup,Matter Labs 這次還特意製作了這個「zkSync 2.0 和 ETH2 數據分片」組合的圖表,可能是在迎合以太坊社區,展現出最完美的按層級和需求的綜合擴容方案。
Matter Labs 還在圖表中展現了他們對於「可編程性」的信心,和其他所有方案一樣都具有最好的可編程性。雖然他們是可以基於零知識證明實現圖靈完備的編程能力,但是目前這些不兼容 Opcode 的情況還是可能會爲部分開發者帶來不便。