admin管理员组

文章数量:1530047

零知识证明概念

零知识证明(Zero—Knowledge Proof),是由S.Goldwasser、S.Micali及C.Rackoff在20世纪80年代初提出的。它指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。

通俗的来讲,就是既证明了自己想证明的事情,同时透露给验证者的信息为“零”。

零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。大量事实证明,零知识证明在密码学中非常有用。如果能够将零知识证明用于验证,将可以有效解决许多问题。

零知识证明的一般过程

证明方和验证方拥有相同的某一个函数或一系列的数值。零知识证明的一般过程如下:

  1. 证明方向验证方发送满足一定条件的随机值,这个随机值称为“承诺”。
  2. 验证方向证明方发送满足一定条件的随机值,这个随机值称为“挑战”。
  3. 证明方执行一个秘密的计算,并将结果发送给验证方,这个结果称为“响应”。
  4. 验证方对响应进行验证,如果验证失败,则表明证明方不具有他所谓的“知识”,退出此过程。否则继续从1开始,重复执行这个过程t次。

如果每一次验证方都验证成功,则验证方就相信证明方拥有某种知识。而且此过程中,验证方没有得到关于这个知识的任何一点信息。

零知识证明的特点

根据零知识证明的定义和有关例子,可以得出零知识证明具有以下三个特点:

  • 完备性。如果证明方和验证方都是诚实的,并遵循证明过程的每一步,进行正确的计算,那么这个证明一定是成功的,验证方一定能够接受证明方。
  • 合理性。没有人能够假冒证明方,使这个证明成功。
  • 零知识性。证明过程执行完之后,验证方只获得了“证明方拥有这个知识”这条信息,而没有获得关于这个知识本身的任何一点信息。

零知识证明分类

到目前为止,具有应用前景的零知识证明工具可以分类两类:

  • 一类证明慢、验证快、证明体积小
  • 另一类证明快、验证快、证明体积较大

第一类由于验证快,不占用空间的特点,很快得到区块链开发者的青睐,同时随着ZCash的迅速传播,其使用的zk-SNARKs协议也越来越受关注。

第二类证明快的特点使得其在移动设备,嵌入式设备的部署成为可能,而隔离见证等技术有望缓解其证明体积较大的问题,在区块链领域的也是前途无量。

本文标签: 知识KnowledgeProof