什么是零知识证明(ZKP)?零知识证明的应用和用例


区块链领域最令人兴奋的发展之一是零知识证明(ZKPs)的广泛采用。这项技术提供了卓越的透明度、不变性和隐私性,并且已经成为确保区块链上交换资讯隐私的三种可能的解决方案之一,其他两种分别是安全多方计算(sMPC)和可信执行环境(TEE)。

零知识证明(ZKP)是什么?

零知识证明(zero knowledge proofs),简称为ZKP,它是密码学中使用的一种方法,用于证明某些东西是已知的,而不直接揭示已知的资讯。它基本上允许在交换中对私人资讯保密。零知识证明是间接证明,允许您证明自己知道一个秘密,而无需向其他人透露该秘密。

在零知识证明中,基本角色是证明者和验证者。证明者必须证明他们知道这个秘密。验证者必须能够验证证明者是否说实话。

零知识证明之所以有效,是因为验证者要求证明者做一些只有在证明者肯定知道秘密的情况下才能完成的事情。如果证明者正在猜测,他或她最终将被验证者的测试证明是错误的。如果知道这个秘密,那么证明者每次都会通过验证者的测试,而不会出现问题。这就像银行或机构要求您提供已知秘密单词的信件以验证您的身份一样。你不是在告诉银行你的银行帐户里有什么,你只是在告诉他们你知道一个给定单词的顺序。

零知识证明的工作原理

零知识证明是一种加密协议,它允许一方(示证者)向另一方(验证者)确认陈述的真实性,而无需透露有关该方的任何其他讯息(示证者了解到的内容和来源)。该定义最初是由麻省理工学院的研究人员Shafi Goldwasser,Silvio Micali 和Charles Rakoff 在科学文章《交互式证明系统的知识复杂性》(1985)中提出的。

零知识证明具有三个主要属性:

  1. 完整性-如果示证者知道陈述,那么他可以说服验证者。
  2. 正确性-如果示证者不知道该陈述,那么他只能以很小的机率欺骗验证者。
  3. 零知识-验证者即使行为不诚实,也不会从示证者知道该陈述这一事实中得知任何其他讯息。

证明采用交互协议的形式。这意味着乙方向示证者提出一系列问题,示证者如果知道秘密,将正确回答所有问题。如果甲方的秘密未知,但他想说服对方的测试者,则他有一定的机率(例如50%)正确地回答问题。

但是,经过一定数量的问题(10 – 20)后,审查员很有可能确定示证者不知道秘密。在这种情况下,所有答案都不会给出有关机密本身的任何讯息。

零知识协议有两种类型:

  1. 交互的(验证者独立地实时询问示证者)﹔
  2. 非交互式的(不需要验证者和示证者之间的直接通讯;验证者可以在事实之后验证语句的真实性)。

零知识证明还可以根据是否有几个验证者确定断言的真实性的阶段而分为两组-所谓的使用布尔函数的可信设置。

对于某些协议,例如zk-SNARKs(简明非交互零知识证明),这是前提条件。验证程序生成一个特殊的秘密,该秘密在受信任的安装后立即销毁。如果秘密继续存在,则可以伪造网路上的数据,从而平衡使用该协议的好处。

某些协议不需要受信任的安装(例如zk-STARK)。

zk-SNARKs

第一个利用零知识证明来做到交易匿踪性的是ZEC,其中的演算法便是zk-SNARKs,但因为ZEC的新区块奖励会有大约20%进入基金会的口袋以支持运作,部分支持者不满这种行为于是分岔出了ZCL,因此两者的加密法与架构都是一致的。

zk-SNARKs是zero knowledge Succinct Non-interactive ARgument of Knowledge的缩写,这几个词分别代表了:Succinct(简洁,用很少的资料量可以完成整个沟通与验证)、Non-interactive(只需要很少刺或不需要与原始发送者沟通即可验证讯息)、ARgument(只在计算上是安全的,如果遇到一个计算能力极强的攻击者会失效)。

零知识证明的应用和用例

1.ZKP 的应用

零知识的证明的应用主要有5 个方面:

  1. 区块链:比特币和以太坊等公共区块链的透明度使交易的公开验证成为可能。但是,这也意味着很少的隐私,并可能导致使用者的去匿名化。零知识证明可以为公共区块链引入更多的隐私。例如,加密货币Zcash基于零知识简洁的非互动式知识论证(Zk-SNAKR),这是一种零知识加密方法。
  2. 财务:ING使用ZKP,允许客户证明其秘密号码位于已知范围内。例如,抵押贷款申请人可以证明他们的收入在可接受的范围内,而无需透露他们的确切工资。
  3. 投票:如果公共区块链记录了投票,则不需要值得信赖的第三方来验证结果。因此,ZKP可以使投票系统匿名,因为合格的选民可以在不透露身份的情况下证明他们投票的权利。
  4. 认证:在身份验证系统中,一方希望通过密码等一些秘密资讯向第二方证明其身份,但不让第二方学习任何东西。ZKP 可以帮助执行此类资讯交换。
  5. 讯息传递:讯息的端到端加密是必要的,以便除了您要发送到的邮件之外,没有人可以阅读私人邮件。通过ZKP和区块链,我们可以在消息传递世界中建立端到端的信任,而不会泄露任何额外的资讯。

2.ZKP 的具体用例

新创公司QEDIT 开发了SDK(软件开发工具包),该工具包使您可以在现有的区块链中实施零知识证明,以增加交易的隐私性,同时保持通过节点进行交易验证的可能性。该项目已获得欧盟委员会质量认证,其合作伙伴包括VMWare,Ant Financial 和Deloitte 等知名公司。

StarkWare 已经创建了基于zk-STARKs 协议的解决方案,该协议也可以在现有网路上实现。该项目已经吸引了Vitalik Buterin,Pantera Capital,Intel Capital,Sequoia Capital 和其他投资者的资金。

荷兰银行ING 已发布零知识证明(ZKP)的修改版本-零知识范围证明(ZKRP)。该协议可以证明客户的工资在获得抵押所必需的范围内,而无需透露其本身的具体金额。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。