全方位解析零知识证明(ZKP),有什么值得关注的信息
区块链本身的一个关键优势就是透明性,然而在许多情况下,出于各种商业或法律原因需要保障数据隐私。现在,越来越多项目都采用零知识证明(ZKP)技术在公链上保护隐私。(注:零知识证明指一方向另一方发送加密证明,在不透露数据内容的情况下证明自己拥有某个数据。)在区块链网络中,零知识证明只披露某条隐藏信息是有效且为证明者所拥有的。
零知识证明的意义零知识证明(Zero-knowledge proofs)是一种在不暴露声明本身的情况下证明声明有效性的方法。“证明者”(prover)是试图证明声明的一方,而“验证者”(verifier)负责验证声明。
零知识证明是一种加密协议,其允许一方(证明方)向另一方(验证方)证明一个语句是否正确,而无需透露任何超出语句本身是否真实的额外信息。换句话说,证明者可以说服验证者,让后者相信证明者知道一些东西,而证明者无需实际透露他们知道什么。这是通过使用复杂的加密算法来创建可以在不泄露任何关于证明本身的信息的情况下进行验证的证明来实现的。零知识证明在注重隐私性的场景中具有非常实用的应用性,例如在线交易、身份验证以及其他需要保护敏感信息的应用程序。
随着身份信息窃取成为一个越来越严峻的问题,人们呼吁采用更能保护隐私的方式来分享敏感信息。零知识证明更是一项应用密码学的突破,它提高了个人信息的安全性。
零知识证明的运行机制

零知识证明最早由MIT的Shafi Goldwasser和Silvio Micali在1985年一篇名为《互动式证明系统的知识复杂性》的论文中提出。作者在论文中提到,证明者(prover)有可能在不透露具体数据的情况下让验证者(verifier)相信数据的真实性。零知识证明可以是交互式的,即证明者面对每个验证者都要证明一次数据的真实性;也可以是非交互式的,即证明者创建一份证明,任何使用这份证明的人都可以进行验证。
零知识证明目前有多种实现方式,如zk-SNARKS、zk-STARKS、PLONK以及Bulletproofs。每种方式在证明大小、证明者时间以及验证时间上都有自己的优缺点。
零知识证明主要有三个基本特征,即:
完整性:如果statement为true,则诚实的验证者可以相信诚实的证明者确实拥有正确的信息。
可靠性:如果statement为false,则任何不诚实的证明者都无法说服诚实的验证者相信他拥有正确的信息。
零知识性:如果statement为true,则验证者除了从证明者那里得知statement为true以外,什么都不知道。
总而言之,要创建零知识证明,验证者需要让证明者执行一系列操作,而证明者只有在得知底层信息的情况下才能正确执行。如果证明者乱蒙一个结果,那么验证者极有可能在验证中发现并证明他的错误。
零知识证明技术

