TL;DR
zkEVM 与 zkVM 差异主要在于对 EVM 的兼容以及对零知识证明的支持。
在开发者与开发资源方面,以太坊拥有最多的开发者、最完整丰富的开发资源与基础设施,以太坊的开发者与开发资源更方便转移到 zkEVM 上。而 StarkNet 与 zkSync 等 zkVM 的开发者与开发资源远远落后于以太坊。
在应用生态方面,以太坊拥有最多的 DApp 数量与高达 58% 的 DeFi 份额,以太坊上的既有应用都将是 zkEVM 的发展红利,zkVM 由于 EVM 兼容性差将难以移植这些既有应用;但 zkVM 更兼容零知识证明使得 zkVM 更有可能涌现出应用创新。
在技术上,1)在算法方面, STARKs 有更高的安全性和扩展性,但 STARKs 的证明规模更大,验证时间更长,且 STARKs 仍处于初始阶段,基础设施和代码库不如 SNARKs 完善;2)在语言方面,zkEVM 可能由于短期内兼容技术不成熟使得 Solidity 语言在编写过程中可能产生未知漏洞,zkVM 的语言更加适配零知识证明;3)在架构方面,EVM 串行状态机的架构天然不适配零知识证明,zkVM 则是为零知识证明量身定制的虚拟机。
本文属于《一文看懂 zkEVM》系列文章的第三篇,第一篇介绍了 zkEVM 的基本原理和细分层次,第二篇盘点了行业中主流的 zkEVM 项目,本篇文章将说明 zkEVM 和 zkVM 两种不同 ZKR 项目的基本差异。
为什么要了解zkEVM和zkVM的差异
zkEVM 和 zkVM 是 ZKR 项目的两种不同发展方案,二者没有绝对的优劣,只是在生态兼容和技术性能上有不同的权衡,把握二者的差异,有助于把握不同 ZKR 项目的优劣以及长期发展的基本面。
需要注意,zkVM ZKR 常特指那些专门设计了 zkVM 的 ZKR(如 StarkNet、zkSync、Polygon Miden等),但有时一定程度的兼容 EVM 也被归到 zkEVM 的类别中(如 zkSync )。
基本介绍
zkEVM 是通过零知识证明验证程序正确性的以太坊虚拟机,旨在以支持零知识技术的方式执行智能合约,优点是兼容 EVM。而 zkVM,是用于零知识证明系统电路(程序)实现的虚拟机,优点在于更加兼容 ZK(零知识证明)。
zkEVM 相对遵循 EVM 操作码和字节码规范,zkVM 则设计新的虚拟机,因此 zkEVM 也被叫做原生 EVM ,zkVM 也被叫做自定义(编译) EVM 。
对比
zkEVM 和 zkVM 两种方案,代表着 ZKR 发展的两个方向。
在前文 zkEVM 和 zkVM 定义下,严格来看,ZKR 中的 zkEVM 包括 Scroll、Polygon Hermez、Polygon Nightfall、Polygon Zero,zkVM 包括 StarkNet、zkSync、Polygon Miden。我们将在开发者与开发资源、应用生态、技术前景等方面对比 zkEVM 和 zkVM 两种 ZKR 方案的差异。
开发者与开发资源
zkEVM 可以继承以太坊开发者与开发资源,而 zkVM 则难以继承。
在开发者方面,Electric Capital 编撰的《Developer Report 2021》 中的数据显示以太坊月活开发者于 2021 年达到 4011,在所有区块链中排名第一且并遥遥领先其他区块链。
《《Developer Report 2021》》报告
根据 Github 上以太坊,与 StarkNet、zkSync 等 zkVM 项目热门代码仓库的数据,可以看出以太坊有非常庞大的开发者群体以及代码资源,StarkNet 与 zkSync 远远落后于以太坊。
StarkNet 的开发资源尽管比较完善,但数量较少,也不如以太坊成熟。
zkSync 的开发资源相比以太坊与 StarkNet 一样匮乏,但相比 Starknet,zkSync 的教程不够系统与完善,对开发者不够友好。
总结,以太坊的开发者最多,开发资源最丰富,将是 zkEVM 未来的发展红利,StarkNet 和 zkSync 等 zkVM ZKR 面临巨大的后发劣势。
应用生态
在应用生态方面我们将从应用移植与应用创新两个角度对比 zkEVM 和 zkVM。
以太坊 DApp 总数达到 2970 ,日活用户达到 5.2 万,遥遥领先所有其他区块链。
数据来源:https://www.stateofthedapps.com/zh/stats
在 DeFi 市场方面,根据 defillama 收录的数据,截至 8 月 11 日,以太坊上部署的 531 个 DeFi 协议拥有约 406 亿美元的 TVL ,占整个 DeFi 市场份额的 58.37%。
数据来源:https://defillama.com/chains
以太坊的 DApp 和 DeFi 具有非常庞大的市场,zkEVM 在应用移植方面具有非常良好的发展前景。
应用创新
在应用创新方面,zkVM 相对于 zkEVM 缺失了大量 EVM 兼容性,导致 zkVM 难以承接以太坊的应用红利。但 zkVM 项目由于为零知识证明量身定制了虚拟机,使得 zkVM 涌现出许多 zkEVM ZKR 不能实现的创新。
比如 StarkNet 的团队 Topology 宣称实现了全链游戏 Issac 。
Issac 的资产交易、状态存储、逻辑执行全部在链上。
全链也意味着游戏符合区块链的基本属性,去中心、免许可、可组合。没有实体可以更改游戏基本规则,玩家和可以免许可地参与游戏并在其中创造,开发者可以根据合约自行创建出游戏前端以及游戏内的设施和资产。
Topology 团队的一篇文章集中阐述了 Issac 的设计哲学。
技术前景
在技术前景方面,我们将在算法、语言、架构方面来对比 zkEVM 和 zkVM 的优劣。
在算法上,大多 zkEVM ZKR 使用 SNARKs 算法,而 StarkNet 作为最极端的 zkVM 主义者使用 STARKS 算法,需要说明的是, SNARKs 是包括 Groth16、Halo、Fractal、Sonic 在内的系列算法的统称, STARKs 是一种新兴的特定 SNARKs 算法, 我们将比较二者之间的优劣。
需要说明的是,可信设置意味着是否需要受信任的设置即可工作,如果不需要信任设置,会具备更高的安全性,量子安全意味着能否防止量子计算机暴力破解私钥;递归意味着是否能证明自己,简单来讲就是可在 L2 上再实现一个L2,实现 L3 的效果,性能前景近乎无限。
STARKs 与 SNARKs 相比,有更高的安全性和扩展性,性能潜力更好,但目前 STARKs 的证明规模更大,验证时间更长,且处于初始阶段,基础设施和代码库不如 SNARKs 完善。
在语言方面,由于 zkEVM 的兼容 EVM 的方式是在字节码、操作码上对 EVM 预编译。这会出现两个问题。
一方面,由于目前操作码和字节码兼容不完善,会造成 Solidity 代码在移植、转换电路的过程中出现未知漏洞,如 Polygon Hermez 将 EVM 字节码直接转换为虚拟机的字节码。
图片来自:https://blog.hermez.io/introducing-hermez-zkevm/
另一方面,随着零知识证明技术的成熟,zkEVM必然出现为定制电路的需求,而 Solidity等语言对零知识证明不友好,这将造成巨大的技术障碍。
而 StarkNet 和 zkSync 这类 zkVM 设计了兼容零知识证明的语言如 Cairo 和 Zinc。开发者可通过这些语言直接为自己的程序生成零知识证明,而不需要学习专业的零知识证明知识编写一组多项式方程并转化为电路。
总结,zkEVM 可能由于短期内兼容技术不成熟使得 Solidity 语言在编写过程中可能产生未知漏洞,zkVM 的编程语言相对于 zkEVM 更加适配零知识证明。
在架构方面,按照以太坊黄皮书的规范,EVM 是一个基于堆栈的、串行状态机,简单来讲就是EVM 天然与零知识证明不兼容。而 zkVM 则是为零知识证明量身定制的虚拟机,在底层架构更加适合零知识证明。
zkVM 极端主义者 StarkNet 发明的 Cairo 语言,是对 CPU 友好的适配零知识证明的高级语言,使得 StarkNet 在 CPU 层级上更加适配零知识证明,甚至可以为此定制零知识证明硬件。投资机构 Paradium 也注意到了零知识证明中的硬件机会,并为此撰写了论文《Hardware Acceleration for Zero Knowledge Proofs》
推荐下载 Cairo 白皮书以掌握更多设计细节《Cairo – a Turing-complete STARK-friendly CPU architecture》。
综合来看,zkVM 相比 zkEVM 在算法、语言、架构上更加适配零知识证明,拥有更高的扩展性和安全性。
未来展望
Scroll 创始人 Ye Zhang 在推特上建议 StarkWare 通过 zkEVM 验证 StarkNet 上用 Cairo 语言编写的证明程序,简单讲就是在一个 L2 上建立另一个 L2。这样的提议在技术上是可行的,并且这一提议无疑也描述了一个更有想象力、包容性的 L2 世界。
各个 zkEVM 、zkEVM 方案的 ZKR 都将在下半年开启主网与测试网,可以预见,在明年我们就会见证多个 ZKR 网络迎来大规模应用,以太坊生态逐渐向 ZKR 网络迁移,区块链可能迎来 3G 换 4G 的时代浪潮,网络扩容增速将会为应用创新奠定基础并开启下一轮牛市,2022 年的冬天可能是 Crypto 最后一个冬天。