隐私一直被加密货币社区视为一项宝贵的特性。隐私是实现可替代性的前提,而可替代性是广泛使用货币的必要条件。同样,大多数加密资产持有者也不希望他们的持仓和交易历史完全公开。在众多旨在为区块链提供隐私保护的密码学技术中,zk-SNARK和zk-STARK证明是两个值得关注的例子。
zk-SNARK代表零知识简洁非交互式知识论证,zk-STARK代表零知识简洁透明知识论证。zk-SNARK证明已被用于Zcash、摩根大通的区块链支付系统,以及作为安全认证客户端与服务器的方式。虽然zk-SNARK取得了显著进展并被广泛采用,zk-STARK则被认为是协议的新改进版本,解决了许多zk-SNARK的缺点。
本文将教你如何向孩子解释零知识协议,并介绍零知识协议的用途。
zk-SNARKs
Zcash是第一个广泛应用zk-SNARK的项目。其他隐私项目如Monero采用环签名等技术,实际上是给交易双方制造了一层“烟雾弹”,而zk-SNARK则从根本上改变了数据共享的方式。Zcash的隐私来源于交易可以保持加密状态,但仍通过零知识证明被验证为有效,因此执行共识规则的节点无需了解每笔交易的全部数据。值得一提的是,Zcash的隐私功能默认并不启用,需要用户手动设置。
零知识证明允许一方向另一方证明某个陈述为真,而不透露除该陈述真实性以外的任何信息。参与双方通常称为证明者和验证者,他们所持有的秘密信息称为见证。该证明的主要目的是在双方之间尽可能少地泄露数据。换言之,零知识证明能证明某人拥有某项知识,却不揭示该知识的具体内容。
在SNARK的缩写中,“简洁”(succinct)表示这些证明体积较小且可快速验证。“非交互式”(non-interactive)意味着证明者与验证者之间几乎无需多次交互。早期的零知识协议通常需要双方反复通信,因此称为“交互式”证明。而非交互式证明只需交换一次证明。
目前,zk-SNARK证明依赖于证明者和验证者之间的初始可信设置,即需要一组公共参数来构建零知识证明和私密交易。这些参数就像游戏规则,编码在协议中,是证明交易有效的必要条件之一。但这也带来了潜在的中心化问题,因为参数通常由少数人制定。
虽然初始可信设置是目前zk-SNARK实现的基础,研究者正努力寻找其他方案,以降低对信任的依赖。该设置阶段防止伪造花费,因为如果有人掌握了生成参数的随机数,就能伪造出看似有效的假证明。Zcash中这阶段称为参数生成仪式。
“知识论证”(Arguments of Knowledge)表示zk-SNARK在计算上是健全的,意味着不诚实的证明者几乎无法在没有知识(见证)的情况下成功欺骗系统。这种特性称为健全性,假设证明者计算能力有限。
理论上,计算能力足够强的证明者可伪造证明,这也是量子计算机被认为是zk-SNARK和区块链系统威胁的原因之一。
零知识证明验证快速,数据量远小于普通比特币交易,这为zk-SNARK技术在隐私保护和扩容方面的应用开辟了道路。
zk-STARKs
zk-STARK由以色列理工学院教授Eli-Ben Sasson创造。作为zk-SNARK的替代方案,zk-STARK通常被认为更高效,取决于实现可能更快且成本更低。但更重要的是,zk-STARK不需要初始可信设置(因此“T”代表透明的Transparent)。
技术上,zk-STARK依赖于碰撞抗性哈希函数等更简洁的密码学方法,不需要复杂且计算成本高昂的数论假设,也因此避免了量子计算机攻击的潜在风险。
换言之,zk-STARK的密码学假设结构更简单。不过,这项新技术也有一个主要缺点:zk-STARK生成的证明体积比zk-SNARK更大。数据体积差异可能会限制其应用场景,但随着技术不断完善,这一问题有望被解决。
总结
显然,zk-SNARK和zk-STARK都满足了人们对隐私日益增长的需求。在加密货币领域,这些协议具有巨大潜力,可能成为推动主流采用的突破口。希望通过本文,你能更好地理解如何向孩子解释零知识协议。


















