什么是ZKP?零知识证明的完整指南

零知识证明背后的概念确实是独一无二的。零知识证明是一种独特的方法,其中用户可以向另一个用户证明他/她知道绝对值,而无需实际传达任何其他信息。

在此,证明者可以证明他知道给验证者z的值,而不给他任何信息,除了他知道z的事实。

这个概念背后的主要本质是证明知识的拥有而不透露它。这里的主要挑战是表明您知道z的值而不说z是什么或任何其他信息。

看起来很难?好吧,这并不困难。

如果用户想证明自己的陈述,则将要求他知道秘密信息。这样,验证者将无法在不真正知道秘密信息的情况下将信息中继给其他人。

因此,陈述将始终需要包括证明者知道知识,而不是信息本身。意思是,您无法说出z的值,但可以声明您知道z。在这里,z可能意味着任何东西。

这是零知识证明应用程序的核心策略。否则,它们将不是零知识证明应用程序。这就是为什么专家认为零知识证明应用程序是特例,其中没有机会传达任何秘密信息。

零知识证明属性

零知识证明需要具有三个不同的属性才能完整描述。他们是:

  • 完整性:如果陈述确实是正确的,并且两个用户都正确遵守了规则,那么将在没有任何人为帮助的情况下说服验证者。
  • 稳健性:如果语句为假,则在任何情况下都不会使验证者确信。(对该方法进行概率检查以确保虚假概率等于零)
  • 零知识:在每种情况下,验证者都不知道更多信息。

研究人员正在进一步研究该过程,以使其更加准确,并确保该过程需要减少两个同伴之间的交互。主要目标是消除沟通量,转而使用通用参考声明,以确保隐私。

零知识证明应用程序已经有相当长的一段时间了。但这并不是一个崭新的概念。到这里已经二十多年了。研究人员已经提高了系统的产量和效率。

现在,证明声明是超级容易且高效的。现在,它可以直接与bl9ckchain系统一起使用。

零知识证明如何工作?

零知识证明应用程序似乎是一个独特的协议。但是,许多人一定想知道如何在不实际传达信息的情况下证明自己的陈述。好吧,让我用两个最著名的例子来解释它。

开始吧。

第一个例子:阿里巴巴洞穴

这是正确调查零知识证明身份验证如何工作的最喜欢的方案之一。这里的证明者称为Peggy,验证者为Victor。

因此,为了使事物与零知识证明身份验证处于同一级别,证明者将知道值z,而验证者将知道证明者知道值z。

这个例子是这样开始的,想象一下佩吉以某种方式知道一个可以在阿里巴巴洞内打开魔术门的秘密单词。这个山洞看起来像一个环,门挡住了出口的通道。入口和出口在相似的位置相遇。

现在,维克托想确保佩吉说的是实话。意思是,她知道这个秘密词。但是佩吉是一个私人,不愿意对维克多说这个神奇的词。那么,维克多怎么知道她是否在说实话?

不同的方案

维克多提出了解决问题的计划。他标记了入口路径A和出口路径B。但是,由于它们在同一位置相遇,因此路径A和B只是左右路径。在这次检查中,维克多(Victor)留在外面,而佩吉(Peggy)进入山洞。

佩吉现在可以选择走A或B的路,但是无论走什么路,Victor都不知道。佩吉选择了一条路后,她进去了,维克多(Victor)进入山洞。然后,他喊着希望Peggy返回的路径名。他可以随机选择-A或B。

好吧,如果她真的知道这个秘密的话,那真的很容易。她可以用这个词打开门,回到维克多。或者,如果需要,她也可以返回相同的路径。

假设,佩吉真的不知道这个词。在这种情况下,如果Victor喊了她最初选择的路径名称,她将只能返回Victor。由于选择过程是随机的,因此Peggy将有50%的机会遵循Victors的指示。但是,如果维克托重复这个过程,比如说15次或25次,那么佩吉将无法做出一个幸运的猜测来愚弄他。

预期胜利者的举动将接近于零,佩吉将被抓住。

但是即使重复了如此多次,佩吉还是设法回到了维克多想要的地方。然后Victor可以安全地评估她确实知道这个秘密词。

第三方观点会怎样?

通常,如果第三方正在监视这种情况,那么Victor将不得不拥有一个隐藏的摄像机来记录交易。但是,摄像机只能记录Victor在喊什么-可以是A或B。同时它也可以记录Peggy喊B时出现在B或出现在喊A时出现在A的情况。

如果两个人事先达成共识,那么对于两个人来说,这种录音可能很容易伪造。这就是为什么没有第三方会相信此记录是Peggy实际上知道这个秘密词的原因。如果有人甚至从山洞观察实验,他也不会被说服。

那么,他们如何证明实验的完整性?

如果Victor掷硬币,然后根据该硬币选择路径,则零知识证明身份验证将失去其属性。但是硬币翻转足以使任何第三方观察员证实佩吉知道这个词。

这样,Victor就能在不知道单词的情况下证明实验的完整性。但是,正如我之前所说,这不会完全是零知识证明。

