当前位置: > 快讯 > 正文

什么是区块链零知识证明?零知识证明是什么?

 关于区块链中的零知识证明最近再次引起了兴奋,因为它们可能会增加区块链应用程序中的隐私和安全性。这个概念本身并不新鲜,因为密码学家多年来一直致力于零知识证明,但该技术现在才刚刚开始重新定义在线隐私概念。

运行一个ZKP,要满足以下这些参数:

完整性:如果陈述属实,那么诚实的验证者能被诚实的证明者说服。

可靠性:如果证明者不诚实,他们无法通过说谎来说服验证者相信陈述是可靠的。

零知识:如果陈述属实,那么验证者无法得知陈述的内容是什么。

举一个零知识证明的例子。让我们观察一下阿里巴巴洞穴是如何运作的。在这个例子中,证明者(P)对验证者(V)说,他知道洞穴后面暗门的密码,并提出在不向验证者透露密码的情况下证明此事。那么,其验证过程如下图所示:

-Image courtesy: Scott Twombly (YouTube channel)-

证明者可以走路径A或者路径B,假设他们一开始决定通过路径A到达暗门。同时,验证者V来到入口,他对证明者选择哪条路径并不知情,并宣称他们希望见到证明者在路径B出现。

如图所示,证明者确实出现在路径B上,但万一这仅是巧合呢?也有可能是证明者凭运气在出发时选择了路径B,却因不知道密码被困在了门口。

所以,我们需要通过多次试验来确定测试的有效性。如果证明者每次都能出现在正确的路径上,那么证明者的确可以在不向验证者透露密码的情况下,证明自己知道密码。

区块链中的零知识证明是如何应用的?

许多基于区块链的技术都在使用Zk-Snarks。事实上,以太坊在大都会阶段就计划引入Zk-Snarks,并且将其加入以太坊的功能库。Zk-Snarks是“零知识简洁无交互知识认证”的简称,是一种在无需泄露数据本身情况下证明某些数据运算的一种零知识证明。

以上内容可用来生成一个证明,通过对每笔交易创建一个简单的快照来验证其有效性。这足以向信息接收方证明交易的有效性,而无需泄露交易的实质内容。

这就实现了以下两种情况:实现了交易的完整性和隐私性。实现了系统的抽象性。由于无需展示整个交易内部的工作方式,因此系统非常易用。 因此,以上就是区块链使用的一些重要的加密函数。现在,让我们观察其第二个支柱,经济学。其他基于区块链的系统此后也将零知识证明并入其解决方案中,以便在验证交易的同时保护用户/交易隐私。让消费者重新控制他们的数据。

什么是零知识证明?

