【科普】一文读懂零知识证明(一)

一般来讲,区块链中的隐私支付涉及的主要有这么几个隐私方面的问题:

交易发起者和接收者的隐私:指让攻击者通过分析区块链或者分布式账本上的信息无法或很难推断出交易发起者和接收者身份。
交易金额的隐私:指攻击者通过分析区块链无法获得具体交易金额的有用信息。
交易安全性:由于区块链系统是去中心化的,所以需要考虑如何防止双花攻击。

现有的各类匿名币则是为了解决这些问题,采用了多种匿名手段。其中不得不涉及到一个名词“零知识证明”。

接下来的几篇文章将深入浅出地为大家介绍所谓“零知识证明”究竟是一个什么概念。

四种常用匿名手段
1)通道(Channels)
交易双方运用智能合约创造了一个支付通道。其中一方便通过它,向另一方发起执行包含交易的智能合约的请求的这样一个过程。

在发起以后,交易都是在链下进行,支付操作也发生在线下。作为交易的两方,只有A和B才能掌握到交易其中的详细信息,通过这一通道发起的交易,和票据交易类似,只有其中任何一方才能进行彼此验证、查看和签名。每一笔交易,都需要A签名发出,经由通道被B得到,再签名验证。

2)混合器(Mixers)
简单的说就是将几个互不相干的交易混合到一起,混淆交易的输入与输出,这样其他人就不知道记录在区块链上的交易记录到底哪一个是输入,哪一个是输出了。不过存在第三方中心化问题,可引入智能合约解决。

采用了混合器解决方案之后,还能防止一个用户创造过多的账户来达到攻击的目的,原理即为用这种算法来提供隐私性的保护,使得在混合器解决方案中,用户和账户之间的一致性和有限性得到了保证。

3)环签名(Ring Signature)
环签名是一种特殊的群签名组成的协议。在其中,你需要证明的是,你拥有着这组群签名中的任意一个签名的签署权。在这种情况下,你可以告诉别人,这里有五个签名,其中有一个是你自己的签名。

这样,你传送了一段信息给别人,就能够通过这组环签名中专属于你的签名来证实你就是你,不可能是别人。但是,你仅能证明你的签名存在于这组环签名之中,不能证明确切哪个是你的签名。

4)零知识证明(Zero knowledge proofs)
零知识证明可以看作数字签名和加密两种概念的推广和结合。下文将具体介绍。

零知识证明的定义
零知识证明属于密码学范畴。提出时间为20世纪80年代初(1985年)。

分类:零知识证明分为交互零知识证明和非交互零知识证明。

交互:证明者和验证者之间必须进行交互。
1)需实时交互,交流信息
2)一对一交互,证明效率太低
3)需双方在线

非交互:用一个短随机串代替交互过程并实现了零知识证明,非交互零知识证明的一个重要应用场合是需要执行大量密码协议的大型网络。
1)只需要证明者给出了证明,后续不需要交互
2)任何人可以验证是否正确,但不能完全由一方设计

定义:证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。(相当于通过绕圈子的方式证明,中间包含对有用信息的推导过程)

实质:一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。

满足属性:1)如果语句为真,诚实的验证者(即正确遵循协议的验证者)将由诚实的证明者确信这一事实。(完整性)
2)如果语句为假,不排除有概率欺骗者可以说服诚实的验证者它是真的。(可靠性)
3)如果语句为真,证明者的目的就是向验证者证明并使验证者相信自己知道或拥有某一消息,而在证明过程中不可向验证者泄漏任何有关被证明消息的内容。(零知识)

猜你喜欢

转载自blog.csdn.net/weixin_43465777/article/details/106114766