本文介绍了零知识证明(ZKP)的概念。此外,您还将找到不同类型的ZKP,以及ZKP的使用案例和实施策略.
随着人们信息的不断控制和隐私的缺乏,现在需要一个新的时代。持有去中心化系统火炬的区块链正在做出改变,但这还不够。现在,一种称为“零知识证明”的新技术正潜伏在市场中,这是一个机会.
你们中的许多人肯定听说过零知识证明示例,但实际上并不了解其背后的概念。零知识加密是一种新协议,可以增加更高级别的安全性。但是实际上它有多好?可以成为我们正在寻找的解决方案吗?
现在报名: 零知识证明(ZKP)大师班
表中的内容
第一章:区块链中的不同链接方式
通常,区块链仅仅是一个共享数据库,您在其中记录谁拥有多少加密货币或其他数字资产。但是不同的区块链的工作原理彼此不同.
例如,您将在比特币中看到元数据,并在以太坊中看到其他合同逻辑。无论如何,区块链,主要是私有区块链提供了两种严重的用例.
- 拥有外部资产,由网络上的令牌表示。用户还可以使用令牌转移外部资产.
- 隐私和应用程序的增加与数据管理的一般应用程序更相关.
并不是说,每个私有区块链都提供这两个用例。但通常,私有区块链可能更适合需要额外保密和隐私的公司.
关于存储常规数据,区块链确实做了很多服务。首先,它需要证明数据来自何处,然后给它加上时间戳,然后使其不可变,以使任何人都无法更改它。.
但是,区块链对信息本身无话可说。因此,每个应用程序都可以决定数据实际代表什么或数据是否有效。在应用程序级别可以删除或忽略任何不良数据,而不会对网络本身造成任何进一步的破坏.
因此,如果区块链想要转让任何种类的资产,则需要在验证那些交易的过程中提供内部规则。这是区块链从一开始就缺乏的东西-区块链采用挑战之一.
不了解区块链技术的基础知识吗?阅读有关区块链功能简介的详细指南.
能 区块链维护所需的隐私?
例如,也许您想向您的朋友凯文(Kevin)发送50美元。但是在您的交易获得批准之前,网络需要知道您是否真的拥有50美元。尽管许多区块链遵循这一规则彼此不同,但在每种情况下,网络上的每个人都需要知道您拥有50美元.
当Kevin收到这笔款项时,这有助于保持您资产的有效性以及Kevin的有效性。但是,为了进行此验证过程,您正在牺牲自己的隐私.
但是有一个陷阱。在区块链中,您将没有常规的识别名,例如Kevin。取而代之的是,您将获得交易地址,所有这些地址都与真实世界没有相似之处的字符串流.
即使这些信息是准确的,但这仍然不一定会改变方案。为什么?好了,您仍然可以找到许多方法来找出两个用户之间的连接并找出他们的地址.
当前方案的问题
首先,如果用户要在链上进行交易或发送资产,则他/她需要知道地址。因此,当您汇款时,可以看到汇款去往哪个地址。另一方面,如果有人向您付款,那么您将能够看到它的来源.
如果一个用户知道现实世界中有关另一个用户的任何信息,那么他可以轻松地跟踪并找出另一个用户正在使用的地址。显然,他们可以搜索整个链并根据其活动进行查找.
是的,这很耗时,但并非不可能。这就是为什么使用地址而不是名称无助于保护网络的隐私.
仅加密就足够了?
隐私和敏感信息的概念与加密紧密相关。如果您正在考虑仅将常规数据存储在区块链上,那么我们绝对可以做到这一点。在这种情况下,我们仍然能够获得数据保留,不变性和时间戳记.
因此,由于它们都不与数据类型无关,因此您仍然可以使用分布式分类帐存储仅可读的数据。但是您仍然需要依靠其他人来验证其存在,以帮助首先创建该块。因此,它与以前的过程相同.
但是,您不能对表示令牌化资产的任何转移的交易使用这种类型的加密。如果您和凯文(Kevin)对交易进行加密,那么链上的任何人都将无法再安全地使用资产。这是因为每个人都不确定资产的确切位置在哪里.
有问题的资产将失去其在分类帐上的价值,因此加密无法解决问题.
流动性与隐私之间的冲突
现在您可以看到,如果我们要出于经济目的使用区块链,那么您将始终面临这两者之间的冲突。现在许多初创公司在处理资产时都面临着这个问题.
即使有许多试点项目在区块链上模拟流程,但在现实生活中情况并非如此。该过程需要太多的活动,因此表明有两个地址正在尝试交易资产.
这就是信息泄漏的方式,这是主要问题之一,但是现在网络上还没有任何特定的规则.
现在,许多初创公司将所有分数都在链下解决,而不是在链上解决,因为他们可以加密并获得隐私。但是区块链可以提供如此多的服务,而且具有私密性的链上解决方案可能会引领世界金融进入另一个高度.
在所有这些冲突中,我们终于有了我们一直在寻找的解决方案–零知识证明.
第二章:什么是零知识证明?
零知识证明背后的概念确实是独一无二的。零知识证明是一种独特的方法,其中用户可以向另一个用户证明他/她知道一个绝对值,而无需实际传达任何额外信息。.
在此,证明者可以证明他知道给验证者的值z,而不给他任何信息,除了他知道值z的事实.
这个概念背后的主要本质是证明知识的拥有而不透露它。这里的主要挑战是表明您知道z的值而不说z是什么或任何其他信息.
看起来很难?好吧,这并不困难.
如果用户想证明自己的陈述,则将要求他知道机密信息。这样,验证者将无法在不真正知道秘密信息的情况下将信息转发给其他人.
因此,陈述将始终需要包括证明者知道知识,而不是信息本身。意思是,您无法说出z的值,但可以声明您知道z。在这里,z可能意味着任何东西.
这是零知识证明应用程序的核心策略。否则,它们将不会是零知识证明应用程序。这就是为什么专家认为零知识证明应用程序是特例,其中没有机会传达任何秘密信息.
零知识证明属性
零知识证明需要具有三个不同的属性才能完整描述。他们是:
- 完整性: 如果该声明确实是正确的,并且两个用户都正确遵守了规则,那么将在没有任何人为帮助的情况下说服验证者.
- 稳健性: 如果声明为假,则在任何情况下都不会使验证者确信。 (对该方法进行概率检查以确保虚假概率等于零)
- 零知识: 在每种情况下,验证者都不知道更多信息.
研究人员正在进一步调查该过程,以使其更加准确,并确保该过程所需的两个同伴之间的交互较少。主要目标是消除沟通量,转而使用通用参考声明,以确保隐私.
零知识证明应用程序已经有相当长的一段时间了。但这不是一个崭新的概念。它已经存在了20多年了。研究人员提高了系统的产出和效率.
现在,证明声明非常容易且高效。现在可以直接与区块链系统一起使用.
第三章:零知识证明如何工作?
零知识证明应用程序似乎是一个独特的协议。但是,许多人一定想知道如何在不实际传递信息的情况下证明自己的陈述。好吧,让我用两个最著名的例子来解释一下.
开始吧.
第一个例子:阿里·巴巴 洞穴
这是正确调查零知识证明身份验证如何工作的最喜欢的方案之一。这里的证明者称为Peggy,验证者为Victor.
因此,为了使事物与零知识证明身份验证处于同一级别,证明者将知道值z,而验证者将知道证明者知道值z.
这个例子是这样开始的,想象一下佩吉以某种方式知道一个可以在阿里巴巴洞内打开魔术门的秘密单词。这个山洞看起来像是一枚环形,门挡住了通往出口的通道。入口和出口在相似的位置相遇.
现在,维克多(Victor)想确保佩吉(Peggy)讲的是实话。意思是,她知道这个秘密词。但是佩吉是一个私人,不愿意向维克多说出这个神奇的词。那么,维克多怎么知道她是否在说真话?
不同的方案
维克多提出了解决问题的计划。他标记了入口路径A和出口路径B。但是,由于它们在同一位置相遇,因此路径A和B只是左右路径。在这次检查中,维克多(Victor)留在外面,而佩吉(Peggy)进入山洞.
佩吉现在可以选择走A或B的路,但是无论走什么路,Victor都不知道。佩吉选择了一条路后,她进去了,维克多(Victor)进入山洞。然后,他喊着希望Peggy返回的路径名。他可以随机选择-A或B.
好吧,如果她真的知道这个秘密的话,那真的很容易。她可以用这个词打开门,回到维克多。或者她也可以根据需要返回相同的路径.
假设佩吉真的不知道这个词。在这种情况下,她只能返回Victor,如果Victor喊道名称,她会首先选择。由于选择过程是随机的,因此佩吉有50%的机会遵循Victors的指示。但是,如果Victor重复此过程(例如说15次或25次),那么Peggy将无法做出幸运的猜测来愚弄他.
预期胜利者的举动将接近于零,佩吉将被抓住.
但是,即使重复了如此多次,佩吉还是设法回到了维克多想要她去的任何地方。然后维克多可以放心评估她确实知道这个秘密字.
第三方视图会发生什么?
通常,如果第三方正在监视这种情况,那么Victor将不得不拥有一个隐藏的摄像机来记录交易。但是,摄像机只能记录Victor在喊什么-可以是A或B。同时它也可以记录Peggy喊B时出现在B或Pe喊A时出现在A的情况。.
如果两个人事先达成共识,那么对于两人来说,这种录音可能很容易伪造。这就是为什么没有第三方会相信此记录是Peggy实际上知道这个秘密词的原因。如果有人甚至从山洞观察实验,他也不会被说服.
那么,他们如何证明实验的完整性?
如果Victor投掷硬币,然后根据该路径选择路径,则零知识证明身份验证将失去其属性。但是硬币翻转将足以使任何第三方观察员确信佩吉知道这个词.
这样,Victor就能在不知道单词的情况下证明实验的完整性。但这不会完全是零知识证明.
在数字密码学中,Victor可以使用具有一些固定模式(例如硬币)的随机数生成器来翻转硬币。但是,如果Victor的硬币的行为像一个数字生成器,那么他和Peggy可能会再次伪造实验.
因此,即使有一个数字生成器,它也不会像简单的硬币翻转那样高效.
只有一次审判
您是否注意到佩吉可以轻松证明她知道单词,而无需在第一次尝试中说出单词?在这种情况下,佩吉(Peggy)和维克多(Victor)需要同时进入洞穴。 Victor可以看到Peggy经过A并从B出来,而无需透露单词.
但是这种证明会使任何人信服。因此,佩吉(Peggy)不想让其他人知道,她不能说自己与维克多(阴谋家)密谋。因为她甚至都不知道谁知道她的知识以及如何控制它.
第二个例子:一个有色盲的朋友和两个球
此类用于零知识证明身份验证的实验将需要两个大小相同但颜色不同的球。这个实验真的很受欢迎。 Mike Hearn和Konstantinos Chalkias首先介绍了这种新方法。您也可以使用两张彩色卡片进行此实验.
就像这样-假设您有一个色盲朋友和两个球。球需要为红色和绿色,并且尺寸相同。您的朋友认为他们是同一回事,并怀疑您的说法是不同的.
因此,您需要证明它们具有不同的颜色,而不必告诉他哪个是哪个.
您将球交给您的朋友,他将球藏在背后。之后,他随机拿出一个球让您看。然后,他将球放回去,然后再次随机选择球.
这次您也可以看到球。之后,他会问你是否切换了球。他将重复此过程一段时间以确保.
现在您已经不是色盲了,您可以肯定地告诉他是否切换了球。如果球的颜色相同,则正确回答的概率为50%。因此,在重复此过程之后,当您每次都能正确回答时,您的朋友就会被说服.
预期的概率将变为零,并且您将获得三个零知识属性.
但是请确保您的朋友不知道哪个是绿色,哪个是红色。这样,您将能够保留第三个属性“零知识”。
第四章:交互式零知识证明
零知识加密可以分为两种:
- 交互式零知识证明.
- 非交互式零知识证明.
让我们看看它们是什么.
交互式零知识证明的基础
这种零知识证明认证类型将要求对等方或任何计算机系统之间进行交互。通过交互,证明者可以证明知识,验证者可以验证知识.
这是零知识证明区块链的最典型场景。在这里,您将无需公开其理解就可以证明自己。但是,您也向与之互动的用户展示了它。因此,如果有人只是看着你们两个,那么他将无法验证您的知识.
尽管它是最好的隐私协议之一,但是当您想向多个人证明它时,仍然需要付出很多努力。这是因为您必须一遍又一遍地对每个人重复相同的过程,就像看着他们不同意您一样.
该协议将需要验证者进行任何形式的交互响应才能执行。否则,证明者永远无法独自证明它。交互式输入可以是挑战的形式,也可以是其他类型的实验。显然,该过程必须说服验证者知道该知识.
在其他情况下,验证者可以记录该过程,然后将其播放给其他人,以便他们也可以看到它。但是,是否真的会说服他人完全取决于他们。他们可能接受还是不接受.
这就是为什么交互式零知识证明区块链对少数参与者而不是一大群参与者更有效的原因.
第五章:非交互式零知识证明
非交互式零知识证明区块链是在这里向一个更大的人群验证一个人的陈述。不过,您不一定非要使用非交互式零知识证明区块链进行检查。通常,您可能能够找到任何可以证明您身份的受信任验证者来源.
但是,当您找不到任何人时,非交互式零知识证明区块链是必经之路.
数独挑战卡
数独是最困难的游戏之一,但规则简单。所有行,扇区和列都只需一次具有数字1-9.
在这种情况下,假设您知道此难题的解决方案,即使对于计算机也可能需要几天的时间。因此,如果您想出售解决方案,验证者将如何知道您没有欺骗他?您将不得不证明自己的知识,而无需向验证者透露解决方案.
让我们看看你怎么做.
解决方法
您将需要27张卡片,它们的编号从1到9。因此,27张卡片将包含数字1,然后另外27张包含数字2。总共,您将需要243张卡片.
现在,您必须在解决方案的相应框中放入三张卡。意思是如果该盒子的正确数字是五,那么您将在该盒子中放入三张数字为5的卡片.
在数独表中,您会看到一些答案始终可见。在这些框中,您将卡面朝上放置。在没有答案的盒子上,您将卡片颠倒放置.
现在,您需要证明自己已将所有卡放置在正确的位置而没有露出来。你必须:
从每一列中取出最上面的卡片,直到有九堆。对行和扇区重复相同的操作.
然后,您需要将每一堆洗牌,然后翻过来以显示数字.
您知道基本规则,从1到9的所有数字必须在每一行,扇区和列中出现一次。因此,如果您所有的桩号中只有1-9出现一次,则验证者将知道您有解决方案.
非交互可能是向很多人证明您的陈述而又不增加资源和成本的最佳方法.
第6章:解释零知识证明– zk-SNARKS解释
您现在必须已经听说过zk-SNARKS。有没有想过它到底是什么?好吧,zk-SNARKS解释的是一种使用非交互式零知识证明示例概念的技术。 Zcash利用这种形式的加密技术确保更好的隐私.
它实际上是零知识简洁非交互性知识论的首字母缩写.
该技术包含三种不同的算法:
- 密钥生成器: 密钥生成器设置一个参数来生成密钥对。在这里,受信任的源可以生成私钥或公钥对,然后销毁私钥部分。之后,使用公共部分生成另一个密钥对。在这里,一个将用于证明另一个用于验证.
- 证明: 证明者必须使用证明密钥和一些公共投入来证明他的知识。在这里,他将成为私人见证人,然后满足上下文以证明他的观点.
- 验证者: 验证将需要验证密钥来确保语句为真或假。他必须接受公众的意见和证明,以评估其正确与否.
除了这三个之外,zk-SNARKS还需要维护–
- 零知识: 验证者除了陈述是正确的事实之外不会学到其他东西。简洁:无论面临什么挑战,它都必须很小,以便人们可以在几毫秒内证明它.
- 非互动式: 用户只会将雄蕊发送给验证者,而不会发送其他任何信息。验证者将无法与证明者进一步互动.
- 争论: 该证明将保持零知识加密的稳健性,并受到多项式时间的约束.
- 知识: 没有可信赖的见证人,证明者和验证者将无法执行流程.
第七章:企业利用零知识加密
现在,您已经了解了零知识证明的所有知识,让我们来看看一些使用此协议的著名企业.
著名项目
-
零现金
大多数区块链平台都公开了两个对等方之间的交易。它不仅是区块链的劣势之一,而且还破坏了其增长。另一方面,Zcash可以提供全面的隐私保护.
这是一个开放源代码且未经许可的区块链平台,利用了零知识证明的精髓。交易过程被屏蔽。因此,它将在区块链上找到价值,发送者和接收者.
它也因引入zk-SNARKS而闻名,此后许多人跟随其发展.
阅读更多: 什么是Zcash?
-
ING
ING是一家荷兰银行,已经开始了新的零知识区块链。尽管他们推出了一些零知识系统的改进版本,但被称为零知识范围证明。在这一过程中,它们所需的计算能力大大低于所需的计算能力.
它与金融部门直接相关,例如抵押价值。您将能够证明自己有足够的薪水来获得抵押贷款,而无需透露您的薪水.
目前,它是开源的,但是它对其他金融区块链提出了相当大的挑战.
-
PIVX
该公司希望改变世界运作的典型方式。在一切都由他人控制和管理的系统中,PIVX打算为您的财务报表引入一个避风港。他们正在进行新的集成,他们将遵循零知识证明的示例.
在这里,唯一公开的是对汇款的确认。意思是,您会看到有人汇了钱,但是地址或时间安排被隐藏了。 PIVX通过其新的集成以及增强的隐私性确保了更快的交易速度.
-
零币
该公司利用Zerocoin协议提供额外的安全性和完全匿名的交易。 Zerocoin协议显然遵循零知识证明示例概念。然而, Zcoin提供可扩展性 许多区块链网络所缺乏的.
在这里,使用Zcoin,您将能够最大程度地保留自己的身份以及您在网络上所花费的费用。这是保护可替代性的好方法.
但是不要将它们与Zcash混淆。他们有不同的协议,彼此之间绝对不是分叉的.
知名厂商
-
StarkWare
StarkWare是另一家伟大的公司,它充分利用了零知识证明示例技术。但是它们似乎扭曲了典型的SNARKs协议。他们使用STARK技术而不是SNARK.
StarkWare旨在通过透明的交易方法来改善区块链的隐私和可扩展性问题。他们目前正在开发硬件和软件支持,以确保从STARK技术获得更好的输出.
这项新技术将消除隐藏的通货膨胀问题,从而消除可信任的设置。 zkSTARK是零知识可扩展透明知识论点的缩写。但是,即使隐藏的通货膨胀消失了,它仍然可以抵抗量子.
这项新的STARK技术可能成为SNARK的下一个阶段.
-
量子质量
这是利用零知识证明提供安全性的初创公司之一。 QED-it是一家以色列公司,能够在没有第三方注意的情况下处理机密数据。您可以集成到系统中以进行更好的数据管理.
他们的一些受欢迎的客户包括法国巴黎银行(BNP Paribas)和德勤(Deloitte)。主要目标是为企业提供隐私。在过去的两年中,他们改进了项目,开发了可以应对任何情况的全新SNARK系统.
他们的一些用例是实时风险评估,供应链,资产管理,预测性维护等等。.
第8章:在哪里可以使用ZKP?
ZKP或零知识证明用例需要能够与密码术和可信赖的设备一起使用。与其他设备相比,移动似乎是此处的正确选择。与浏览器相比,它们提供了一个安全的运行时环境。但是,它仍然没有风险.
但是主要的问题是您可以在哪里利用零知识证明用例?
-
讯息传递
在消息传递中,必须进行端到端加密。因此,没有客户端本身,没有人可以阅读您的私人消息。两个用户必须验证他们对服务器的信任,反之亦然。另一方面,ZKP提供了端到端信任,而不会泄漏任何其他信息。在ZKP的帮助下,没有人能够破解他们的方式来发送您的消息.
这是零知识证明用例之一.
-
验证
零知识证明可以帮助安全地传送敏感信息,例如身份验证信息。在此,ZKP可以为用户维护一个安全通道,以在不暴露其身份的情况下使用他/她的身份验证信息。因此,他将能够有效避免数据泄漏.
-
共享资料
无需第三方的注意就可以跨Internet共享数据非常重要。当您在网络上共享某些内容时,无论它们声称具有多大的保护作用,总会有一些风险.
有人总是可以在共享信息之间闯入或拦截—这是ZKP绝对可以提供帮助的地方.
这是零知识证明用例的另一个伟大的例子.
-
敏感信息的安全性(信用卡信息)
诸如银行对帐单或信用卡信息之类的敏感信息需要进一步的保护。银行保留信用卡历史记录。但是,当您向他们请求信息时,您必须与他们的服务器进行通信.
即使银行经过安全检查,但信用卡的历史记录仍然比平均数据敏感得多。在这种情况下,银行不仅可以将整个信息加密为一个整体,还可以进行阻止,从而可以提供更好的安全性.
由于银行只会操纵必要的区块而不会接触其他区块,因此您的历史记录将获得适当数量的安全层。 ZKP可以提供.
-
复杂文件
ZKP可以限制任何用户访问其无权查看的复杂文档。由于ZKP能够对数据块进行加密,因此您只需要操纵某些块即可进行访问,并限制对其他用户的访问.
这样,未经授权的人将无法看到您的文档.
-
储存保护
它可以为您的存储实用程序提供更好的保护。 ZKP配备了使黑客远离的协议。这样,不仅您的存储单元而且其中的信息也将被加密。更不用说访问通道也会受到过度保护.
-
文件系统控制
零知识证明协议可以保护文件系统中的所有内容。文件,用户甚至每次登录都可以具有不同的安全层。因此,在需要时可能是一个很好的用例.
所有这些零知识证明用例都可以在现实生活中使用.
阅读更多:零知识证明如何改变区块链?
第9章:实现零知识证明架构
在您想要零知识证明实施之前,您需要了解它所依赖的内容.
密钥包装过程
ZKP将单个数据流分成小块。这些块中的每一个都分别进行加密。在零知识证明的实现中,加密密钥将仅在用户身上,并且,他将能够对信息进行加密和解密。.
管理特权
密钥将存储在容器中。但是,如果用户想要更改存储密钥,那么他将不得不比较其所有权标签。如果它们匹配,那么他将能够对其进行更改;如果不匹配,它将保持不变。.
控制请求
您应该确保没有人能在您的零知识证明实施中添加文字。由于用户只能在区块链网络中访问它,因此您需要将每个操作转换为API命令.
这样,任何人都无法绕过您的安全措施.
减轻所有攻击
区块链不是一个完美的网络。即使它降低了攻击量,也无法完全消除它。因此,当您将ZKP集成到系统中时,请将其与其他措施结合使用。这样,您将摆脱可能危害网络的其余攻击。零知识证明实施确实需要这些方法才能正常工作.
零知识体系重要吗?
到目前为止,零知识证明已经证明自己能够处理企业级业务。并非所有人都喜欢公共分类帐系统,因此每个人都可以看到您的交易。是的,您确实可以在地址的帮助下获得匿名性,但是人们仍然可以跟踪地址.
另外,在存储其他敏感信息时,区块链也不是最好的主意。企业需要处理大量私人信息,而现有的隐私协议还不够.
解释的零知识证明只能改善区块链,但也可以消除所有负面问题。尽管许多企业对区块链不感兴趣;这是一个美丽的发明。但是借助“零知识”证明的解释,现在每个人都可以开始使用它了.
所以答案是肯定的,零知识系统无疑是关于区块链的重要因素.
第10章:结论
区块链有其自身的优点和缺点。尽管乍一看似乎很有前途,但确实确实有很多负担。这些故障正在减缓这项出色技术的发展.
但是,随着零知识系统(穿着闪亮盔甲的骑士)的引入,情况开始发生变化。现在区块链可以成为每个人都希望的超级保护平台.
如果您对ZKP等更基本的区块概念感兴趣,那么这个免费的基本企业区块链课程将派上用场.