1. 久十比特币首页
  2. 加密货币

零知识证明、SNARK、STARK 和 Bulletproofs

Shafi Goldwasser、Silvio Micali 和 Charles Rackoff 在 1985 年发表的开创性论文“交互式证明系统的知识复杂性”中首次引入了零知识证明 (ZKP) 的概念。本文介绍了交互式证明系统的 IP层次结构证明系统并构想了知识复杂性的概念,这是对从证明者转移到验证者的证明知识量的度量。

在密码学中,交互协议是两方或多方交换信息以实现特定目标的通信过程。在零知识证明的背景下,交互式协议通常涉及两方——证明者和验证者。证明者的目的是让验证者相信他们知道某条信息(如密钥),而不透露该信息的任何细节。

币安Binance

币安Binance

全球顶级交易所,手机即可买比特币,10元买比特币,1元买NFT!!!

交互式协议的一个重要特征是它们可以设计为零知识。这意味着除了证明者知道这一事实之外,验证者对证明者的秘密信息一无所知。这是通过以这样一种方式设计协议来实现的,即证明者的响应不会泄露任何关于秘密的有用信息,但除非证明者知道秘密,否则不太可能是正确的。

零知识证明、SNARK、STARK 和 Bulletproofs

第一个零知识证明是基于二次剩余问题,这是一个与素数性质有关的问题。尽管最初的演示具有抽象性,但很明显该概念具有广泛的潜在应用。这个想法非常具有革命性:一方(证明者)可以说服另一方(验证者)给定的陈述是真实的,而不会透露任何超出该陈述真实性的信息。

在早期,大多数零知识证明都是交互式的,这意味着证明者和验证者需要进行消息交换。然而,在 1990 年代,随着非交互式零知识证明的引入,有了重大发展。非交互式零知识证明可以在证明者和验证者之间无需任何交互的情况下进行验证,这是开辟了大量新应用的重大进步。

SNARK、STARK 和防弹协议

在 2010 年代,zk-SNARKs(零知识简洁非交互式知识论证)和 zk-STARKs(零知识可扩展透明知识论证)的发展标志着另一个重大进步。这些证明不仅是非交互式的,而且还很简洁,这意味着它们可以被快速验证。zk-STARKs 具有不需要可信设置的额外优势,使它们更加安全和透明。

近年来,零知识证明在很多领域得到了广泛的应用,尤其是在区块链技术和加密货币领域。例如,zk-SNARKs 允许以安全和私密的方式验证交易。用户可以证明他们有足够的加密货币进行交易,而无需透露钱包中的实际余额。让我们分析一下zk-SNARKs。

zk-SNARKs 是一种零知识证明形式,已在各个领域得到广泛应用。要理解 zk-SNARKs,我们需要解压名称:

  1. 零知识:这意味着除了特定陈述是真实的事实外,不会泄露任何关于证明者秘密输入的信息。例如,证明者可以说服验证者他们知道数独谜题的解决方案,而无需透露有关实际解决方案的任何信息。
  2. 简洁:这意味着证据规模小,可以快速检查。这是一个至关重要的属性,因为它使系统高效且可扩展。
  3. 非交互式:这意味着证明由从证明者发送到验证者的单个消息组成,不需要来回交互。这是通过称为 Fiat-Shamir 启发式的过程实现的,该过程将交互式证明转换为非交互式证明。
  4. Argument of Knowledge:这是一个技术术语,本质上是指计算上可靠的证明,其中计算上有界的验证者不能被计算上无界的证明者说服。

尽管具有潜力,但 zk-SNARKs 确实有一些缺点。最值得注意的是“可信设置”的要求。这是一个初始阶段,其中生成一些必须保密的参数。如果这些参数被泄露,整个系统的安全性就会受到威胁。这导致了其他零知识证明系统的开发,例如 zk-STARKs,它不需要可信设置。让我们更多地了解他们。

zk-STARKs 与 zk-SNARKs 相似,但有一些关键差异,这些差异提供了某些优势。以下是名称每一部分的含义:

  1. 零知识:验证者对证明者的秘密或数据一无所知。
  2. 可扩展:这意味着随着计算问题或数据量的增长,证明大小和验证证明所需的时间增长非常缓慢。此属性对于需要处理大量数据或复杂计算的应用程序至关重要。
  3. 透明:这是 zk-STARKs 和 zk-SNARKs 之间的主要区别。透明度指的是 zk-STARKs 不需要受信任的设置。在 zk-SNARKs 中,对可信设置的要求被认为是一种安全风险,因为如果设置被破坏,可能会创建错误证明。zk-STARKs 完全避免了这种风险。
  4. Arguments of Knowledge:这和 zk-SNARKs 一样,是一个技术术语,意思是计算上可靠的证明,其中计算上有界的验证者不能相信计算上无界的证明者的错误陈述。

但是,需要权衡取舍。与 zk-SNARK 相比,zk-STARK 往往具有更大的证明大小,这在需要考虑存储或带宽的系统中可能是一个劣势。此外,zk-STARKs 的技术较新且不太成熟,因此尚未被广泛采用。

最后,我们将介绍 Bulletproofs。它们是一种非交互式的零知识证明协议,可以用来证明一个秘密值在一定范围内,而不会泄露任何关于秘密值本身的信息。它们由Benedikt Bunz、Jonathan Bootle、Dan Boneh、Andrew Poelstra、Pieter Wuille 和 Greg Maxwell 在 2017 年引入。

Bulletproofs 的关键特性是其紧凑的尺寸和可扩展性。与许多其他零知识证明系统不同,Bulletproof 的大小与范围大小和秘密值的数量成对数关系。这使得 Bulletproofs 特别适用于效率和可扩展性很重要的系统,例如区块链技术。

以下是 Bulletproofs 工作原理的简要概述:

  1. Pedersen 承诺:Bulletproofs 使用一种称为 Pedersen 承诺的加密结构来承诺一个秘密值。Pedersen 承诺允许证明者承诺一个值,同时将其隐藏并能够证明关于它的陈述。
  2. 范围证明:Bulletproofs 主要提供一种方法来生成简短的、非交互式的零知识证明,证明秘密承诺值位于一定范围内。这在某些应用程序中至关重要,例如加密货币中的机密交易,在这些应用程序中,有必要在不泄露其价值的情况下证明秘密交易金额是非负数。
  3. 对数大小:Bulletproofs 中的证明大小与范围大小和承诺数量成对数关系,这导致相对较小的证明。例如,64 位整数和 128 位安全性的范围证明只需要 672 字节的 Bulletproof。
  4. 无可信设置:与 zk-SNARKs 不同,Bulletproofs 不需要可信设置。这是一个重要的优势,因为它消除了相信设置是诚实执行的需要,这可能是一个潜在的安全风险。
  5. 聚合:Bulletproofs 可以聚合,这意味着可以将多个范围证明组合成一个证明。这在区块链环境中特别有用,人们可能希望一次验证许多交易。

这是对零知识历史以及该技术的多种现代应用的简单概述。我可能会以更技术性的方式再次谈论这些话题。

文章来源投稿,发布:Yori;文章内容仅供参考,不构成投资建议;投资者据此操作,风险自担;如若转载,请注明出处:http://www.910btc.com/836.html

发表评论

邮箱地址不会被公开。 必填项已用*标注