零知识证明(ZKP)是在 1985 年由 Shafi Goldwasser、Silvio Micali、Chales Rackoff 合著的论文《The knowledge complexity of interactive proof systems》首次提出的数学协议,除了某一要证明的事实之外,不会透露任何其他信息。验证者无法获得生成证明的秘密信息。Alchemy(2022)将零知识证明的技术路径分为 ZK-SNARK、ZK-STARK 和 递归 ZK-SNARK。
ZK-SNARKs 是一个零知识的简洁的非交互式的证明。

公链要确保在网络上执行交易的正确性,需要通过让其他计算机(节点)重新运行每笔交易来实现。但这种方法会使每个节点重新执行每笔交易,会减慢网络的速度,限制可扩展性。节点还必须存储交易数据,导致区块链的规模呈指数级增长。
对于这些限制,ZK-SNARK 就发挥了作用。它可以证明在链外进行的计算的正确性,而不需要节点重放计算的每一步。这也消除了节点对存储多余交易数据的需求,提高网络的吞吐量。
使用 SNARK 验证链外计算将计算编码为一个数学表达式来构成有效性证明。验证者检查证明的正确性。若证明通过了所有检查,那么底层计算就被认为是有效的。有效性证明的大小要比它所验证的计算小很多倍,因此我们称 SNARKs 是简洁的原因。
大多数使用 ZK-SNARK 的 ZK Rollup 遵循以下步骤。
1. L2 的用户签署交易后提交给验证者。
2. 验证者利用密码学将多个交易压缩生成相应的有效性证明(SNARK)。
3. L1 链上的智能合约对有效性证明进行验证,决定了这批交易是否发布到主链上。
值得一提的是 ZK-SNARK 需要进行可信设置。在这阶段,密钥生成器会获取一个程序和一个秘密参数来生成两个可用的公钥,分别用于创建证明和验证证明。这两个公钥只需通过一个可信的设置仪式生成一次公共参数,就可供希望参与零知识协议的各方多次使用。用户需要相信可信设置仪式的参与者不作恶,且没有办法评估参与者的诚实性。知道秘密参数便可生成假证明,欺骗验证者,因此存在潜在安全隐患。目前有研究员在探索 ZK-SNARK 无需信任假设的方案。
优势
1. 安全性
ZK rollup 被认为比 OP rollup 更安全的扩展方案,因为 ZK-SNARK 使用了先进的加密安全机制,很难欺骗验证者和进行恶意行为。
2. 高吞吐量
ZK-SNARK 减少了以太坊底层的计算量,缓解了主网堵塞情况,链下计算分担交易费用,带来更快的交易速度。
3. 小证明尺寸
SNARK 证明的小尺寸使它们容易在主链上得到验证,这意味着验证链下交易的 Gas Fee 较低,减少了用户的成本。
局限
1. 相对中心化
大多数时候都依赖于一个可信的设置。这和区块链去信任的初衷相违背。
用 ZK-SNARK 生成有效性证明是一个计算密集型的过程,证明者必须投资于专门的硬件。这些硬件价格昂贵,只有少数人负担得起,因此 ZK-SNARK 的证明过程是高度集中的。
2.ZK-SNARK使用椭圆曲线密码学(ECC)来加密用于产生有效性证明的信息,目前相对安全,但量子计算的进步可能会打破其安全模型。
Polygon Hermez
Polygon 在 2021 年 以 2.5 亿美元并购 Hermez,成为首个两个区块链网络全面并购的案例。Hermez 给 Polygon 快速增长的用户群带来的 ZK 技术和工具,使 Polygon 获得开发 zkEVM 的支持。Hermez 1.0 是支付平台,把一批交易在链外执行,允许用户便捷地把 ERC-20 代币从一个 Hermez 账户转移到另一个 Hermez 账户,每秒交易可达 2000 次。
Hermez 2.0 作为一个零知识的 zkEVM 以透明方式执行以太坊交易,包括具有零知识验证的智能合约。其可与以太坊完全兼容,无需对智能合约代码进行太多改动,方便开发者将 L1 的项目部署到 Polygon Hermez 上。Hermez 1.0 使用 SNARK-proofs,2.0 中同时使用 SNARK-proofs 和 STARK-proofs。在 2.0,使用 STARK-proof 证明链外交易的有效性。但 STARK-proof 在主链上验证的成本很高,因此引入 SNARK-proof 来验证 STARK 。
zkSync
Matter Labs 于 2020 年推出的 zkSync 1.0 不支持智能合约,主要用于交易或转账。支持智能合约的 ZkSync 2.0 已于 2023 年 3 月份公开上线主网。
ZkSync 把以太坊上的智能合约源代码 Solidity 编译为 Yul 来实现 EVM 的兼容性。Yul 是可以编译成不同 EVM 的字节码的中间语言。使用 LLVM 编译器框架可以将 Yul 代码重新编译为为 zkSync 的 zkEVM 设计的自定义、电路兼容的字节码集。通过这种方法,免除通过更高级别的代码对 EVM 执行中的所有步骤进行 zk 证明,从而在保持高性能的同时更容易使证明过程去中心化。未来还可以通过构建新的编译器前端来添加对 Rust、Javascript 或其他语言的支持,增加 zkEVM 架构的灵活性和更多的开发者。
Aztec
Aztec 是第一个混合型 zkRollup,在一个环境中同时实现公共和私有智能合约的执行。这是一个零知识的执行环境,而非 zkEVM。通过将公共和私有执行合并到单个混合汇总中来实现机密性,例如公开 AMM 的隐私交易、公开游戏中的私密对话、公开 DAO 的隐私投票等等。
ZK-STARK 不需要可信的设置。ZK-STARK 是 for Zero-Knowledge Scalable Transparent Argument of Knowledge 的缩写。相比 ZK-SNARK, ZK- STARK 有更好的可拓展性和和透明性。
优势
1. 去信任
ZK-STARK 公开可验证随机来取代可信设置,减少对参与人的依赖,提高协议安全性。
2. 更强的扩展能力
即使底层计算的复杂性呈指数级增长,ZK-STARK 依然保持了较低的证明和验证时间,而非像 ZK-SNARK 线性增长。
3. 更高的安全保证
ZK-STARK 使用抗碰撞哈希值进行加密,而不是 ZK-SNARK 中使用的椭圆曲线方案,可抗量子计算的攻击。
局限
1. 更大的证明尺寸
ZK-STARK 证明尺寸更大,使得在主网验证的成更更高。
2.较低的采用率
ZK-SNARK 是零知识证明是区块链中的第一个实际应用,因此大多数 ZK rollup 采用 ZK-SNARK, 具有更成熟的开发者系统和工具。尽管 ZK-STARK 也有以太坊基金会的支持,但是相比之下采用率不足,基础工具还有待完善。
Polygon Miden
Polygon Miden,一个基于 Ethereum L2 的扩展解决方案,利用 zk-STARK 技术将大量 L2 交易集成到单一的以太坊交易中,从而提升了处理能力并降低了交易成本。在不进行分片的情况下,Polygon Miden 可以在 5 秒内产生一个区块,并且其 TPS 可以达到 1000 以上。而在进行分片后,其 TPS 可高达 10,000。用户只需要 15 分钟,就能将资金从 Polygon Miden 提现到 Ethereum。Polygon Miden 的核心功能是一个基于 STARK 的图灵完备虚拟机——Miden VM,它使得合约的形式化验证变得更为简便。
StarkEx 和 StarkNet
StarkEx 是一个需要许可的、为特定应用程序定制的扩展解决方案的框架。项目可以使用 StarkEx 来进行低成本的链下计算,生成证明执行正确性的 STARK 证明。这样的证明包含 12,000–500,000 笔交易。最后将证明发送到链上的 STARK 验证器,验证正确后接受状态更新。在 StarkEx 上部署的应用程序包括永续期权 dYdX、NFT L2 Immutable、体育数字卡牌交易市场 Sorare 和多链 DeFi 聚合器 rhino.fi。
StarkNet 是一个无需许可的 L2,任何人员都可以在其中部署以 Cairo 语言开发的智能合约。部署在 StarkNet 上的合约之间可以进行交互来构建新的可组合协议。与应用程序负责提交交易的 StarkEx 不同,StarkNet 的排序器批量交易并发送它们进行处理和证明。StarkNet 更适合需要与其他协议同步交互或超出 StarkEx 应用范围的协议。随着 StarkNet 开发的进展,基于 StarkEx 的应用将能够移植到 StarkNet,享受可组合性。
ZK-SNARK 和 ZK-STARK 对比
普通 ZK rollup 只能处理一个交易区块,这限制了他们可以处理的交易数量。递归 ZK-SNARK 可以验证一个以上的交易区块,把不同的 L2 区块生成的 SNARK 合并为一个单一的有效性证明,提交给 L1 链。一旦 L1 链上合约接受了提交的证明,所有这些交易都会变得有效, 极大地增加了可以用零知识证明最终完成的交易数量。
Plonky2 是 Polygon Zero 的一种使用递归 ZK-SNARK 来增加交易的新证明机制。递归 SNARK 通过将几个证明聚集到一个递归证明中,来扩展证明生成过程。Plonky2 使用同样的技术来减少生成新区块证明的时间。Plonky2 将成千上万的交易并行生成证明,再递归地将它们聚合成一个区块证明,因此生成速度很快。而普通的证明机制试图一次性生成整个区块证明,效率更低。此外,Plonky2 还可以在消费级设备上生成证明,解决了 SNARK 证明常伴随的的硬件集中化问题。
ZK-SNARK 和 ZK-STARK 已经成为区块链扩展项目的核心基础设施,特别是 Zero Knowledge Rollup 方案中。Zero-Knowledge Rollup 就是指是指使用零知识证明技术将所有的计算转移到链下处理来减轻网络堵塞的一种以太坊的二层扩容解决方案。Zero Knowledge Rollup 的主要优点是可以大幅提高以太坊的交易吞吐量,同时保持较低的交易费用,且交易一旦打包进 rollup,就能立即确定。
目前以太坊的 L2 扩展方案除了 Zero Knowledge Rollup, 还有 Optimistic Rollup。在 Optimistic Rollup 运行的交易被默认为有效并立即执行。只有当发现欺诈性交易时(有人提交欺诈证明),该交易才会被撤销。所以安全性是低于 Zero Knowledge Rollup 的。为了防止欺诈交易,Optimistic Rollup 设有一段挑战期,如果交易需要在挑战期过后才能最终确定。这可能导致用户在取回他们的资金时需要等待一段时间。
最初设计 EVM 的时候没有考虑到使用零知识证明技术。以太坊创始人 Vitalik 认为短期内 Zero Knowledge Rollup 存在技术上的复杂性,但最终在扩容战争中会战胜 Optimistic Rollup。以下是 Zero Knowledge Rollup 和 Optimistic Rollup 的对比。
来源:SUSS NiFT, ChatGPT
撰文:@Jesse_meta,新跃社科大学普惠金融节点 SUSS NiFT 研究员;@EatonAshton2,Beosin 研究员;@kaplannie,Least Authority 安全研究员
注明:本文为 SUSS NiFT 区块链安全联盟研报部分内容
免责声明:本文为c2e Labs的第三方内容,仅供信息分享与传播之目的,不代表我们的立场或观点且不构成任何投资及应用建议。版权归原作者或来源方所有,如内容或素材有所争议请和我们取得联系。