背景#
EVM 在设计之时,并未考虑到要支持零知识证明,这使得构建 EVM 兼容的零知识虚拟机变得困难,这也是早期的 「ZK-rollup」 缺乏执行智能合约的能力的原因。但是,不过伴随研究方面的进展,使得可以将 EVM 的计算包裹到零知识证明中。
什么是 ZK-EVM#
「零知识以太坊虚拟机(ZK-EVM)」是一种生成零知识证明来验证程序正确性的虚拟机。ZK-EVM 旨在以支持零知识技术的方式执行智能合约。
不同的 ZK-EVM 项目采用不同的方法将 EVM 执行与零知识证明计算相结合。V 神根据 EVM 等效性将 ZK-EVM 分为 5 种不同类型:
・完美兼容以太坊 (Type 1)
・对以太坊底层做了一些不涉及应用层的微小变动 (Type 2)
・对 EVM 中某些操作的 GAS 进行修改 (Type 2.5)
・对以太坊底层做了一些涉及应用层的微小变动(Type 3)
・高级语言等效,将由 Solidity 和 Vyper 等高级语言编写的应用编译成 ZK 友好的语言(Type 4)
什么是 ZK-SNARK#
「ZK-SNARK」 全名是 Zero Knowledge Succinct Non-interactive Argument of Knowledge,是一种实现零知识证明协议,允许一方(证明者)向另一方(验证者)证明他们拥有某些信息,例如密钥或解决方案解决数学问题,而不透露实际信息本身。
「零知识证明(ZK-SNARK)」和「零知识以太坊虚拟机(ZK-EVM)」为 zk-rollup 提供了一套完整的解决方案。