什么是零知识证明?— 零知识证明的概念解释
在本文中,您将了解什么是零知识证明。所有开发人员都在努力保证加密区块链的安全并添加创新功能。其中,零知识证明可以为用户在加密货币交易时提供更高级别的隐私。
什么是零知识证明?
零知识证明是一种在不透露陈述本身的情况下证明陈述有效性的方法。“证明者”是试图证明某个主张的一方,而“验证者”则负责验证该主张。
零知识证明首次出现在 1985 年的一篇论文“交互式证明系统的知识复杂性”中,该论文提供了当今广泛使用的零知识证明的定义:
零知识协议是一种方法,通过该方法,一方(证明者)可以向另一方(验证者)证明某件事是真实的,除了该特定陈述是真实的事实之外,无需透露任何信息。
多年来,零知识证明已经得到改进,现在已用于多个现实世界的应用程序中。
为什么我们需要零知识证明?
零知识证明代表了应用密码学的突破,因为它们承诺提高个人信息的安全性。
与第三方服务共享的个人身份信息 (PII) 存储在中央数据库中,很容易受到黑客攻击。随着身份盗窃成为一个关键问题,人们呼吁采用更多保护隐私的方式来共享敏感信息。
零知识证明通过消除揭示信息来证明主张有效性的需要来解决这个问题。零知识协议使用该语句作为输入来生成其有效性的简洁证明。该证明为陈述的真实性提供了强有力的保证,而无需暴露创建陈述时使用的信息。
零知识证明的类型
1.ZK-SNARK
ZK-SNARK 是零知识简洁非交互式知识论证的缩写。ZK-SNARK协议具有以下特点:
- 零知识:验证者可以在不了解该语句的任何其他信息的情况下验证该语句的完整性。验证者对该陈述唯一的了解是它是真是假。
- 简洁:零知识证明比见证人更小,可以快速验证。
- 非交互式:证明是“非交互式”的,因为证明者和验证者只交互一次,这与需要多轮通信的交互式证明不同。
- 论证:证明满足“健全性”要求,因此作弊的可能性极小。
- 知识:如果不访问秘密信息,则无法构建零知识证明。对于没有见证人的证明者来说,计算有效的零知识证明即使不是不可能,也是很困难的。
前面提到的“共享密钥”是指证明者和验证者同意在生成和验证证明时使用的公共参数。生成公共参数是一项敏感操作,因为它对协议的安全性很重要。如果生成 CRS 时使用的熵(随机性)落入不诚实的证明者手中,他们就可以计算出错误的证明。
多方计算(MPC)是一种降低生成公共参数风险的方法。多方参与可信设置仪式,每个人贡献一些随机值来生成 CRS。只要诚实的一方销毁了他们的熵部分,ZK-SNARK 协议就可以保持计算的健全性。
可信设置要求用户信任参数生成的参与者。然而,ZK-STARK 的开发使得证明协议能够在不可信的设置下工作。
2.ZK-STARK
ZK-STARK 是零知识可扩展透明知识论证的缩写。ZK-STARK 与 ZK-SNARK 类似,不同之处在于:
- 可扩展:当见证人规模较大时,ZK-STARK 在生成和验证证明方面比 ZK-SNARK 更快。使用 STARK 证明,证明者和验证者时间仅随着见证者的增长而略有增加(SNARK 证明者和验证者时间随见证者规模线性增加)。
- 透明:ZK-STARK 依靠可公开验证的随机性来生成用于证明和验证的公共参数,而不是可信设置。因此,与 ZK-SNARK 相比,它们更加透明。
ZK-STARK 产生的证明比 ZK-SNARK 更大,这意味着它们通常具有更高的验证开销。然而,在某些情况下(例如证明大型数据集),ZK-STARK 可能比 ZK-SNARK 更具成本效益。
底线
零知识证明可以用于多种方式,例如匿名支付、身份保护、身份验证和可验证计算。但也有一些缺点。您可以在本文中了解什么是零知识证明。