天天看点

一文读懂零知识证明(ZKP)

作者:方块研究所Cube
一文读懂零知识证明(ZKP)
一文读懂零知识证明(ZKP)

零知识证明最早由麻省理工学院的Shafi Goldwasser和Silvio Micali在1985年一篇名为《互动式证明系统的知识复杂性》的论文中提出。作者在论文中提到,证明者(prover)有可能在不透露具体数据的情况下让验证者(verifier)相信数据的真实性。

举一个简单了例子

阿里巴巴被强盗抓住,为了保命,他需要向强盗证明自己拥有打开石门的口令,同时又不能把密码告诉强盗。他想出一个解决办法,先让强盗离开自己一箭之地,距离足够远让强盗无法听到口令,足够近让阿里巴巴无法在强盗的弓箭下逃生。如果强盗举起左手,阿里巴巴就使用口令将石门打开,如果举起右手,就将石门关闭。阿里巴巴就在这个距离下向强盗展示了石门的打开和关闭。如果每次都能正确打开和关闭大门,则证实阿里巴巴确实知道石门的密码。

这个整个过程就是零知识证明,即证明者能够在不向验证者提供任何有用信息(石门的口令)的情况下,使验证者相信某个论断(阿里巴巴知道打开石门的方法)是正确的。

一文读懂零知识证明(ZKP)
一文读懂零知识证明(ZKP)

完整性:如果statement为true,则诚实的验证者可以相信诚实的证明者确实拥有正确的信息。

可靠性:如果statement为false,则任何不诚实的证明者都无法说服诚实的验证者相信他拥有正确的信息。

零知识性:如果statement为true,则验证者除了从证明者那里得知statement为true以外,什么都不知道。

总而言之,要创建零知识证明,验证者需要让证明者执行一系列操作,而证明者只有在得知底层信息的情况下才能正确执行。如果证明者乱蒙一个结果,那么验证者极有可能在验证中发现并证明他的错误。

一文读懂零知识证明(ZKP)

零知识证明的主要价值是可以在以太坊等透明的公链上利用隐私数据集。区块链本质上透明度非常高,任何在区块链网络中运行的节点都可以查看并下载所有储存在账本中的数据,而区块链结合了零知识证明技术,可以让用户和企业用隐私数据来执行智能合约,并且不透露具体的数据内容。

供应链公司、企业和银行等传统实体希望创建并执行智能合约,但又为了在竞争中保持优势需要保护商业机密,因此在区块链网络中保障数据隐私就显得至关重要。另外,这些实体通常受到法律监管约束,必须保护客户个人身份数据隐私,并要遵守欧盟通用数据保护条例和美国健康保险便携性和责任法案(HIPAA)等各项法律法规。

联盟链的出现可以有效保护机构交易数据隐私,但联盟链在网络规模上却逊色于公链,公链可以覆盖全世界各地的用户,并形成巨大的网络效应。而零知识证明可以使这些机构安全地与公链网络交互,并同时保护内部敏感数据隐私。因此,零知识证明成功为传统企业激活了一些列公链的应用场景,推动创新,并建立更高效的全球经济体系。

一文读懂零知识证明(ZKP)
一文读懂零知识证明(ZKP)

继续阅读