零知识证明又分为交互式证明和非交互式证明。有两个有趣的例子很好的解释了这个概念。如上图所示,男子向女子声称有CD处的钥匙,女子不相信说“你拿出来给我看啊”,男子想“你让我拿我就拿多没面子啊”,男子说”这样吧,按下面步骤玩个游戏”
1. 女子站在A点
2. 男子从B点走到C点或者D点
3. 男子从B点消失后,女子从A点走到B点
4. 女子喊话“从左边出来”,或者“从右边出来”
5. 男子按照女子的要求从对应一侧走出
女子说“你肯定作弊,刚才我喊左边出来,你刚好就是从左边进去的”,
男子说:“你回到A点,我们再来一遍”
如果每次都成功,说明B确实有CD处的钥匙,该证明是需要A,B不停的交互。
非交互式零知识(NizK)证明方案由算法设置、证明和验证定义,具体来说,我们有params=Setup(),其中输入是安全参数,输出是ZKP算法系统的参数。证明语法由证明=证明(x,w)给出。该算法接收某些NP语言L的实例x和见证w作为输入,并输出零知识证明。验证算法接收证明作为输入,并输出位b,如果验证者接受证明,则该位等于1。
通俗一点就比如说我有一个秘密,我不想告诉别人,但是我又得让别人相信。我是知道这个秘密的,类似于这种,但是我们为什么需要有这种非交互式呢?因为交互式证明的其实只对原始的验证者有效,其他的任何人都不能够信任这个证明。这种场景下呢,就会导致这个验证者可以和这个证明人串通,证明人可以伪造证明。验证者也可以用这种方式做一些伪造。因此,验证者必须保存一些数据,直到相关的证明被验证完毕。这样就会造成一些秘密参数泄露的这种风险。这种交互式证明也有它的用处,就比如说一个证明人只想让一个特定的验证者来去验证,但是这个证证明人和验证者必须保持在线,并且去对每一个验证者执行同样的计算。
零知识证明的价值零知识证明的主要价值是可以在透明的公链上利用隐私数据集。区块链本质上透明度非常高,任何在区块链网络中运行的节点都可以查看并下载所有储存在账本中的数据,而区块链结合了零知识证明技术,可以让用户和企业用隐私数据来执行智能合约,并且不透露具体的数据内容。
供应链公司、企业和银行等传统实体希望在竞争中保持优势需要保护商业机密,因此在区块链网络中保障数据隐私就显得至关重要。另外,这些实体通常受到法律监管约束,必须保护客户个人身份数据隐私,并要遵守欧盟通用数据保护条例和美国健康保险便携性和责任法案(HIPAA)等各项法律法规。
零知识证明应用
ZKP的应用场景包括匿名可验证投票、数字资产安全交换、安全远程生物识别认证和安全拍卖,具体如下。
匿名可核查投票
投票是保障一个国家或控股公司民主的重要组成部分。然而,选民的隐私可能在投票过程中被泄露。此外,投票结果很难得到安全的核实。ZKP是实施匿名可核查投票的一种可用方法。根据ZKP的使用,符合条件的选民可以在不泄露身份的情况下投票表决显示他们的权利。此外,ZKP允许符合条件的选民要求提供可核查的证据,证明他们的选票包含在负责报告投票结果的机构的最终计票中。
数字资产的安全交换
数字资产是二进制数据的集合,它们是唯一可识别和有价值的。如果两个用户希望交换其数字资产,则用户的隐私,包括身份和交换数字资产的内容,可能会在交换过程中泄露。根据ZKP的使用,数字资产可以在不泄露用户隐私的情况下交换。此外,ZKP生成了可验证的证据,其中包含数字资产交换的过程。
安全远程生物识别身份验证
远程生物识别身份验证是一种可用于通过使用指纹、面部图像、虹膜或血管模式等生物识别模式识别用户访问权限的方法。但是,在实施远程生物识别认证时,用户的生物识别模式可能会泄露给不受信任的第三方。使用ZKP可以解决这个问题。此外,ZKP生成还提供了可核查的证据,其中包括识别用户访问权限的过程。
安全拍卖
政府拍卖是政府从多个供应商中选择最低出价的拍卖,这些供应商以竞争性方式销售其商品和服务。本次拍卖包括两个阶段。在第一阶段,多个供应商投标,但公众不知道。在第二阶段,这些投标是开放的。政府选择中标供应商,后者出价最低。然而,中标供应商的选择可能会泄露其他中标供应商的投标和身份。ZKP可以解决这个问题,ZKP为每个输标供应商生成可核查的证据。该证明证实输标供应商的投标与中标供应商的投标之间的差额是正的。
总结
零知识证明技术发展至今,已被广泛应用于扩容、隐私等方面。在 Layer2 层,ZK rollup 项目众多、趋于成熟;在Layer1、Layer2层,有 Filecoin、Aleo、Mina等热门项目。

在交易隐私保护这块的技术还是比较多的,而零知识证明技术是其中较为突出的一项,在安全领域中还有很多诸如同态,秘密分享,不经意传输,或者基于TEE硬件的一些隐私保护能力,可以去做一些隐私保护。但是零知识证明其优点也是很显著,未来区块链的隐私保护仍然任重而道远,如何实现快速高效、可信的零知识证明算法都是需要进一步探索的方向。
郑重声明:本文版权归原作者所有,转载文章仅为传播信息之目的,不构成任何投资建议,如有侵权行为,请第一时间联络我们修改或删除,多谢。
7月23:Mt. Gox 比特币钱包在市场紧缩的情况下转移了价值 28.2 亿美元的 BTC
7月23:Mt. Gox 比特币钱包在市场紧缩的情况下转移了价值 28.2 亿美元的 BTC一个引...
悦盈:比特币68000的空完美落地反弹继续看跌 以太坊破前高看回撤
一个人的自律中,藏着无限的可能性,你自律的程度,决定着你人生的高度。 人生没有近路可走,但你走的每...