zkEVM 不会完全兼容 EVM,这意味着部分开发者还需要对智能合约进行修改。

撰文:Donnager

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 等钱包中是可以得知需要签署的交易信息的基本内容的。

zkSync 2.0 测试网上线又透露哪些新信息?

而对于智能合约钱包(比如 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 2.0 测试网上线又透露哪些新信息?

而 zkSync 为了提供更夸张的扩容效果,也同步推出了可以兼容 zkSync 账户体系的 zkPorter 方案,将数据可用性移到以太坊之外,这样就可以更显著降低 Gas 了。而这部分移出的数据可用性就是依赖于 zkSync 的持币者通过某些博弈论或者代币经济设计来提供了,他们暂时还没有公开这部分细节。

所以对比 Optimistic Rollup 来说,他们认为 zkSync 这种基于密码学的方案,安全性更高,和 L1 相同。不过他们也承认 Rollup 都会降低去中心化的程度(相比 L1),这里可能代表了节点数量上的区别,所以可能会产生交易审查等情况。

而 zkPorter 则是降低了部分的安全性,换取了更大的扩容效果,他们认为可以媲美侧链。所以「zkSync 2.0」和「zkSync 2.0+ETH2 数据分片」方案的区别,可以参考下图。

zkSync 2.0 测试网上线又透露哪些新信息?

考虑到当 zkPorter 在 4 月公开部分细节后 Vitalik Buterin 就质疑了其安全性无法媲美 Optimistic Rollup,Matter Labs 这次还特意制作了这个「zkSync 2.0 和 ETH2 数据分片」组合的图表,可能是在迎合以太坊社区,展现出最完美的按层级和需求的综合扩容方案。

Matter Labs 还在图表中展现了他们对于「可编程性」的信心,和其他所有方案一样都具有最好的可编程性。虽然他们是可以基于零知识证明实现图灵完备的编程能力,但是目前这些不兼容 Opcode 的情况还是可能会为部分开发者带来不便。