在数字密码学中,Victor可以使用具有一些固定模式(例如硬币)的随机数生成器来翻转硬币。但是,如果Victor的硬币的行为像一个数字生成器,那么他和Peggy可能会再次伪造该实验。

因此,即使使用数字生成器,它也不会像简单的硬币翻转那样高效。

只有一次审判

您是否注意到Peggy可以轻松证明自己知道单词,而无需在第一次尝试中说出单词?在这种情况下,佩吉和维克托需要同时进入洞穴。Victor可以看到Peggy经过A并从B出来,而无需透露单词。

但是这种证明会使任何人信服。因此,佩吉(Peggy)不想让其他人知道这件事,她不能说自己与维克多(阴谋家)共谋。因为她甚至都不知道谁知道她的知识以及如何控制它。

第二个例子:一个色盲朋友和两个球

此类用于零知识证明身份验证的实验将需要两个大小相同的球,但颜色不同。这个实验真的很受欢迎。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可以为用户维护一个安全通道,使用户可以使用他/她的身份验证信息而不会暴露该信息。因此,他将能够有效地避免数据泄漏。

  • 共享资料

无需第三方的注意就可以跨Internet共享数据至关重要。当您在网络上共享某些内容时,无论它们声称具有多大的保护作用,总会有一些风险。

有人总是可以在共享信息之间闯入或拦截—这是ZKP绝对可以提供帮助的地方。

这是零知识证明用例的另一个伟大的例子。

  • 敏感信息的安全性(信用卡信息)

诸如银行对帐单或信用卡信息之类的敏感信息需要进一步的保护。银行保留信用卡历史记录。但是,当您向他们请求信息时,您必须与他们的服务器通信。

即使银行走上了一条安全线,但信用卡的历史仍然比平均数据敏感得多。在这种情况下,银行不仅可以将整个信息加密为一个整体,还可以将其区块化,从而可以提供更好的安全性。

由于银行只会操纵必要的区块而不会接触其他区块,因此您的历史记录将获得适当数量的安全层。ZKP可以提供。

  • 复杂文件

ZKP可以限制任何用户访问其无权查看的复杂文档。由于ZKP能够对数据块进行加密,因此您只需要操纵某些块即可进行访问,并限制对其他用户的访问。

这样,未经授权的人将无法看到您的文档。

  • 储存保护

它可以为您的存储实用程序提供更好的保护。ZKP配备了使黑客远离的协议。这样,不仅您的存储单元而且其中的信息也将被加密。更不用说访问通道也会受到过度保护。

  • 文件系统控制

零知识证明协议可以保护文件系统中的所有内容。文件,用户甚至每次登录都可以具有不同的安全层。因此,在需要时它可能是一个很好的用例。

所有这些零知识证明用例都可以在现实生活中使用。

实现零知识证明架构

在您希望实现零知识证明之前,您需要了解它所依赖的内容。

密钥包装过程

ZKP将单个数据流分成小块。这些块中的每一个都分别加密。在零知识证明的实现中,加密密钥将仅在用户身上,并且,他将能够对信息进行加密和解密。

管理特权

密钥将存储在容器中。但是,如果用户想要更改存储密钥,那么他将不得不比较其所有权标签。如果它们匹配,那么他将能够对其进行更改,如果不匹配,它将保持不变。

控制请求

您应确保没有人能在您的零知识证明实施中添加文字。由于用户只能在区块链网络中访问它,因此您需要将每个操作转换为API命令。

这样,任何人都无法绕过您的安全措施。

减轻所有攻击

区块链不是一个完美的网络。即使它降低了攻击量,也不能完全消除它。因此,当您将ZKP集成到系统中时,请将其与其他措施结合使用。这样,您将摆脱可能损害网络的其余攻击。零知识证明的实现确实要求这些方法正确运行。

零知识系统重要吗?

到目前为止,零知识证明已经证明自己能够处理企业级业务。并非所有人都喜欢公共分类帐系统,因此每个人都可以看到您的交易。是的,您确实可以通过地址获得匿名性,但是人们仍然可以跟踪地址。

另外,在存储其他敏感信息时,区块链也不是最好的主意。企业需要处理大量私人信息,而现有的隐私协议还不够。

解释的零知识证明只能改善区块链,但也可以消除所有负面问题。尽管许多企业对区块链不感兴趣。这是一个美丽的发明。但是借助“零知识”证明,现在每个人都可以开始使用它。

因此答案是肯定的,零知识系统无疑是有关区块链的重要因素。

结论

区块链有其自身的优点和缺点。尽管乍一看似乎很有希望,但确实确实有很多负担。这些故障正在减缓这项出色技术的发展。

但是,随着零知识系统(穿着闪亮盔甲的骑士)的出现,情况开始发生变化。现在,区块链可以成为每个人都希望的超级保护平台。

让我们看看零知识证明和区块链如何改变世界。

本文链接地址:https://www.wwsww.cn/jishu/1826.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。