荣登“奥斯卡”的零知识证明
光或许是最好的消毒剂,但我不愿意把一切暴露在光下。

提个问题:
假设有一个房门上锁的房间,除了用某一把钥匙打开,其他任何方法都不行。李雷想要向韩梅梅证明自己拥有这把钥匙。该怎么办?
有两种方法:
- 李雷把钥匙出示给韩梅梅,韩梅梅用这把钥匙打开该房间的锁;
- 韩梅梅确定该房间内有某一物体,李雷用自己拥有的钥匙打开该房间的门,然后把物体拿出来出示给韩梅梅。
第二种方法的好处在于在整个证明的过程中,韩梅梅始终没有看到钥匙,保护了李雷的隐私,避免了钥匙信息的泄露。
《麻省理工科技评论》(MIT Technology Review) 作为世界上最权威的科技期刊,自从2001年来,每年都会评选出“10大全球突破性科技技术”,号称科技的“奥斯卡”。此榜单精选10种本年度科技成就最高、商业潜力巨大、可能或正在改变人类生活的突破性科技,而“零知识证明”便位于今年的榜单中。
为什么我们需要零知识证明?
在互联网上曾流传着这样一句话:“在互联网上,没人知道你是一条狗”(英语:On the Internet, nobody knows you’re a dog),因为《纽约客》1993年7月5日刊登的一则由彼得·施泰纳(Peter Steiner)创作的漫画的标题而变得流行。
真的是这样吗?在互联网上,你真的拥有隐私么?那些不厌其烦地给你打骚扰电话的人是如何知道你的联系方式的呢?
在互联网上,若没有第三方机构,比如政府、银行、腾讯、链家等提供校验信息,我们的确难以验证对方的身份。但是这些中介机构因为各种原因,比如国家安全、社会稳定、商业发展等,收集互联网上每一个人的数据。对了,还有互联网上活跃着的黑客、网络恶霸、数据敲诈者,这些人也一样觊觎着互联网上有价值的数据。
你在互联网上真的并没有隐私。
零知识证明是改变这一现状的手段之一,它可以为我们带来必要的隐私保护。
什么是零知识证明?
“零知识证明”(zero-knowledge proof),是由S.Goldwasser等人在20世纪80年代初提出的。零知识证明必须包括两个方面,一方为证明者,另一方为验证者。证明者试图向验证者证明某个论断是正确的,或者证明者拥有某个知识,却不向验证者透露任何有用的消息。
举个例子,《阿里巴巴与四十大盗的故事》的一个片段:
强盗想知道打开石门的咒语,这个咒语只有阿里巴巴知道。可阿里巴巴不想让别人听到自己所念的咒语,于是便对强盗说:“你们离我一箭之地,用弓箭指着我,你们举起右手我就念咒语打开石门,举起左手我就念咒语关上石门,如果我做不到或逃跑,你们就用弓箭射死我。” 这个方案对强盗来说没有什么损失,还能搞清楚阿里巴巴念的咒语是不是正确的。对阿里巴巴来说,保护了咒语不被强盗听到。两全其美。强盗举起了右手,只见阿里巴巴的嘴动了几下,石门果真打开了,强盗举起了左手,阿里巴巴的嘴动了几下后石门又关上了。强盗还是有点不信,说不准这是巧合呢,他们不断地换着节奏举右手举左手,石门跟着他们的节奏开开关关,最后强盗们想,如果还认为这只是巧合,自己未免是个傻瓜。最后相信了阿里巴巴。
在本质上,零知识证明是一种涉及两方或更多方的认证协议。在零知识证明中,个人可以在不泄漏秘密的情况下,证明他知道这个秘密。
近年来,零知识证明技术的推得益于Zcash,这是一种在2016年末推出的数字货币。Zcash的开发人员使用了一种名为zk-SNARK的尖端加密技术,允许用户以匿名方式进行交易。
具体怎么做到的呢?
为了方便理解,先举个比特币转账的例子:小明给韩梅梅转账1个BTC。
整个过程需要证明:
- 李雷发送的那1个比特币属于小明;
- 李雷发送的金额等于韩梅梅接受的金额,即1BTC;
- 李雷发送后,韩梅梅接收完,小明的那1个比特币确实被销毁。
比特币转账和我们日常生活中的银行转账一样,不必对实物货币进行转移,而是以记账的方式,实现“资产所有权”的转移。在比特币交易中,交易参与方和交易数额被记载在区块链上。虽然比特币具有一定的匿名性,但仍可以被人分析和追踪。
Zcash转账同样是“资产所有权”的转移,与比特币转账不同的是,Zcash在实现点对点电子现金系统的同时实现了100%隐秘性保护。在 Zcash 交易中,通过应用 zk-SNARK 技术,所有元数据(交易参与方和交易数额)都是加密的,不用在区块链上公开展示。整个交易过程中,韩梅梅并不用看到李雷的“钥匙”,便能够实现资产所有权的转移。同时,为了防止交易过程中的欺诈行为,李雷可以通过发送查看密钥向韩梅梅证明自己身份。
想必你也明白,作为不可追踪的数字货币,Zcash最初的使用案例都围绕着非法活动展开,如暗网交易和洗钱。但零知识证明不会仅仅是交换非法商品的手段。利用这种协议,我们可以在某些特定场景中保护必要的隐私。零知识证明不应该只停留于洗钱、犯罪,更应该用在信用社会的塑造上。
目前,zk-SNARK 技术已经被应用在真实世界的商业行为中。摩根大通公司已将 zk-SNARK 添加到自己基于区块链技术的支付系统中。不过 zk-SNARK 目前仍存在缺陷,如计算量大、运行缓慢、存在秘钥丢失的安全隐患。开发人员正在努力研究替代方案,希望可以更加高效地部署零知识验证,同时不需要上述密钥。
零知识证明能入选《麻省科技评论》2018十大突破性技术,除了显示区块链在整体经济、乃至社会体系中扮演的角色越来越不容忽视,也更进一步凸显于区块链已脱离单纯的加密货币发行与新兴商业模式的初期狂热阶段。区块链技术到底是价值互联网的发展基础,还是一时狂热的资金泡沫,取决于区块链整体生态环境能否稳健发展。
微信公众号:郭知行(pumczhixing)。请注意:无需授权即可转载。
