理解 zk-SNARKs 和 zk-STARKS 的区别

SNARK 和 STARK 是零知识证明技术,允许一方在不透露任何进一步信息的情况下向另一方证明陈述是真实的。

零知识证明 (ZKP) 引起了广泛关注,因其在增强安全性、保护用户隐私和支持第 2 层网络扩展方面都有很大的潜力。

ZKP 使一方能够向另一方证明声明是真实的,而无需透露任何其他信息。ZKP 既有利于增加隐私——因为它们减少了各方之间共享的信息量——也有利于可扩展性,因为它只需要证明而非整个数据集被验证,这样验证速度会更快。

两个最受关注的零知识证明系统是 SNARK 和 STARK。在本文中,我们将深入探讨它们是什么、它们如何工作以及它们的主要区别。

SNARK 是什么?

zk-SNARK 全称 Zero-Knowledge Succinct Non-interractive Argument of Knowledge(零知识简洁非交互式知识论证)——它们是在 2012 年由 Nir ​​Bitansky、Ran Canetti、Alessandro Chiesa 和 Eran Tromer 合著的一篇论文中介绍的。 SNARK 使一方能够在不泄露秘密的情况下向另一方证明他们知道秘密。

zk-SNARKs 可以作为零知识证明协议添加到分布式账本解决方案中,以增强隐私性和可扩展性。 Zcash 是 zk-SNARKs 的第一个广泛应用,应用该技术来创建屏蔽交易(shielded transaction),其中发送者、接收者和金额都是保密的。Zcash 中的屏蔽交易可以在区块链上完全加密,但仍然可以通过使用 zk-SNARKs 在网络的共识规则下验证为有效。

一些 SNARK 的一个重要属性是它们要求配置过程是可信任的——在这个过程中,隐私交易的证明和生成证明的密钥会被创建。如果在事件期间用于创建这个密钥的秘密没有被销毁,它们可能被用来创建虚假证明。在涉及加密资产的场景中,这将使参与者能够伪造交易或凭空铸造新通证。由于 SNARKs 固有的隐私性,所以无法验证伪造的证明是否确实是伪造的。

SNARK 的安全级别是通过为找到虚假陈述的证据而必须完成的工作量来衡量的。换句话说,如果 SNARK 在计算上无法产生令人信服的虚假陈述证明,那么它就是安全的。对于需要可信设置才能被认为是安全的 SNARK,仪式中至少有一名参与者必须生成并销毁一个 trapdoor,如果与其他 trapdoor 结合使用的话,否则就有可能危及 SNARK 的安全性。因此,受信任的设置通常需要许多参与者一起运行,以使这种情况发生的可能性足够低。

虽然可信设置仅在最初需要且仅适用于某些 SNARK,但基于 SNARK 的网络的用户必须相信可信设置的仪式(ceremony)已正确执行,并且秘密已被销毁并且不被创建事件的参与者持有。对这种仪式的依赖一直是一些 SNARK 的备受批评的领域,认为它是潜在的安全弱点。

一些 SNARK 的另一个限制是它们不被认为是抗量子的。 SNARK 的支持者认为,如果量子计算机开始对 SNARK 构成威胁,密码学领域将面临更大的问题。此外,一些 SNARK 可能会在未来升级为抗量子的。

STARK 是什么?

zk-STARK 全称 Zero-Knowledge Scalable Transparent Argument of Knowledge(零知识可扩展透明知识论证),是一种零知识证明系统,在 Eli Ben-Sasson、Iddo Bentov、Yinon Horesh 和 Michael Riabzev 于 2018 年发表的一篇论文中作为 SNARK 的替代方案被引入。正如论文中所述,STARK(更广泛地说,ZKP)可以为社会带来很大的好处:

“人们的个人信息,例如医疗和法医数据需要保持私有,这是一种人的尊严。但是,旨在保护隐私的面具也可能被委托数据的机构滥用以掩盖谎言和欺骗,从而不公正地伤害公民并削弱对中央机构的信任。零知识 (ZK) 证明系统是一种巧妙的加密解决方案,可以解决个人隐私和机构完整性之间的紧张关系,可以在不损害前者的情况下加强后者。”

STARK 支持 StarkWare 的可扩展性技术。通过使开发人员能够在链下进行存储和计算,STARK 提高了可扩展性,因为验证链下计算准确性的 STARK 证明可以由链下服务生成,然后发布在链上。

STARK 允许区块链将计算转移到某个链下 STARK 证明者,然后使用链上 STARK 验证者验证这些计算的完整性。 Layer-2 网络可以通过使用 STARKs 在单个批次中计算大量交易,然后使用单个 STARK 证明来确认交易在链上的有效性,从而实现可扩展性。批次中的所有交易均分担链上操作的成本,为第 2 层网络上的每笔交易提供低 gas 成本。

重要的是,由于验证者使用的随机性是公开可用的,并且可以在不依赖任何外部参数的情况下验证证明,因此 STARK 不需要可信设置仪式。

对比 SNARKs 和 STARKs

SNARKs 和 STARKs 都有各自的优势,两者之间的选择取决于用户的具体用例需求。同样重要的是要注意,SNARK 和 STARK 都是正在积极研究的尖端零知识证明技术,因此对它们进行比较还需要考虑该领域的持续进步和发现。

支持者认为 SNARK 更高效、更快速,因为它们可以在几毫秒内得到验证。然而,这种效率是有代价的,因为一些 SNARK 依赖的可信设置仪式,有安全薄弱的环节。这意味着证明中使用的初始参数必须在安全环境中生成,参数的任何泄露都可能导致安全漏洞。

STARKs 不需要可信设置,从而提供更强的安全性,但可能需要更长的时间来验证,因此被认为效率较低。 STARK 的证明数据的大小比 SNARK 的大,这意味着验证 STARK 可能比 SNARK 花费更多的时间并且消耗更多的 gas。另一方面,由于可以在不依赖任何外部参数的情况下验证 STARKs 的证明,因此 STARKs 比 SNARKs 更容易审计,尽管这可能取决于具体的实施方式。与大多数 SNARK 不同,STARK 依赖于被认为是抗量子的哈希函数。

SNARK 最初比 STARK 被更广泛采用的原因有几个,尽管其中一些具有与可信设置仪式相关的潜在安全缺陷。 SNARK 比 STARK 早六年开发,这有助于它们在采用方面领先一步。

零知识证明带来可扩展性的指数级增长

零知识证明是区块链生态系统的基础技术,有助于提升可扩展性,同时有助于保护个人隐私和机构的完整性。zk-SNARKS 和 zk-STARKS 处于这场革命的最前沿,它们都旨在解锁以前公链中无法实现的用例,激励创新并帮助创造更高效的全球经济。

欢迎关注 Chainlink 预言机并且私信加入开发者社区,有大量关于智能合约的学习资料以及关于区块链的话题!

Need Integration Support?
Talk to an expert
Faucets
Get testnet tokens
Read the Docs
Technical documentation