PrimiHub一款由密码学专家团队打造的开源隐私计算平台,专注于分享数据安全、密码学、联邦学习、同态加密等隐私计算领域的技术和内容。
当企业收集大量客户数据去审查、改进产品和服务以及将数据资产货币化时,他们容易受到网络攻击威胁,造成数据泄露。数据泄露的损失每年都在上升,每次泄露平均造成损失 420 万美元,如下图所示,它们严重损害了企业的声誉和可信度。
数据泄露的成本
零知识证明 (ZKPs) 等隐私增强技术 (PETs) 为企业提供了保护其敏感数据的方法。我们在本文中描述了 ZKP 的功能及其应用示例,以帮助大家认识最新的网络安全态势。
什么是零知识证明(ZKP)?
零知识证明(ZKP),也称为零知识协议,是一种在不泄露信息本身的情况下验证信息真实性的数学技术。该方法最初由麻省理工学院的研究人员在1985年的一篇论文[1]中引入。
零知识证明如何发挥作用?
下面是一个流行的例子来说明 ZKP 背后的基本思想:
假设你(证明者)有一个色盲朋友(验证者),他无法区分绿球和红球(对球是否为不同颜色的了解为零)。你需要证明球的颜色是不同的,但你需要去用证据去说服他,而不是只有你的劝说。解决这个问题的 ZKP 方法如下:
-
你的朋友拿走球,且让你看看红球和绿球各在哪只手上;
-
然后,你的朋友将球放在背后,可以选择是否交换两个球;
-
然后,将球拿出来并询问你是否交换了球。由于你可以区分绿球和红球,因此可以轻松给出正确答案;
-
你的朋友不相信。因为你有 50% 的机会正确猜测他们是否交换了球,并且球的颜色仍然相同。
-
但是,如果你的朋友多重复几次,最终你每次正确猜测他们是否换球的概率就会非常低。这使你的朋友能够在不知道球的实际颜色的情况下验证球的颜色是否不同。
ZKP 的实际应用中使用了一系列密码算法来验证计算语句。例如,使用 ZKP 方法,付款接收方可以验证付款人的银行帐户中有足够的余额,而无需获取有关付款人余额的任何其他信息。
另一个广泛流传的可以说明交互式证明工作流的示例是有关阿里巴巴的洞穴故事,该故事可以在维基百科文章中找到。
零知识证明有哪些特性?
零知识证明(ZKP)方法必须满足以下标准:
完整性:如果证明者提供的信息是真实的,那么ZKP方法必须使验证者能够验证证明者说的是真话。
可靠性:如果证明者提供的信息是错误的,那么 ZKP 方法必须允许验证者反驳证明者说的是真话。零知识:该方法必须向验证者透露证明者是否说真话以外的任何内容。
零知识证明有哪些不同类型?
零知识证明主要有两种类型:
交互式零知识证明:在这种类型的 ZKP 中,证明者和验证者进行多次交互。验证者向证明者提出挑战,证明者对这些挑战提供答复,直到验证者确信为止。
非交互式零知识证明:在这种类型的 ZKP 中,证明者提供的证明在任何时候只能被验证者验证一次。这种类型的 ZKP 比交互式 ZKP 需要更多的计算能力。
零知识证明有哪些应用和用例?
零知识证明可用于保护各种密码学方案中的数据隐私,例如:
区块链:比特币和以太坊等公共区块链的透明度可以实现交易的公开验证。然而,它也意味着很少的隐私,并可能导致用户去匿名化。零知识证明可以为公共区块链引入更多隐私。例如,加密货币 Zcash 基于零知识简洁非交互式知识论证(zk-SNARK),这是一种零知识加密方法。另一个例子是零知识可扩展透明知识论证(zk-STARK),它用于以太坊区块链并提供隐私和可扩展性。
金融:ING 使用 ZKPs 允许客户证明他们的秘密号码位于已知范围内。例如,抵押贷款申请人可以证明他们的收入在允许的范围内,而无需透露他们的确切工资。
在线投票:ZKPs 可以允许选民匿名投票并验证他们的投票是否包含在最终计票中。
身份验证:ZKP 可用于对用户进行身份验证,而无需交换密码等秘密信息。机器学习:ZKP 可以让机器学习算法的所有者让其他人相信模型的结果,而无需透露有关 ML 模型本身的任何信息。
零知识证明面临哪些挑战?
没有 100% 的保证:即使在证明者撒谎时验证者进行验证的概率可能非常低,ZKPs 也不能保证声明 100% 有效。如上所述,证明者说谎的概率在选球过程的每次迭代中都会降低,但永远不会达到零。因此,零知识证明并不是数学意义上的实际证明。
计算强度:所使用的算法计算强度大,因为它们需要验证者和证明者之间的大量交互(在交互式 ZKP 中),或者需要大量的计算能力(在非交互式 ZKP 中)。这使得 ZKP 不适合慢速或移动设备。
原文地址:Zero-Knowledge Proofs: How it Works & Use Cases in 2024
原文作者:Cem Dilmegani
翻译 & 整理:开放隐私计算 & PrimiHub