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

作者: 贝壳小岛Official | 来源:发表于2019-01-23 23:23 被阅读10次

    一、浅析零知识证明

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

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

    零知识证明

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

    二、举例说明

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

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

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

    证明示例

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

    验证过程信息不泄露

    三、零知识证明的特性

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

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

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

    四、零知识证明的优点

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

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

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

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

    相关文章

      网友评论

        本文标题:【区块链】什么是零知识证明?

        本文链接:https://www.haomeiwen.com/subject/cvkejqtx.html