本文介绍了零知识证明技术SNARKs和STARKs。SNARKs依赖于可信设置,验证速度快但安全性较弱;STARKs无需可信设置,安全性高但验证速度较慢。文章对比了SNARKs和STARKs的优缺点,并阐述了零知识证明在提升区块链可扩展性和保护用户隐私方面的作用。
定义
SNARKs 和 STARKs 都是零知识证明技术,允许一方在不泄露任何进一步信息的情况下,向另一方证明某个陈述是真实的。
SNARKs 和 STARKs 都是零知识证明技术,允许一方在不泄露任何进一步信息的情况下,向另一方证明某个陈述是真实的。
零知识证明 (ZKPs) 在各种用例中备受关注,因为它们具有增强安全性、保护用户隐私以及支持使用 layer-2 网络 进行扩展的变革潜力。
ZKPs 使一方能够在不泄露任何额外信息的情况下,向另一方证明某个陈述是真实的。 ZKPs 既有利于提高隐私性(因为它们减少了各方之间共享的信息量),也有利于提高可扩展性,因为它们允许以比必须验证整个数据集更快的速度验证证明。
两种突出的零知识证明系统是 SNARKs 和 STARKs。在本文中,我们将深入探讨它们是什么、它们如何工作以及它们的主要区别。
zk-SNARK 代表 Zero-Knowledge Succinct Non-interactive Argument of Knowledge(零知识简洁非交互知识论证)——它们是由 Nir Bitansky、Ran Canetti、Alessandro Chiesa 和 Eran Tromer 共同撰写的 2012 年论文 中提出的。 SNARKs 提供了一种能力,即一方可以向另一方证明他们知道一个秘密,而无需泄露秘密本身。
可以将 zk-SNARKs 作为零知识证明协议添加到分布式账本解决方案中,以增强隐私和可扩展性。Zcash 是 zk-SNARKs 的第一个广泛应用,它应用该技术来创建屏蔽交易,其中发送者、接收者和金额均保持私密。 Zcash 中的屏蔽交易可以在区块链上完全加密,但仍可以通过使用 zk-SNARKs 验证为符合网络共识规则的有效交易。
某些 SNARKs 的一个重要特性是它们依赖于可信设置仪式——这是一个用于创建用于创建私有交易所需的证明以及验证这些证明的密钥的事件。如果在事件期间用于创建密钥的秘密没有被销毁,它们可能会被用来创建虚假证明。这将使参与者能够伪造交易或凭空铸造新代币(如果是加密货币)。由于 SNARKs 固有的隐私功能,将无法验证伪造的证明是否确实是伪造的。
SNARK 的安全级别是通过必须完成多少工作才能找到虚假陈述的确凿证据来衡量的。换句话说,如果生成虚假陈述的确凿证据在计算上不可行,则 SNARK 是安全的。对于需要可信设置才能被认为是安全的 SNARKs,仪式中至少有一名参与者必须生成然后丢弃一个 后门,如果该后门与其他后门结合起来,可能会损害 SNARK 的安全性。因此,可信设置通常由许多参与者运行,以使这种情况发生的可能性足够低。
虽然可信设置仅在最初需要,并且仅适用于某些 SNARKs,但基于 SNARK 的网络的用户必须相信该仪式已正确执行,并且秘密已被销毁且未被创建事件的参与者持有。对于某些 SNARKs 来说,对此类仪式的依赖一直是一个批评领域,因为它可能是一个潜在的安全弱点。
某些 SNARKs 的另一个限制是它们不被认为是抗量子的。SNARKs 的支持者认为,如果量子计算机开始对 SNARKs 构成威胁,密码学领域将会出现更大的问题。此外,一些 SNARKs 将来可能会升级为抗量子的。
zk-STARK 代表 Zero-Knowledge Scalable Transparent Argument of Knowledge(零知识可扩展透明知识论证),是一种零知识证明系统,由 Eli Ben-Sasson、Iddo Bentov、Yinon Horesh 和 Michael Riabzev 在 2018 年的论文 中作为 SNARKs 的替代方案引入。正如论文中所述,STARKs(以及更广泛的 ZKP)可以为社会带来重要的好处:
“人的尊严要求个人信息(如医疗和法医数据)对公众隐藏。但是,旨在保护隐私的保密面纱也可能被滥用,以掩盖受托于数据的机构的谎言和欺骗,不公正地伤害公民并削弱对中央机构的信任。零知识 (ZK) 证明系统是一种巧妙的密码学解决方案,可以解决个人隐私和机构诚信之间的这种紧张关系,以不损害前者的方式强制执行后者。”
STARKs 支撑着 StarkWare 的可扩展性技术。通过使开发人员能够将存储和计算转移到链下,STARKs 提高了可扩展性,因为验证链下计算准确性的 STARK 证明可以由链下服务生成,然后发布到链上。
STARKs 允许区块链将计算转移到单个链下 STARK 证明者,然后使用链上 STARK 验证者验证这些计算的完整性。Layer-2 网络可以通过使用 STARKs 在单个批次中计算大量交易,然后使用单个 STARK 证明来确认链上交易的有效性来解锁可扩展性优势。批次中的所有交易共享链上操作的成本,从而为 layer-2 网络上的每个单独交易提供较低的 gas 成本。
重要的是,由于验证者使用的随机性是公开可用的,并且无需依赖任何外部参数即可验证证明,因此 STARKs 没有可信设置仪式的要求。
SNARKs 和 STARKs 各有优势,两者之间的选择取决于用户的具体用例需求。同样重要的是要注意,SNARKs 和 STARKs 都是正在积极研究的前沿零知识证明技术,因此对它们的比较可能取决于该领域正在进行的进步和发现。
SNARKs 被其支持者认为更高效和更快,因为它们可以在几毫秒内得到验证。然而,这种效率是有代价的,因为某些 SNARKs 依赖于潜在的安全薄弱环节——可信设置仪式。这意味着用于证明的初始参数必须在安全环境中生成,并且对参数的任何妥协都可能导致安全漏洞。
STARKs 可以通过不需要可信设置来提供增强的安全性,但验证可能需要更长的时间,因此可以认为效率较低。STARKs 比 SNARKs 具有更大的证明大小,这意味着验证 STARKs 可能比 SNARKs 花费更多的时间并且消耗更多的 gas。另一方面,由于 STARKs 的证明可以在不依赖任何外部参数的情况下进行验证,因此 STARKs 比 SNARKs 更容易审计,但这可能取决于各个实现。与大多数 SNARKs 不同,STARKs 依赖于被认为是抗量子的哈希函数。
尽管某些 SNARKs 具有与可信设置仪式相关的潜在安全缺陷,但 SNARKs 最初比 STARKs 得到更广泛的采用有几个原因。SNARKs 比 STARKs 早六年开发,这有助于他们在采用方面取得领先。
零知识证明是区块链生态系统的基础技术,有助于解锁多个数量级的可扩展性,同时帮助保护个人隐私和机构诚信。zk-SNARKS 和 zk-STARKS 处于这场革命的最前沿,它们都有助于为以前无法访问的公共区块链网络解锁广泛的用例,从而激励创新并帮助创建更高效的全球经济。
如果你是一名开发人员并希望集成 Chainlink 信任最小化服务,请查看我们的 文档,在 Discord 中提问,或与专家 安排通话。
了解 zk-SNARKs 和 zk-STARKS 之间的区别
- 原文链接: chain.link/education-hub...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!