【区块链】什么是零知识证明?

1.浅析零知识证明

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

顾名思义,零知识证明就是既能充分证明自己是某种权益的合法拥有者,又不把有关的信息泄露出去——即给外界的“知识”为“零”。

零知识证明

目前以匿名性闻名的数字资产Zcash的匿名交易就是依靠“零知识证明”实现的。

2.举例说明

举个例子:假如A 要向 B 证明自己拥有某个房间的钥匙,假设该房间只能用钥匙打开锁,而其他任何方法都打不开。有两个方法:

方法一
A 把钥匙出示给 B,B 用这把钥匙打开该房间的锁,从而证明 A 拥有该房间的正确的钥匙。

方法二
B 确定该房间内有某一物体,A 用自己拥有的钥匙打开该房间的门,然后把物体拿出来出示给 B,从而证明自己确实拥有该房间的钥匙。

方法二的原理就是零知识证明。

证明示例

零知识证明可以在不泄露内容本身的情况下,证明我知道这个秘密,可以有效解决许多验证问题。

验证过程信息不泄露
3.零知识证明的特性
  • 完备性 completeness:如果证明方和验证方都是诚实的,并遵循证明过程的每一步,进行正确的计算,那么这个证明一定是成功的,验证方一定能够接受证明方。

  • 合理性 soundness:没有人能够假冒证明方,使这个证明成功。

  • 零知识性 zero-knowledge:证明过程执行完之后,验证方只获得了「证明方拥有这个知识」的信息,而没有获得关于这个知识本身的任何信息。

4.零知识证明的优点
  • 随着零知识证明的使用,安全性不会降级,因为该证明具有零知识性质。

  • 高效性,该过程计算量小,双方交换的信息量少。

  • 安全性依赖于未解决的数学难题,如离散对数、大整数因子分解、平方根等。

  • 许多零知识证明相关的技术避免了直接使用有政府限制的加密算法,为相关产品的出口带去优势。

你可能感兴趣的:(【区块链】什么是零知识证明?)