# 零知识证明的历史、应用与原理## 一、零知识证明的发展历程零知识证明体系源于1985年Goldwasser、Micali和Rackoff的论文,该论文探讨了在交互系统中证明一个陈述正确性所需交换的知识量。如果可以做到零知识交换,就称为零知识证明。早期的零知识证明系统效率和可用性欠佳,主要停留在理论层面。近十年来,随着密码学在加密货币领域兴起,零知识证明迎来快速发展。零知识证明的关键突破是Groth在2010年提出的zk-SNARK理论。2015年,Zcash将零知识证明应用于交易隐私保护,开启了更广泛的应用场景。其他重要进展包括:- 2013年Pinocchio协议:压缩了证明和验证时间- 2016年Groth16:精简了证明大小,提升验证效率 - 2017年Bulletproofs:提出短小的非交互式零知识证明- 2018年zk-STARKs:无需可信设置的协议此外,PLONK、Halo2等也对zk-SNARK做出了重要改进。## 二、零知识证明的主要应用零知识证明目前主要应用于隐私保护和扩容两个方面。### 隐私保护早期隐私交易项目如Zcash和Monero备受关注,但随着需求减弱,逐渐退居二线。主要的隐私交易项目包括:- Zcash:使用zk-SNARKs - Monero:使用Bulletproof- Tornado Cash:基于以太坊的混币池### 扩容零知识证明在扩容方面的应用主要是zk-rollup。zk-rollup包括Sequencer和Aggregator两类角色:- Sequencer负责打包交易- Aggregator负责合并交易并生成零知识证明zk-rollup的优点是费用低、快速终局性,缺点是计算量大、需要可信设置等。主流的zk-rollup项目有:StarkNet、zkSync、Aztec Connect、Polygon Hermez、Loopring、Scroll等。它们在SNARK/STARK选择和EVM兼容性上有所不同。## 三、ZK-SNARK的基本原理 zk-SNARK代表零知识简洁非交互式知识论证,具有以下特点:- Zero Knowledge:证明过程不泄露额外信息- Succinct:验证简洁 - Non-interactive:非交互- Arguments of Knowledge:证明者需要知道有效信息Groth16的zk-SNARK证明流程如下:1. 将问题转换为电路2. 将电路转为R1CS形式3. R1CS转为QAP形式 4. 生成可信设置参数5. 生成和验证证明零知识证明仍在快速发展中,未来有望在更多领域发挥重要作用。
零知识证明三大领域全面剖析:历史、应用与技术原理
零知识证明的历史、应用与原理
一、零知识证明的发展历程
零知识证明体系源于1985年Goldwasser、Micali和Rackoff的论文,该论文探讨了在交互系统中证明一个陈述正确性所需交换的知识量。如果可以做到零知识交换,就称为零知识证明。早期的零知识证明系统效率和可用性欠佳,主要停留在理论层面。近十年来,随着密码学在加密货币领域兴起,零知识证明迎来快速发展。
零知识证明的关键突破是Groth在2010年提出的zk-SNARK理论。2015年,Zcash将零知识证明应用于交易隐私保护,开启了更广泛的应用场景。其他重要进展包括:
此外,PLONK、Halo2等也对zk-SNARK做出了重要改进。
二、零知识证明的主要应用
零知识证明目前主要应用于隐私保护和扩容两个方面。
隐私保护
早期隐私交易项目如Zcash和Monero备受关注,但随着需求减弱,逐渐退居二线。主要的隐私交易项目包括:
扩容
零知识证明在扩容方面的应用主要是zk-rollup。zk-rollup包括Sequencer和Aggregator两类角色:
zk-rollup的优点是费用低、快速终局性,缺点是计算量大、需要可信设置等。
主流的zk-rollup项目有:StarkNet、zkSync、Aztec Connect、Polygon Hermez、Loopring、Scroll等。它们在SNARK/STARK选择和EVM兼容性上有所不同。
三、ZK-SNARK的基本原理
zk-SNARK代表零知识简洁非交互式知识论证,具有以下特点:
Groth16的zk-SNARK证明流程如下:
零知识证明仍在快速发展中,未来有望在更多领域发挥重要作用。