作者:Preethi Kasireddy,DappCamp创始人;翻译:金色财经cryptonaitive
ZKP(零知识证明)在加密货币大爆发后受到欢迎,但它们的悠久历史可以追溯到 1980 年代。本文探讨 ZKP 这些年来的起源和发展。
ZKP的基本前提是,一方(prover)可以向另一方(verifier)证明他们了解特定信息,而无需实际透露该信息是什么。通过这样做,Prover可以证明他们对特定事实或数据的了解,而无需透露任何其他信息。
现在,让我们开始探索ZKP的历史和发展。
ZKP 在加密货币爆发后获得了关注,因为它们允许在两方之间进行无需信任和匿名的交换,但这个概念本身并不新鲜。ZKP 的历史其实可以追溯到 20 世纪 80 年代后期,当时 Shafi Goldwasser、Silvio Micali 和 Charles Rackoff 在一篇题为“The Knowledge Complexity of Interactive Proof-Systems”(交互式证明系统的知识复杂性)的论文中引入这个概念。
作者描述的初始概念涉及称为“交互式协议”的东西,其中prover和verifier将来回通信(反复交互)以使verifier相信prover知道正确的信息。这种方法虽然有其自身突破,但被证明是耗时且资源密集型的,尤其是在涉及大量数据时。为了使ZKP具有可扩展性,它们需要是非交互式的。
Opside已在测试网上线ZK-Rollup LaunchBase:8月14日消息,去中心化ZK-RaaS平台Opside已在测试网上线ZK-Rollup LaunchBase,支持开发者构建专用应用程序Rollup,包括Layer1、zkEVM、Gas、Data Availability与Sequencer各个组件。LaunchBase现允许开发者从Opside、Goerli、Mumbai与BNB测试网等EVM兼容的Layer1中选择以构建其应用程序的特定rollup,支持Polygon zkEVM、zkSync、Scroll与Starknet四个zkEVM。[2023/8/14 16:24:39]
Peggy(证明者)和 Victor(验证者)
1986 年,Fiat 和 Shamir 发明了 Fiat-Shamir heuristic(Fiat-Shamir 启发式,一种采用交互式知识证明并据此创建数字签名的技术),成功地将交互式零知识证明转变为非交互式零知识证明。现在,这使得 ZKP 成为非交互式的,并为 ZKP 的广泛、可扩展使用奠定了基础。
交互式与非交互式ZKP
ZKP 的下一次重大推动发生在 2011 年,Nir Bitansky、Ran Canetti和Alessandro Chiesa在密码学理论国际研讨会上发表了一篇名为“From Extractable Collision Resistance to SNARKs and Back Again" (从可提取的抗碰撞性到 SNARKs,然后再反向操作 )的论文。
Matter Labs推迟上线zkSync 2.0:8月31日消息,MatterLabs公布了以太坊二层解决方案zkSync2.0的最新进展,并解释了推迟上线zkSync2.0的原因。近6个月时间中,MatterLabs已测试了执行节点、zkEVM、Solidity和Zinc编译器。目前正在敲定的事项包括Web3+API、Ethers+SDK、L1至L2通信。目前正在进行的事项包括将线路或验证器和数据可用性协议整合到执行节点、L2至L1通信、与Vyper团队合作构建Vyper-to-LLVM前端。测试网将分3个阶段逐步开放,第一阶段将在几周后发布一组协议的首个版本,第二阶段将开放给愿意创建内容的人,第三阶段将对所有人开放。
推迟原因方面,MatterLabs一开始选择了编译器框架LLVM,但zkSync的架构与LLVM之间产生的不兼容导致MatterLabs需要额外的时间来整合。MatterLabs承诺主网将公平上线,每个人都有时间来准备,并在同等条件下在zkSync上启动项目。[2021/8/31 22:49:20]
zkSNARK如何工作?
这篇论文表明,我们可以使用一种称为可提取抗碰撞 (ECR) 哈希函数的东西来创建 SNARKS(简洁的非交互式知识论证)。SNARKS 基本上是“简洁”的 ZKP,这意味着它们体积小,可以在几秒钟内得到验证。
ZKP、NIZKP 和 zkSNARK 的比较
从这里开始,ZKP 的进程加快了,并促成了 2013 年Pinocchio的诞生。
数据:ZKSwap流动性挖矿开启18小时,TVL5.1亿美元,交易额3.9亿美元:据zkswap.info显示,以太坊Layer2交易协议ZKSwap(ZKS)已开启流动性挖矿18个小时,Layer2资产总额5.1亿美元,流动性3.7亿美元,18个小时完成1.7万笔Layer2的转账和兑换操作,Layer2转账和交易3.9亿美元,各项指标均为Uniswap的10%左右。[2021/3/7 18:22:29]
Pinocchio是零知识简洁非交互式知识论证 (zk-SNARK) 证明系统的第一个概念验证实现之一,被认为是该领域的突破。它在几年前一直被使用,但随后被更新、更高效版本的zk-SNARKs所取代。
当时 zkSNARKS 的两个主要缺点是:
● 可信设置的要求
zkSNARKs 需要prover和verifier之间的“可信设置”。此设置阶段用于创建一组初始参数,然后用于生成和验证 zk 证明。
生成这些参数需要一些秘密信息。一群人通常生成这些秘密,然后使用这些秘密来生成参数。一旦生成参数,秘密就被丢弃。然而,由于秘密输入需要由一组人生成,因此需要我们“信任”这些人。
在区块链中,我们希望最小化信任,这就是为什么“可信设置”通常不受青睐的原因。
zk-SNARK 证明依赖于prover和verifier之间的初始“可信设置”,这意味着需要一组公共参数来构建零知识证明,从而构建隐私交易。这些参数几乎就像游戏规则一样,它们被编码到协议中,是证明交易有效的必要因素之一。这会产生潜在的中心化问题,因为参数通常由非常小的团队制定。
Layer2交易协议ZKSwap开源所有智能合约代码:3月1日消息,Layer2交易协议ZKSwap(ZKS)开源了其智能合约代码,开源的代码包含ZKSwap项目所有智能合约相关的代码,电路部分的代码会在审计报告出来后第一时间开源(目前电路审计已经结束)。目前开源的智能合约代码经过慢雾、Certik和ABDK三家审计机构的审计。相关代码在Layer2领域实现了创新性,包括在Layer2支持AMM模式的交易、支持Layer2的LPtoken提现到以太坊Layer1、支持创建LPtoken、支持Layer2区块以聚合形式提交到以太坊Layer1以降低Gas费用以及支持零知识证明的聚合证明等。[2021/3/1 18:03:59]
多参与者可信设置的工作流程 来源
● 非后量子安全
zkSNARKS 不是后量子安全的,因为它们依赖于公钥加密。公钥密码学依赖于解决特定数组的离散对数问题的难度。但随着量子计算机的诞生,公钥密码学面临风险,因为计算机可以将大数分解为素数,这意味着解决离散对数问题不再困难。
ZK行业正在努力构建解决这两个问题的协议。
接下来是Groth。Groth 于 2016 年推出,是使 zkSnarks 高效且极其实用的首批协议之一。这是一个巨大的突破,并立即得到采用。事实上,由于它的性能和简单性,它今天仍在许多协议中使用,并且围绕它构建了许多工具。
ZKP的下一个重要里程碑是 2017 年 Bulletproofs 的推出。我记得 Bulletproofs 在 2017 年大肆宣传。Bulletproofs 是简短的非交互式零知识证明,可以证明某个加密值在给定的“范围内”不透露任何有关数据的信息(例如,我可以在不透露金额的情况下向你证明交易价值在一定范围内)。这些“范围证明”可以聚合成一个简短的证明。Bulletproof协议变得如此流行的原因是因为它们使比特币的机密交易不仅成为可能,而且变得高效。Bulletproof技术最大的区别在于它不需要可信设置。这在区块链行业非常重要,因为我们专注于构建无需信任的网络,正如你可以想象的那样,行业很快就采用了Bulletproof技术。
ZkSystems完成300万欧元种子轮融资:专为工业物联网定制的可扩展区块链协议的德国公司ZkSystems宣布完成一笔七位数的种子轮(Business Insider报道称具体数字为300万欧元)融资,FinLab AG、EOS VC领投,Brandenburg Kapital、EnjoyVenture、seed+speed参投。[2020/7/8]
SNARKs、STARKs 和 Bulletproofs 的Runtime比较
2018 年,STARKS(Zero-Knowledge Scalable Transparent ARguments of Knowledge——零知识可扩展透明知识论证——的缩写)通过缓解 zkSNARKS 的两个缺点在业界引起了轰动:
● STARKS 是“后量子安全”的,这意味着它们依赖于哈希函数而不是椭圆曲线作为证明机制。
● STARKS 不需要可信设置。相反,zk-STARKS 使用可公开验证的随机源作为初始参数。
zkSTARKS 的最大缺点是它们的证明很大。这使得它不适合区块链,因为链上存储需要花钱。然而,STARKS 超过 SNARKS 脱颖而出,并让行业摆脱可信设置。
zkSNARKs 和 zkSTARKs 在各种参数上的比较
2019 年对 zkSNARKS 来说是重要的一年,该领域有 3 项重大创新:
● SONIC
Sonic 做出的最大贡献是支持“通用”且可不断升级的参考字符串。这意味着你不需要进行可信设置来为每个程序生成初始参数。相反,你只需执行一次可信设置,然后对所有程序使用相同的参数。虽然这并不能完全减轻可信设置的缺点,但它确实使它变得更好了。
Sonic 还具有恒定的证明大小(这很好,因为证明大小不会随着程序的复杂性而增加)并引入了批量验证,从而减少了验证时间。但是,当你不进行批处理时,验证时间非常长。
● MARLIN
Marlin 是 Sonic 的显著改进版本,证明时间减少了 10 倍。它还提供了更快的验证而无需批处理,并将验证时间缩短了 3 倍。
● PLONK
PLONK 是“Permutations over Lagrange-bases for Oecumenical Non Interactive Arguments of Knowledge ”(普遍用途的非交互式知识论证的拉格朗日基排列)的缩写,是 SONIC 的另一个改进版本,它的一个特性是,它的证明时间减少了 5 倍。这里的重大创新是 PLONK 允许自定义门(gate)而不是通常的加法/乘法,这意味着你可以为更复杂的程序构建 zk 证明。
PlonK 和 Marlin 都用通用设置替换了 Groth16 中电路特定的可信设置。随着 PLONK 的推出,加密社区也意识到他们甚至可以构建“zkEVM”,这将使我们能够在以太坊上获取任何智能合约代码并将其转换为零知识证明。Vitalik 曾经写过一篇精彩文章,解释了它背后的数学原理。
这标志着ZKP乱战的结束,但也仅仅只是个开始!
各协议证明大小和安全假设图,来源
HALO2
2020 年,Zcash 团队推出了 HALO 2(HALO 的继后继者),它结合了 PLONK 和 Bulletproofs 的优点,然后允许在没有可信设置的情况下进行快速验证。
HALO vs HALO 2,来源
快进到 2022 年,我们开始再次看到新协议开发的加速。
HYPERPLONK
HYPERPLONK 于 2022 年推出,是一种 zkp系统,证明是完全线性时间的并支持高度和查找自定义门。它试图提高 PLONK 的灵活性,提高其速度并提供更多好处。
虽然 PLONK 本身非常强大,但它有一定的局限性,尤其是在证明大型声明或尝试使用高度并行的硬件时。在证明诸如rollup和 zkEVM 等大型复杂命令时,这些限制尤为重要。HyperPlonk 旨在解决这个问题。
PLONKY2
最近,Polygon 于 2022 年 1 月发布的 Plonky2 是 ZKP 世界中最新的。它是一种递归 SNARK,比现有其他方案快 100 倍。它结合了 PLONK 和 FRI,以获得最好的 STARK(即快速证明和无可信设置)和最好的 SNARK(即支持递归和以太坊上的低验证成本)。
这将我们带到了今天。这就是 ZKP生态今天的样子:
ZKP生态
虽然没有哪个“协议”被认为是最好的,但了解所有这些协议、它们的优点和局限性有助于我们为特定用例和设置选择最好的一个。我的团队收集了我今天介绍的所有协议的信息,并在此处为你总结:
各ZKP特性全汇总
ZKP 有着悠久而丰富的历史,每个协议都在突破极限,提高速度并扩展这项技术的限制。从需要prover和verifier来回交换信息的第一次迭代,我们已经走了很长一段路。
在我看来,我们才刚刚开始。你认为 ZKP 领域的下一个重大创新是什么?
Beosin
金色荐读
曼昆区块链法律
探索猫
Block unicorn
白泽研究院
veDAO研究院
深潮TechFlow
Biteye
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。