姓名:王镭璋 学号:19011110177 链接:https://zhuanlan.zhihu.com/p/69776256 https://zhuanlan.zhihu.com/p/104221636 https://zhuanlan.zhihu.com/p/5012104820世纪80年代初,麻省理工学院研究人员S.Goldwasser、S.Micali及C.Rackoff提出了“零知识证明”的概念。零知识证明,指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的,它实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。 证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。 举个例子, 假如A要向B证明自己拥有某个房间的钥匙,该房间只能用钥匙打开锁,而其他任何方法都打不开。B确定该房间内有某一物体,A用自己拥有的钥匙打开该房间的门,然后把物体拿出来出示给B,从而证明自己确实拥有该房间的钥匙。这就是零知识证明。 它的好处在于,在整个证明的过程中,B始终不能看到钥匙的样子,从而避免了钥匙的泄露。 再举一个更具体的例子: 如下图:洞穴里有一个秘密,知带蔽道咒语没行并的人能打开C和D之间的密门。对其他任何人来说,两条通道都是死胡同。Peggy知道这个洞穴的秘密。她想对Victor证明这一点,但是她不想透露咒语。下面是她如何使Victor相信的过程: 1.Victor 站在A点。 2.Peggy一直走进洞穴,枯迹到达C点或者D点。 3.在Peggy消失在洞穴中之后,Victor走到B点。 4.Victor向Peggy喊叫,要她: 从左通道出来,或者  从右通道出来。 5.Peggy答应了,如果有必要她就用咒语打开密门。 6.Peggy和Victor 重复第1~5步n次。 假设这个过程重复了十次,我们把这个例子放到刚才提到的交互式系统中,在Peggy知道咒语的情况下,那么她有很高的概率(1-1/2^10)让Victor相信她知道这个咒语(完备性),但是如果她不知道咒语,那么Victor相信的概率最大为 1/2^10,也就是有很高的概率Peggy没法欺骗Victor(公正性)。 进一步设想一下,如果Victor和Peggy上面的交互过程用摄像机记录下来,然后Victor拿给第三个人Carol看,Carol会相信吗,答案是否定的,因为Peggy和Victor完全可以事先商量好进入哪个通道,从哪个通道出来,这样Peggy在不知道咒语的情况下也可以正确的按照Victor的要求从通道走出来。或许他们不这么做,Peggy走进其中一条通道,Victor发出一个随机的要求,如果Victor猜对了,好极了;如果他猜错了,他们会从录像带中删除这个试验。总之,Victor获得一个记录,它准确显示与实际证明Peggy知道咒语相同的事件顺序。 这就说明了两件事情,其一,Victor不可能 使第三方相信这个证明的有效性;其二,它证明了这个协议是零知识的。在Peggy不知道咒语的情况下,Victor显然不能从记录中获悉任何信息。但是,因为无法区分一个真实的记录和一个伪造的记录,所以Victor不能从实际证明中了解任何信息——它必定是零知识。 零知识证明满足的性质 (1)正确性。P无法欺骗V。换言之,若P不知道一个定理的证明方法,则P使V相信他会证明定理的概率很低。 (2)完备性。V无法欺骗P。若P知道一个定理的证明方法,则P使V以绝对优势的概率相信他能证明。 在零知识协议中,除满足上述两个条件以外,还满足下述的第三个性质。 (3)零知识性。V无法获取任何额外的知识。 零知识证明的优点 安全,随着零知识证明的使用,安全性会大大提高。 高效,零知识证明过程计算量小,双方交换的信息量会大大减少,因此较为高效。 零知识证明能够保障数据的安全性,能够解决很多隐私问题,而且能让双方交换的信息量减少,在各个领域都能有较好的应用。 零知识证明的应用 零知识证明最初经常被应用于身份验证,数字签名,认证协议等,而后, 区块链的出现给零知识证明的应用提供了更多新的方向。 它可以解决区块链中的隐私问题和安全问题,可以在不知道客户密码的前提下,进行客户登录的验证,即使服务器被攻击,由于并未存储客户明文密码,用户的账户还是安全的。 运用零知识证明技术来保证个人信息的隐私安全。 目前的数据以亿为计量单位的,必须对链上的数据进行加密储存, 在大部分的数据应用场景中,运用零知识证明,保证链上输出的有效性和安全性。 数据使用者只可以获取到与其业务相关的有限信息字段,确保数据使用者难以获取完整有效的明文用户信息, 意义 区块链兴起之后,密码学受到更大的重视,零知识证明作为一种密码学方法,热度也提高了很多。但是零知识证明到底有什么现实意义,可以用在哪些场合呢? 以前零知识证明还有一个名字叫“最小暴露证明”,意思是可以在证明一些命题的同时,对信息进行非常好的保密,这个特点显然对保护隐私是有帮助的。例如,我现在要贷款,贷款公司要求我的月收入是大于两千元的,但是我不想暴露具体我的工资是多少,这个时候就可以用零知识证明的方式来达成。 另外在区块链上,也可以用零知识证明来达成隐藏转账信息的作用。熟悉比特币的同学知道,比特币上每一笔交易都是透明的,谁给谁转了多少钱都是公开可查的。但是,通过零知识证明技术实现的隐私币,例如 Zcash 就可以达成隐藏交易信息,但是同时能让全网验证交易合法性的效果。 Web3.0 时代是个人持有数据的时代,是隐私需求非常高的时代,这个背景下,零知识证明在很多场景下都会非常有用。 结论 这就是对零知识证明的基本介绍了。我们要记住的是,零知识证明是一种密码学方法,示证者要在验证者对信息本身“零知识”的前提下去证明跟信息相关的某个命题是成立的。在 Web3.0 的数据经济时代,个人隐私问题尤其突出,零知识证明会大有用武之地。

