零知识证明


定义:

是“Zero-Knowledge Succinct Non-Interactive Argument of Knowledge”的简称,也被称为“最小泄露证明”。在密码学中,它指的是一种证明方法。通过这种方法,证明者可以向验证者证明他们知道或拥有某一信息,但这个证明过程不需要泄露任何有关这一信息本身的内容。零知识证明在隐私币的应用中起到很大作用。

举例理解:
Jim想给Bob证明自己有某个房间的钥匙,假设这个钥匙只能开启这个房间的门,无法打开其他门,那么有两种方式可以对其进行证明:
1.Jim把房间的钥匙给Bob,由Bob拿着钥匙去开启房间的门,证明Jim确实拥有此房间的钥匙
2.Bob清楚该房间内放着某样物品,如果Jim打开房门拿出这件物品,也可以证明Jim拥有此房间的钥匙。
第二种方法就是本文讨论的零知识证明。这样的证明方法既没有泄露出有关的信息(钥匙),同时也验证了自己是某种权益的所有者(打开房门的钥匙),即给外界的信息为“零”。

零知识证明的过程:
零知识证明涉及两个参与者,证明者和验证者。证明者知晓某项内容,想让验证者相信他的确知晓,但又不想让验证者清楚内容是什么。因而双方间会通过协议进行处理,验证者会获得处理结果进而确定证明者确实知晓内容,但无法得知具体内容是什么。处理过程中使用的协议被称为零知识协议。零知识协议就是证明者向验证者证明某事件是真实可信的一种方法。

零知识协议的性质:
1.零知识:证明过程中并不涉及到知识本身的内容。验证者只知道“证明者确实拥有某项知识”,而不清楚知识本身的内容。
2.完整性:证明方和验证方都遵守验证过程的协议,如果验证正确,则大概率验证成功。
3.合理性:证明方无法被假冒去证明验证成功。

零知识证明的优点:
1.安全性不会随着证明次数的增多而下降。
2.证明方与验证方交换极少的信息即可,计算量小。
3.在保护隐私上使用广泛。

零知识技术的应用:
在发展快速的当代社会,数据隐私保护成为每个人极为关心的问题。零知识协议成为保护我们数据隐私的一种重要解决方案。设想零知识证明被广泛实现,当我们在登录网站时,我们并不需要告知网站密码便可进行身份验证完成登录。如果服务器被攻击,我们的密码仍然安全,因为密码并没有被网站存储。
零知识证明在区块链中也有着广泛应用。比特币网络是使用公共地址替代证明者和验证者,使交易部分匿名,其他用户只能查看接收地址和交易数量。但是根据上的交互信息,地址使用者的真实身份有可能被发现,依然存在着安全隐患。而零知识证明的出现可以让发送方,接收方,以及交易信息都保持隐蔽,进一步增强对隐私的保护。