编译:Cindy,SophonLabs
随着计算机技术的不断发展,我们可以很容易地在互联网上存储、传输和处理大量的个人和商业数据。然而,在这个数字时代,人们越来越担心数据隐私和安全。为了保护数据的隐私,密码学家开发了许多技术,其中零知识证明(ZKP)是核心技术之一。本文将盘点零知识证明实现上的差异。
交互式和非交互式零知识证明零知识证明的两种主要类型是交互式和非交互式。交互式零知识证明和非交互式零知识证明都是证明者和验证者之间的过程,但它们在证明的交互式过程中是不同的。
交互式零知识证明(IZKP)需要证明者和验证者之间的来回对话,其中证明者响应验证者的查询。这种互动可以当面进行,也可以通过互联网等网络进行。有必要与验证者进行多轮交互,以便验证者可以要求提供已证明陈述之外的附加信息。在每一轮中,证明者需要根据验证者的询问提供答案。
这种交互式证明方法对于一些复杂问题是可行的,但可能会带来时间和计算成本的问题,需要所有参与者进行交流。另一方面,非交互式零知识证明不需要证明者和验证者之间的任何交互。非交互式零知识证明是指证明者可以一次性生成一个证明并发送给验证者,无需多轮交互。与交互式证明相比,非交互式证明速度更快,需要的计算成本和通信更少。但是,有时候可能并不是一个可行的方案,比如需要涉及额外信息的证明,或者需要证明一个非常复杂的陈述。相反,证明者创建一个单独的、自包含的证明,验证者可以独立地验证该证明,而无需进一步的通信。这比交互式证明更加方便和高效,因为它不需要证明者和验证者同时在线或交换多条消息。
实现这一目标的最经典的方法之一是使用基于数字签名的Fiat-Shamir启发式技术。交互式和非交互式零知识证明的主要区别之一是证明者和验证者之间所需的信任级别。在交互式证明中,验证者必须相信证明者会遵守协议,并对他们的询问提供诚实的回答。另一方面,在非交互式证明中,验证者根本不需要信任证明者,因为他们可以独立地验证证明,而不依赖于证明者提供的任何信息。两种零知识证明的另一个区别是所需的计算复杂度。
交互式证明往往比非交互式证明计算量更大,因为它们需要证明者和验证者交换多条消息并执行额外的计算。另一方面,非交互式证明只需要验证者进行一次计算,这使得它们更加高效和可扩展。交互式和非交互式零知识证明各有利弊,给定场景的最佳选择将取决于具体的需求和约束。交互式证明可能更适合于证明者和验证者同时在线并且可以轻松通信的情况。相比之下,非交互式证明可能更适合于证明者和验证者不同时在线或者证明者的可信度不确定的情况。总之,通常根据具体问题和应用场景选择交互式零知识证明和非交互式零知识证明。
交互式零知识证明的局限性(IZKP)是最早被研究和广泛应用的零知识证明类型之一。在这个证明过程中,证明者和验证者之间会有多轮交互。这些交互被设计成允许验证者向证明者询问特定的信息来验证已经被证明的内容。这种交互性质使得交互证明能够非常有效地解决复杂的问题。
一个简单的例子是著名的“彩色图问题”,这是关于如何在任何图中着色。如果证明者声称他可以给任意图中的每个节点着色,并且相邻节点必须使用不同的颜色,那么验证者可以采用交互式零知识证明的方法来判断该声称是否正确。在证明的过程中,证明者首先以某种方式给图着色,然后验证者选择任意两个节点,询问证明者是否使用相同的颜色。证人需要回答这个问题,但不能透露为什么选择这样的方式。这个过程会持续几轮,验证者可以检查一些关于验证者如何给图形上色的随机数据。如果证明者可靠地回答了问题,则证明者可以认为它是正确的。交互式零知识证明(IZKP)有几个限制,这使得它们更加昂贵和复杂。
IZKP需要证明者和验证者之间的交互,这可能是低效和耗时的。为了完成证明,证明者必须与验证者来回发送多条消息。这可能需要很长时间,尤其是当证明很复杂或涉及大量数据时。当速度至关重要时,例如在高频交易或实时决策中,这可能是一个问题。
IZKP扩展性不好。随着待证明数据的增加,证明的复杂度增加,在合理的时间内完成证明是困难的。当需要证明大量数据时,例如在供应链管理或医疗保健中,这可能是一个问题。
IZKP依赖于这样的假设,即证明者和验证者是诚实的,不会试图欺骗或操纵证明。然而,这种假设并不总是有效的,证明者可以通过发送虚假消息或以某种方式操纵证明来试图欺骗验证者。这可能会损害证书的完整性,破坏其实用性。
IZKP需要专门的加密技术,这可能很难实现,并且需要高水平的技术专业知识。这可能会使非技术用户很难使用IZKP,并且在某些情况下可能会限制他们的采用。
一般来说,尽管IZKP可以提供强大的安全性和隐私保证,但上述限制在历史上阻碍了它们的广泛使用。但是它也有一些缺点。特别是这种证明需要证明者和验证者多轮交互,会带来时间和计算成本的问题,需要所有参与者进行沟通。其次,一些应用程序可能需要处理如此复杂的信息,以至于证明者和验证者必须交互几轮才能得到完整的证明,这使得交互式证明方法不可行。一旦我们理解了交互式和非交互式ZKP的区别,我们就应该深入研究最流行的区块链和加密行业实现——ZKSARKS。虽然zkSync用的是ZKSARKS,可以说是使用ZKSARKS最多的L2,但是紧随其后的是Starkware的ZKSARKS。我们先来了解一下这两种实现的区别和优缺点。
ZKSARKS、zkSTARKszkSNARKs和zkSTARKs是零知识证明(ZKP)系统,允许一方(证明者)向另一方(验证者)证明陈述的真实性,而不泄露关于陈述本身的任何信息。ZKP有许多应用,包括区块链上的隐私保护交易、安全多方计算和匿名通信。都是用来保护数据交易和计算中的隐私,但应用场景和技术方案却大相径庭。zkSNARKs技术的优势在于高度压缩的小证明,在保证计算安全性的同时,支持高隐私保护和高效交易。zkSTARKs技术的优势在于复杂算法和大规模数据处理性能的优化,可以达到更高的保护和证明水平。
ZkSNARKszkSNARKs是一种使用高度压缩的算法来提供非常小的证明的方法,可以用来证明任何满足一定条件的计算。利用zkSNARKs技术,可以得到一个经过验证的证明,证明所述计算的具体数值和详细步骤是未知的。zkSNARKs的优点是证明规模很小,只需要200字节左右的证明就可以验证一个经过百万次计算的结果,证明的计算成本相对较低。同时,它们允许对基于密码术的计算进行有效的隐私保护,这在需要验证但不愿意披露信息时特别有用。因此,zkSNARKs在不可信环境下的交易、加密货币、身份认证和隐私保护等领域有着广泛的应用。ZkSNARKs(零知识简明非交互知识演示)最早由Eli Ben-Sasson、Alessandro Chiesa、Daniel Genkin、Eran Tromer和Madars Virza在2014年的一篇论文中提出。它们基于“非交互式证明”,这意味着证明者和验证者在证明过程中不需要相互通信。这使得zkSNARKs非常适合在区块链使用,在那里,各方之间的交流受到达成共识的需要的限制。ZkSNARKs使用公钥和私钥的组合来创建证明。证明者可以访问私钥,他们使用私钥来生成他们希望做出的声明的证明。验证者可以访问相应的公钥来验证证书。如果它被证明是有效的,验证者可以确定该陈述是真实的,即使他们没有关于该陈述本身的任何信息。
zkSNARKs的优势
zkSNARKs的主要优势之一就是效率。证明过程非常快,这使得在区块链这样的高通量系统中使用zkSNARKs成为可能。
zkSNARKs的缺点
它们依赖于“可信设置”过程,在该过程中,一组参与者生成并销毁一组公钥和私钥。如果没有正确执行该过程,系统的安全性可能会受到损害。因此,需要能够建立和参与可信第三方,并且根据不同的数据具有不同的性能,其证明可能受到各种攻击技术的攻击。
另外,zkSNARKs是不透明的,这意味着不访问私钥就无法验证证明的正确性。
ZkSTARKszkSTARKs是另一种零知识证明技术,专门用于处理复杂算法和大规模数据。相比之下,zkSTARKs可以在没有中介的情况下提供更高的安全性,因为它们不需要可信的第三方参与和设置。zkSTARKs的优点包括:不需要选择特定的曲线进行计算,被证明更具有通用性,具有良好的扩展性和抗攻击性。它们也没有任何秘密密钥或公共参数,这使得它们非常适合在不受信任的环境中进行基于密钥的计算。但是,zkSTARKs技术比ZKSARKS技术需要更高的计算成本和更大的证明尺寸,因此可能不适合在某些场景中使用。
zkSTARKs的优势
zkSTARKs的主要优势之一是它们的透明性。使用zkSNARKs,不访问私钥就无法验证证明的正确性。使用zkSTARKs,您可以创建一个“验证证书”,它允许任何人在不访问任何秘密信息的情况下验证证书的正确性。这使得zkSTARKs成为对信任至关重要的应用程序的更安全、更透明的选择。
zkSTARKs的另一个优势是它们的可伸缩性。ZkSNARKs依赖于资源密集型的复杂数学运算,其效率会随着证明规模的增大而降低。
zkSTARK的缺点
一个主要的缺点是zkSTARKs只适用于证明某类主张的真实性。特别是,它们只能用来证明多项式表达的语句的真值,这就限制了它们的适用性。
另一个缺点是zkSTARKs不是完全非交互的,它需要一个可信的设置阶段,在这个阶段会生成一个公共引用字符串(CRS)。在zkSTARK证书被认为有效之前,该CRS必须是保密和安全的。如果CRS被破坏,证据的安全性也将被破坏。
此外,zkSTARKs还没有被广泛使用或完全理解,因此潜在的漏洞可能还没有被发现。缺乏广泛的采用和理解也意味着缺乏使用zkSTARKs的工具和资源,这使得在实践中实现和使用它们更加困难。
最后,与其他零知识证明系统相比,zkSTARKs仍然是相对新的和未经测试的,这意味着它们的长期安全性和可靠性还没有被完全了解。这种不确定性对于寻求经过验证的可靠方法来验证声明真实性的组织或个人来说可能是不利的。
总结虽然zkSTARKs在效率和安全性方面提供了一些好处,但在决定是否使用它们时,也有一些缺点需要考虑。这些缺点包括应用范围有限,需要可信的设置阶段,缺乏广泛的采用和理解,以及其长期安全性和可靠性的不确定性。ZkSNARKs基于曲线上的折线算法,可以在不暴露计算输入和密钥的情况下,证明某些计算结果是正确的。这项技术可以应用于区块链、加密货币和密码学。
与ZKSARKS不同,zkSTARKs是建立在简洁的交互式证明框架下的,这意味着证明者和验证者之间不需要任何交互就可以很容易地验证证明。因此,zkSTARKs在安全性和可扩展性方面具有更大的优势。
随着技术的发展,零知识证明技术将不断发展和应用,在保护隐私和进行安全验证方面有着非常广阔的应用前景。同时,随着协议的发展和优化,零知识证明技术的计算效率和证明规模也将得到提高,从而进一步促进其在实际应用中的推广和应用。
温馨提示:注:内容来源均采集于互联网,不要轻信任何,后果自负,本站不承担任何责任。若本站收录的信息无意侵犯了贵司版权,请给我们来信(j7hr0a@163.com),我们会及时处理和回复。
原文地址"解读零知识证明中的实现差异:zkSNARKs与zkSTARKs优缺点对比":http://www.guoyinggangguan.com/qkl/176416.html。

微信扫描二维码关注官方微信
▲长按图片识别二维码