# 零知识证明的历史、应用与原理## 一、零知识证明的发展历程现代零知识证明体系起源于1985年Goldwasser、Micali和Rackoff发表的论文。该论文探讨了在交互系统中,通过多轮交互来证明一个陈述正确性所需交换的知识量。如果可以实现零知识交换,则被称为零知识证明。这种交互式系统存在概率性正确的问题,因此后来发展出了具有完备性的非交互式系统。早期的零知识证明系统效率和可用性较差,主要停留在理论层面。近10年来,随着密码学在加密货币领域的兴起,零知识证明逐渐成为重要研究方向。其中,探索通用、非交互、证明体积有限的协议是关键。零知识证明的重要突破包括:- 2010年Groth提出的短配对非交互零知识证明,为zk-SNARK奠定理论基础- 2013年Pinocchio协议,压缩了证明和验证时间- 2016年Groth16算法,精简了证明大小并提升验证效率 - 2017年Bulletproofs算法,实现了短小的非交互式零知识证明- 2018年zk-STARKs协议,无需可信设置此外,PLONK、Halo2等也是重要进展,对zk-SNARK做出了改进。## 二、零知识证明的主要应用零知识证明最广泛的两个应用是隐私保护和扩容。隐私交易方面,代表性项目包括:- Zcash:使用zk-SNARKs实现交易隐私- Monero:使用Bulletproof算法 - Tornado Cash:基于以太坊的混币池扩容方面,主要体现为ZK Rollup技术:- 可在一层网络实现,如Mina - 更多在二层网络实现,即ZK RollupZK Rollup主要有两类角色:Sequencer负责打包交易,Aggregator负责合并交易并生成证明。目前市场上有竞争力的ZK Rollup项目包括:StarkNet、zkSync、Aztec Connect、Polygon Hermez/Miden、Loopring、Scroll等。它们在技术路线上主要在SNARK和STARK之间选择,以及对EVM的支持程度。EVM兼容性是一个重要问题。项目一般会在ZK系统和EVM兼容之间取舍,或者设计新的虚拟机来兼顾两者。近期EVM兼容性有了很大进展,这将影响ZK生态的发展。## 三、ZK-SNARK的基本原理 ZK-SNARK代表"零知识简洁非交互式知识论证"。它具有以下特点:- 零知识:不泄露额外信息- 简洁:验证过程简短 - 非交互:无需多轮交互- 可靠性:有限计算能力的证明者无法伪造 - 知识性:证明者必须知道有效信息以Groth16为例,ZK-SNARK的基本步骤包括:1. 将问题转换为电路2. 电路转换为R1CS形式3. R1CS转换为QAP形式 4. 生成可信设置参数5. 生成和验证ZK-SNARK证明零知识证明在密码学和区块链领域发挥着越来越重要的作用,其发展和应用值得持续关注。
零知识证明:从理论基础到ZK Rollup应用的全面解析
零知识证明的历史、应用与原理
一、零知识证明的发展历程
现代零知识证明体系起源于1985年Goldwasser、Micali和Rackoff发表的论文。该论文探讨了在交互系统中,通过多轮交互来证明一个陈述正确性所需交换的知识量。如果可以实现零知识交换,则被称为零知识证明。这种交互式系统存在概率性正确的问题,因此后来发展出了具有完备性的非交互式系统。
早期的零知识证明系统效率和可用性较差,主要停留在理论层面。近10年来,随着密码学在加密货币领域的兴起,零知识证明逐渐成为重要研究方向。其中,探索通用、非交互、证明体积有限的协议是关键。
零知识证明的重要突破包括:
此外,PLONK、Halo2等也是重要进展,对zk-SNARK做出了改进。
二、零知识证明的主要应用
零知识证明最广泛的两个应用是隐私保护和扩容。
隐私交易方面,代表性项目包括:
扩容方面,主要体现为ZK Rollup技术:
ZK Rollup主要有两类角色:Sequencer负责打包交易,Aggregator负责合并交易并生成证明。
目前市场上有竞争力的ZK Rollup项目包括:StarkNet、zkSync、Aztec Connect、Polygon Hermez/Miden、Loopring、Scroll等。它们在技术路线上主要在SNARK和STARK之间选择,以及对EVM的支持程度。
EVM兼容性是一个重要问题。项目一般会在ZK系统和EVM兼容之间取舍,或者设计新的虚拟机来兼顾两者。近期EVM兼容性有了很大进展,这将影响ZK生态的发展。
三、ZK-SNARK的基本原理
ZK-SNARK代表"零知识简洁非交互式知识论证"。它具有以下特点:
以Groth16为例,ZK-SNARK的基本步骤包括:
零知识证明在密码学和区块链领域发挥着越来越重要的作用,其发展和应用值得持续关注。