一、什么是零知识证明
姓名:王镭璋
学号:19011110177
链接:
20世纪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的数据经济时代,个人隐私问题尤其突出,零知识证明会大有用武之地。
二、零知识证明的特性是什么
零知识证明主要有三个属性
完整性-如果示证者知道陈述,那么他可以说服验证者。
正确性-如果示证者不知道该陈述,那么他只能以很小的机率欺骗验证者。
零知识-验证者即使行为不诚实,也不会从示证者知道该陈述这一事实中得知任何其他讯息。 FINTOCH主打的零知识证明与多重签名技术,所结合的慧壁(HyBriid)区块链安全技术,就包含了以上三种特性。还不明白自己百度下。
三、区块链和零知识证明在信用系统中的作用方式
区块链中的零知识证明在隐私保护方面起重大作用,它在信用系统中自然不例外,但在系统中的哪个环节以及以何种方式发挥作用却是一个值得思考和研究的问题。
第一,信用问题,不能完全依赖技术上的可靠,有些问题政府权威就足够,比如户籍与身份信息,这些并无必要有进一步的追问。
第二,区块链存证的使用场景,应该是那种存在较长的数量化的证据链条的场景,比如根据流水统计月度年度汇总,保证汇总的计算过程没有欺诈。而流水明细是在证据链的上游,时间上是在事前,在上游作假,提前几个月几年作假,对攻击者计划能力以及作假成本都要高的多。高到一定程度,从经济学意义上就具有达到防止欺诈经济可行性。
事实上这里涉及到前文所说领域事件在链上的闭合度问题。对于几乎没有可能,或者在可见未来不具备完全闭合的现实可能性的领域,闭合度是一个有灰度级别的问题,如果沿事件的逻辑链条向上游追溯将其上链,达到一定程度使得攻击者的攻击变得相当或极度困难,区块链应用就会产生价值,并不要求完全的闭合,这样区块链的价值领域就会突破虚拟币以及去中心化金融defi这类完全闭合于链上的系统,得以扩展。这个逻辑并不限于信用系统,而适用于区块链与领域结合应用的一般逻辑。再举一例,溯源系统到底是否能够达成防伪的作用,这个问题取决于溯源在证据链条的上溯深度是否足以造成作假者的困境,不考察这一点,仅仅是形式上使用了区块链存证是没有意义的。
所以我们几乎可以得到一个定理:
区块链在领域应用中的价值水平与证据链的上溯深度成正比例关系。
然后随之而来的第二个问题是:沿着证据链的反向上溯,越是上游越接近主体(公民隐私或组织的商业机密)隐私。这个问题的解决就是零知识证明的作用领地,也是它的作用方式。很多零知识证明的应用价值含混不清,现在我们把它放在证据链条的上下文中加以考量就会清晰起来:
1. 零知识证明是用来处理数量化的证据链追溯过程中,在不泄露上游证据链明文细节的前提下完成追溯,既发挥了区块链沿证据链存追溯的作用,又保护了隐私。
2.对于没有追溯必要的场景,证据链不存在,零知识证明的作用与意义也是不明确的。比如一般身份户籍信息,行政权威应被视为可信,并无追溯必要。注意这里说的证据链并非物理意义上的因果关系,而是经过系统应用目标的价值取舍。
总结一下:
1.用区块链技术保留证据链上游。2.证据链越是上游越接近公民隐私,使用零知识证明来保护隐私
1.参考MIT媒体实验室的zkledger,使用区块链结合零知识证明来处理公民和组织的财务与税务等流水的汇总报告问题。
2.技术上需要解决的问题是,zkledger的场景中,很有限的几个银行的大额交易,数据量少,而用于公民个人场景,数据量巨大,要找到方法解决性能问题。
本站所有软件信息均由用户上传发布,版权归原著所有。如有侵权/违规内容,敬请来信告知邮箱:764327034@qq.com,我们将及时撤销! 转载请注明出处:https://www.ssyg068.com/biquanzx/9966.html
发表回复
评论列表(0条)