零知识证明的原理独特而独树一帜。这种证明方法让用户能够向他人证明自己知晓某个信息,却无需透露任何其他信息。具体来说,证明者可以向验证者展示自己知晓某个特定值z,而无需透露z的具体内容。
零知识证明的核心在于证明知识的拥有而不泄露知识本身。挑战在于证明自己知晓z的值,却不说出z是什么或任何相关信息。
这种看似困难的方法实际上并不复杂。如果用户想要证明自己的陈述,则需要掌握秘密信息。这样,验证者就无法在没有掌握秘密信息的情况下将信息传递给其他人。
因此,陈述中应包括证明者知晓知识,而不是具体信息。这意味着你无法说出z的值,但可以声明自己知晓z。在这里,z可以代表任何事物。
这是零知识证明应用的核心策略。如果不是这样,它们就不能被称为零知识证明应用。这也是为什么专家认为零知识证明应用是一种特殊案例,其中没有机会传递任何秘密信息。
零知识证明的三个关键属性是:完整性、稳健性和零知识。完整性意味着如果陈述正确,两个用户都正确遵守规则,那么验证者将无需任何帮助就能被说服。稳健性则意味着如果陈述错误,无论何种情况,验证者都不会被说服。(通过对该方法进行概率检查,确保虚假概率为零)零知识则意味着在每种情况下,验证者都不会获得更多信息。
研究人员正在进一步研究这一过程,以使其更加精确,并确保减少两个参与者之间的交互。主要目标是减少沟通量,转而使用通用参考声明,以确保隐私。
零知识证明应用已经存在一段时间了。虽然不是全新概念,但已有二十多年的历史。研究人员已经提高了系统的产量和效率。
如今,证明陈述变得既简单又高效。它可以直接与区块链系统结合使用。
那么,零知识证明是如何工作的呢?让我们通过两个著名的例子来解释。
第一个例子:阿里巴巴洞穴
这个例子是探讨零知识证明身份验证如何工作的经典方案之一。在这个例子中,证明者被称为Peggy,验证者为Victor。
在这个例子中,Peggy知道一个可以打开阿里巴巴洞内神秘门的秘密单词。洞口和洞口在环形的山洞中相遇。
Victor想确保Peggy说的是实话,即她确实知道这个秘密单词。但Peggy是个保密主义者,不愿意把单词告诉Victor。那么,Victor如何知道她在说实话呢?
不同的方案
Victor提出了解决问题的计划。他标记了入口路径A和出口路径B。但由于它们在同一位置相遇,路径A和B只是左右路径。在这场测试中,Victor留在外面,而Peggy进入山洞。
Peggy可以选择走A或B的路,但Victor并不知道。Peggy选择了一条路后,她进去了,Victor进入山洞。然后,他喊出希望Peggy返回的路径名称。他可以随机选择-A或B。
如果她真的知道这个秘密,那么很容易。她可以用这个词打开门,回到Victor。或者,如果需要,她也可以返回相同的路径。
假设Peggy并不知道这个单词。在这种情况下,如果Victor喊出她最初选择的路径名称,她将只能返回Victor。由于选择过程是随机的,Peggy将有50%的机会遵循Victor的指示。但如果Victor重复这个过程,比如说15次或25次,Peggy将无法做出一个幸运的猜测来愚弄他。
预期胜利者的举动将接近于零,Peggy将被抓住。
但是即使重复了如此多次,Peggy还是设法回到了Victor想要的地方。然后Victor可以安全地评估她确实知道这个秘密单词。
第三方观点会怎样?
通常,如果第三方正在监视这种情况,Victor将不得不拥有一个隐藏的摄像机来记录交易。但摄像机只能记录Victor在喊什么——可以是A或B。同时它也可以记录Peggy喊B时出现在B或出现在喊A时出现在A的情况。
如果两个人事先达成共识,那么这种录音对两个人来说可能很容易伪造。这就是为什么没有第三方会相信这个记录是Peggy实际上知道这个秘密单词的原因。如果有人甚至从山洞观察实验,他也不会被说服。
那么,他们如何证明实验的完整性呢?
如果Victor掷硬币,然后根据硬币选择路径,那么零知识证明身份验证将失去其属性。但是硬币翻转足以使任何第三方观察员证实Peggy知道这个词。
这样,Victor就能在不知道单词的情况下证明实验的完整性。但正如我之前所说,这不会完全是零知识证明。
在数字密码学中,Victor可以使用具有一些固定模式(例如硬币)的随机数生成器来翻转硬币。但如果Victor的硬币的行为像一个数字生成器,那么他和Peggy可能会再次伪造实验。
因此,即使使用数字生成器,它也不会像简单的硬币翻转那样高效。
只有一次审判
你是否注意到Peggy可以轻松证明自己知道单词,而无需在第一次尝试中说出单词?在这种情况下,Peggy和Victor需要同时进入洞穴。Victor可以看到Peggy经过A并从B出来,而无需透露单词。
但这种证明并不能让任何人信服。因此,Peggy(Peggy)不想让其他人知道这件事,她不能说自己与Victor(阴谋家)共谋。因为她甚至都不知道谁知道她的知识以及如何控制它。
第二个例子:一个色盲朋友和两个球
此类用于零知识证明身份验证的实验将需要两个大小相同的球,但颜色不同。这个实验非常受欢迎。Mike Hearn和Konstantinos Chalkias首先介绍了这种新方法。您也可以使用两张彩色卡片进行此实验。
就像这样,假设您有一个色盲朋友和两个球。球需要为红色和绿色,并且尺寸相同。您的朋友认为它们是同一回事,并怀疑您的说法是不同的。
因此,您需要证明它们具有不同的颜色,而无需告诉他哪个是哪个。
您将球交给您的朋友,而他则将球藏在背后。之后,他随机拿出一个球让您看。然后,他将球放回去,然后再次随机选择球。
这次您也可以看到球。在那之后,他会问你是否切换了球。可以肯定的是,他将重复此过程一段时间。
现在您已经不是色盲了,您可以肯定地说出他是否切换了球。如果球的颜色相同,则正确回答的概率为50%。因此,在重复此过程之后,当您每次都能正确回答时,您的朋友就会被说服。
预期的概率将为零,您将获得三个零知识属性。
但是请确保您的朋友不知道哪个是绿色,哪个是红色。这样,您将能够保留第三个属性“零知识”。
交互式零知识证明
零知识加密可以分为两种:交互式零知识证明和非交互式零知识证明。
让我们看看它们是什么。
交互式零知识证明
这种零知识证明认证类型将要求对等方或任何计算机系统之间进行交互。通过交互,证明者可以证明知识,验证者可以验证知识。
这是零知识证明区块链的最典型场景。在这里,您将在不公开理解的情况下证明自己。但是,您还向与之交互的用户透露了它。因此,如果有人只是看着你们两个,那么他将无法验证您的知识。
尽管它是最好的隐私协议之一,但是当您想向一个以上的人证明它时,仍然需要大量的努力。这是因为您将不得不反复地对每个人重复相同的过程,就像只是看着他们不同意您一样。
该协议将需要验证者进行任何形式的交互响应才能执行。否则,证明者永远无法独自证明它。交互式输入可以是挑战的形式,也可以是其他类型的实验。显然,该过程必须说服验证者知道该知识。
在其他情况下,验证者可以记录该过程,然后将其播放给其他人,以便他们也可以看到它。但是,是否真的会说服他人完全取决于他们。他们可能接受还是不接受。
这就是为什么交互式零知识证明区块链对于少数参与者而不是大型参与者更有效的原因。
非交互式零知识证明
非交互式零知识证明区块链是在这里向更大范围的人群验证一个人的陈述。您不必总是去非交互式零知识证明区块链进行检查。通常,您可能能够找到可以担保您的任何受信任的验证者来源。
但是,当您找不到任何人时,非交互式零知识证明区块链便是必经之路。
数独挑战卡
数独是最困难的游戏之一,但规则简单。所有行,扇区和列仅需要具有一次1-9的数字。
在这种情况下,假设您知道此难题的解决方案,即使对于计算机也可能需要几天的时间。那么,如果您想出售解决方案,验证者将如何知道您没有欺骗他?您将不得不证明自己的知识,而无需向验证者透露解决方案。
让我们看看如何做到这一点。
解决方法
您将需要27张卡片,它们的编号从1到9。因此,27张卡片将包含数字1,然后另外27张包含数字2。总共需要243张卡片。
现在,您必须在解决方案的相应框中放入三张卡。这意味着如果该框的正确数字是5,则将3张5号卡放入该框中。
在数独表中,您会看到一些答案始终可见。在这些框中,您将卡正面朝上放置。在没有答案的盒子上,您将卡片颠倒放置。
现在,您需要证明自己已将所有卡放置在正确的位置而没有露出来。你必须:
从每一列中取出最上面的卡片,直到有九堆。对行和扇区重复相同的操作。
然后,您需要将每一堆洗牌,然后翻身以显示数字。
您知道基本规则,从1到9的所有数字必须在每行,扇区和列中出现一次。因此,如果您的所有堆中只有1-9的数字出现一次,则验证者将知道您已找到解决方案。
很巧妙的技巧,对吗?
不增加交互性可能是向很多人证明您的陈述而又不增加资源和成本的最佳方法。
零知识证明—zk-SNARKS解释
您现在必须已经听说过zk-SNARKS。有没有想过它到底是什么?好吧,zk-SNARKS解释的是一种使用非交互式零知识证明示例概念的技术。Zcash利用这种形式的加密技术来确保更好的隐私。
实际上,它是零知识的简洁非交互式知识参数的首字母缩写。
该技术包含三种不同的算法:密钥生成器、证明者和验证者。
密钥生成器:密钥生成器设置一个参数以生成密钥对。在这里,可信源可以生成一个私有或公共密钥对,然后销毁私有部分。之后,使用公共部分生成另一个密钥对。在这里,一个将用于证明另一个用于验证。
证明者:证明者必须使用证明密钥和一些公共意见来证明他的知识。在这里,他将成为私人见证人,然后满足上下文以证明他的观点。
验证者:验证将需要验证密钥来确保语句为真或假。他必须接受公众的意见和证明,以评估其正确与否。
除了这三个之外,zk-SNARKS还需要维护零知识、简洁、非交互式、参数和知识渊博。
企业利用零知识加密
既然您已经了解了零知识证明,那么让我们看一下使用该协议的一些著名企业。
著名项目零现金
大多数区块链平台都公开了两个对等方之间的交易。这不仅是区块链的劣势之一,而且还在破坏其增长。另一方面,Zcash可以提供涉及交易的全面隐私。
这是一个开放源代码且无许可的区块链平台,利用了零知识证明的精髓。交易过程被屏蔽。因此,它将在区块链上找到值,发送者和接收者。
它也因引入zk-SNARKS而闻名,此后许多人跟随其发展。
ING
ING是一家荷兰银行,已经开始了新的零知识区块链。尽管他们推出了一些零知识系统的改进版本,但被称为零知识范围证明。在这一过程中,它们所需的计算能力比必要的少得多。
它与金融部门直接相关,例如抵押价值。您将能够证明自己有薪金可以抵押,而无需透露您的薪水。
目前,它是开源的,但是它对其他金融区块链提出了相当大的挑战。
PIVX
该公司希望改变世界运作的典型方式。在一个由他人控制和管理一切的系统中,PIVX打算为您的财务报表引入一个安全的天堂。他们正在进行新的集成,他们将遵循零知识证明示例。
在这里,唯一公开的是确认汇款。意思是,您会看到有人汇了钱,但是地址或时间的安排被隐藏了。PIVX通过其新的集成以及增强的隐私性确保了更快的交易速度。
零币
该公司利用Zerocoin协议提供额外的安全性和完全匿名的交易。Zerocoin协议显然遵循零知识证明示例概念。然而,Zcoin还提供了许多区块链网络所缺乏的可扩展性。
在这里,通过使用Zcoin,您将能够最大程度地保留自己的身份以及您在网络上的支出。这是保护可替代性的好方法。
但是不要将它们与Zcash混淆。它们具有不同的协议,并且绝对不是彼此的分支。
知名厂商StarkWare
StarkWare是另一家伟大的公司,它充分利用了零知识证明示例技术。但是它们似乎扭曲了典型的SNARKs协议。他们使用STARK技术代替SNARK。
StarkWare旨在通过透明的交易方法来改善区块链的隐私和可扩展性问题。他们目前正在开发硬件和软件支持,以确保STARK技术获得更好的输出。
这项新技术将消除隐藏的通货膨胀问题,从而消除可信任的设置。zkSTARK是零知识可扩展透明知识论点的缩写。但是,即使隐藏的通货膨胀消失了,它仍然可以抵抗量子。
这项新的STARK技术可能是SNARK的下一阶段。从此处了解有关StarkWare的更多信息。
质量保证
这是利用零知识证明提供安全性的初创公司之一。QED-it是一家以色列公司,能够在没有第三方注意的情况下处理机密数据。您可以集成到系统中以进行更好的数据管理。
他们的一些受欢迎的客户包括法国巴黎银行和德勤。主要目标是为企业提供隐私。在过去的两年中,他们改进了项目,开发了可以应对任何情况的全新SNARK系统。
他们的一些用例是实时风险评估,供应链,资产管理,预测性维护等等。
在哪里可以使用ZKP?
ZKP或零知识证明用例需要能够与密码学和可信赖的设备一起使用。与其他设备相比,移动似乎是此处的正确选择。与浏览器相比,它们提供了安全的运行时环境。但是,它仍然没有风险。
但是主要问题是,您可以在哪里利用零知识证明用例?
讯息传递
在消息传递中,必须进行端到端加密。因此,没有客户端本身,没有人可以阅读您的私人消息。两个用户必须验证他们对服务器的信任,反之亦然。另一方面,ZKP提供了端到端信任,而不会泄漏任何其他信息。在ZKP的帮助下,没有人能够破解他们的方式来发送您的消息。
这是零知识证明用例之一。
认证方式
零知识证明可以帮助安全地传送敏感信息,例如身份验证信息。在此,ZKP可以为用户维护一个安全通道,使用户可以使用他/她的身份验证信息而不会暴露该信息。因此,他将能够有效地避免数据泄漏。
共享资料
标签: 数字货币