【密码学百科】零知识证明系统:zk-SNARKs、zk-STARKs 与 Bulletproofs
💡
原文中文,约15900字,阅读约需38分钟。
📝
内容提要
零知识证明(ZKP)允许证明者在不泄露信息的情况下向验证者证明命题的真实性。自1985年提出以来,ZKP在区块链扩容和隐私保护中发挥了重要作用。目前主流的ZKP系统包括zk-SNARKs、zk-STARKs和Bulletproofs,各具不同的构造原理和应用场景。ZKP技术的快速发展使得选择合适的证明系统变得复杂,工程团队需在多个维度上进行权衡。
🎯
关键要点
- 零知识证明(ZKP)允许证明者在不泄露信息的情况下证明命题的真实性。
- 自1985年提出以来,ZKP在区块链扩容和隐私保护中发挥了重要作用。
- 主流的ZKP系统包括zk-SNARKs、zk-STARKs和Bulletproofs,各具不同的构造原理和应用场景。
- ZKP系统需要满足完备性、可靠性和零知识性三条性质。
- 零知识证明可分为交互式和非交互式两大类别,后者在区块链中更为常见。
- zk-SNARKs的证明尺寸极小,验证时间远低于直接执行计算本身,但需要可信设置。
- zk-STARKs不需要可信设置,具有后量子安全潜力,但证明尺寸较大。
- Bulletproofs同样不需要可信设置,适用于范围证明等特定场景,但验证时间与计算规模线性相关。
- Groth16是最简洁的SNARK,具有最小的证明尺寸和最高的验证效率,但依赖于可信设置。
- PLONK是通用且可更新的SNARK方案,支持任意电路的验证,且无需重新举行可信设置仪式。
- 多项式承诺方案是现代零知识证明系统的核心组件,决定了安全假设、证明尺寸和验证效率。
- zk-STARKs实现完全透明的设置,依赖抗碰撞哈希函数,天然抵抗量子计算攻击。
- Bulletproofs通过内积论证压缩范围证明的尺寸,适合保密交易等场景。
- 递归证明和证明聚合是ZKP领域的重要技术,能够将多个证明压缩为一个。
- zkRollup是ZKP在区块链扩容中的旗舰应用,允许链下执行大量交易。
- 隐私币和去中心化身份是ZKP的传统应用领域,支持隐私保护和选择性披露。
- 零知识机器学习(zkML)是一个新兴领域,旨在保护模型权重和输入数据的隐私。
- 工程团队在选择证明系统时需在多个维度上进行权衡,包括可信设置、证明尺寸和验证效率。
❓
延伸问答
零知识证明的基本概念是什么?
零知识证明(ZKP)允许证明者在不泄露任何额外信息的情况下,向验证者证明某个命题的真实性。
zk-SNARKs与zk-STARKs有什么主要区别?
zk-SNARKs需要可信设置,证明尺寸小且验证时间快;而zk-STARKs不需要可信设置,具有后量子安全潜力,但证明尺寸较大。
Bulletproofs适合于哪些应用场景?
Bulletproofs适用于范围证明等特定场景,尤其在保密交易中用于隐藏交易金额。
选择零知识证明系统时需要考虑哪些因素?
选择零知识证明系统时需考虑可信设置、证明尺寸、验证效率、证明器性能和后量子安全性等多个维度。
zkRollup在区块链中的作用是什么?
zkRollup通过将大量交易的执行移至链下,仅在链上提交状态根和零知识证明,从而实现区块链的扩容。
零知识机器学习(zkML)是什么?
零知识机器学习(zkML)旨在证明机器学习模型的推理结果是由特定模型权重和输入数据正确计算得出的,同时保护模型权重和输入数据的隐私。
➡️