什么是零知识证明?有什么用

  零知识证明指的是证明者能雀漏够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确顷厅烂的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采伏燃取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。大量事实证明,零知识证明在密码学中非常有用。如果能够将零知识证明用于验证,将可以有效解决许多问题。

什么是零知识证明

80年代初,Goldwasser等人提出了零知识证明这一概念.从本质上讲,零知识证明是一种协议.所谓协议(Protocol),就是两个或两个以上的参与者为完成某项特定的任务而采取的一系列步骤,包括以下三个特征:1.协议自始至终是有序的过程,每一步骤必须依次执行,在前一步骤没有执行完之前,后面的步骤不可能执行.2.协议至少需要两个参与者,一个人可以通过执行一系列的步骤来完成某项任务,但它不构成协议.3.通过执行协议必须能够完成某项任务.零知识证明必须包括两个方面,一方为证明者,另一方为验证者.证明者试图向验证者证明某个论断是正确的,或者证明者拥有某个知识,却不向验证者透露任何有用的消息.零知识证明目前在密码学中得到了广泛的应用,尤其是在认证协议、数字签名方面,人们利用数字签名设计出了大量优良的算法.用一个关于洞穴的故事来解释零知识.洞穴中有一个秘密,知道咒语的人能打开 C 和D之间的密门,对其它人来说,两条通道都是死胡同.Peggy 知道这个洞穴的秘密.她想对 Victor 证明这一点,但也不想泄露咒语.下面是她如何使 Victor 相信的过程:(1) Victor 站在A点.(2) Peggy 一直走进洞穴,到模裤裂达C点或者D点.(3) 在 Peggy 消失在洞穴中后,Victor 走到B点.(4) Victor 向 Peggy 喊叫,要她:从左通道出来,或者从右通道出来.(5) Peggy 答应了,如果有必要她就用咒语打开密门.Peggy 和纯坦 Victor 重复第(1)至第(5)步 n 次.假设 Victor 有一个摄像机能记录下他所看到的一切.他记录下 Peggy 消失在洞中情景,记录下他喊叫 Peggy 从他选择的地方出来的时间,记录下 Peggy 走出来.他记录下所有的 n 次试验.如果他把这些记录给 Carol 看,她会相信 Peggy知道打开密门的咒语吗?在不知道咒语的情况下,如果Peggy和Victor事先商定好 Victor 喊叫什么,那将如何呢?Peggy 会确信也走进 Victor 叫她出来那条路,然后她就可以在不知道咒语的情况下在 Victor 每次要她出来的那条路上出来.或许他们不那么做,Peggy 走进其中一条通道,Victor 发出一条随机的要求.如果 Victor 猜对了,好极了.如果他猜错了,他们会从录像中删除这个试验.总之,Victor 能获得一个记录,它准确显示与实际证明 Peggy 知道咒语的相同的事件顺序.这说明了两件事.其一是 Victor 不可能使第三方相信这个证明的有效性;其二,它证明了这个协议是零知识的.在 Peggy 不知道咒语的情况下,Victor 显然是不能旦闭从记录中获悉任何信息.但是,因为无法区分一个真实的记录和一个伪造的记录,所以 Victor 不能从实际证明中了解任何信息-它必是零知识.也就是说,Peggy 在向 Victor 证明的过程中没有泄露任何有关秘密的知识,称为零知识.

发表评论

  • 人参与,条评论

热门阅读

最新文章

取消
扫码支持 支付码