词汇表

零知识证明 (ZKP)

2026/4/17

零知识证明 (ZKP) 是一种密码学协议,其中一方(证明者)在不透露任何额外信息的情况下说服另一方(验证者)某个声明是真实的。零知识证明由 Shafi Goldwasser、Silvio Micali 和 Charles Rackoff 在他们1985年的论文《交互式证明系统的知识复杂性》中首次提出——这一成果获得了哥德尔奖(1993年),并为 Goldwasser 和 Micali 的图灵奖(2012年)做出了贡献。

三个属性

每个零知识证明系统都满足:

  • 完备性 — 如果声明是真实的,诚实的证明者可以说服诚实的验证者
  • 可靠性 — 如果声明是假的,没有作弊的证明者可以说服验证者(除非概率极小)
  • 零知识 — 验证者除了声明的真实性外,什么也学不到;关于声明为何真实的信息不会泄露

经典直观例子:证明你知道密码而不透露密码。

现代证明系统

  • zk-SNARK(简洁非交互式知识论证)— 非常小的证明(几百字节),常数时间验证。经典构造(Groth16、PGHR13)需要特定电路的可信设置PLONKMarlin 使用通用可更新设置;Halo 2(由 Electric Coin Company 为 Zcash 开发)使用多项式承诺,无需可信设置
  • zk-STARK(可扩展透明知识论证)— 由 Ben-Sasson 等人(2018年)引入。透明(无需可信设置),仅依赖于哈希函数,并且可能是后量子安全的。证明较大(几十到几百KB)。由 StarkWare 在 Starknet 和 StarkEx 中使用。
  • Bulletproofs — 无需可信设置的短范围证明。自2018年以来被 Monero 用于保密金额。
  • Nova / HyperNovaPlonky2 / Plonky3 — 现代折叠方案和递归 SNARK 系统,优化用于增量计算。

在加密中的应用

隐私

  • Zcash — 使用 zk-SNARKs(Groth16 → Halo 2)的屏蔽交易
  • Aztec NetworkAleoNamada — 注重隐私的智能合约
  • Monero — 用于范围证明的 Bulletproofs
  • Tornado Cash — zk-SNARK 混合(美国财政部的制裁在2024年被第五巡回法院部分推翻)

可扩展性 — ZK-rollups

  • zkSync EraStarknetPolygon zkEVMScrollLinea — 将数千个 L2 交易压缩成一个发布到以太坊的有效性证明。这些汇总使用 ZK 来实现简洁性,而不是隐藏数据。

身份和凭证

  • Worldcoin — 从虹膜扫描中证明身份而不透露扫描本身
  • zk-email — 证明电子邮件收据而不透露电子邮件内容
  • Polygon IDSemaphore — 无可链接钱包历史的链上身份

可验证计算

  • zkML(EZKL、Modulus Labs)— 证明 AI 模型在特定输入上正确运行
  • 链上协处理器(Axiom、Herodotus)— 证明链下计算结果

常见误解 — "ZK" ≠ "隐私"

zk-rollup 在其名称中宣传 "ZK",但通常提供用户隐私。此处的零知识属性用于简洁性——一个小证明证明了许多交易——而不是用于隐藏数据。所有交易在汇总上仍然是公开的。对于用户隐私,需要额外的设计(Aztec、Aleo)。

另见