专栏名称: 零识区块链
区块链创业公司首发阵地 投资机构必读公众号
目录
相关文章推荐
请辩  ·  如果你不会投资,你就这样做 ·  昨天  
白话区块链  ·  战略ETH储备:以太坊的新叙事之战 ·  昨天  
请辩  ·  我如何消除内耗? ·  2 天前  
51好读  ›  专栏  ›  零识区块链

你可以证明任何事情:一个更优的零知识证明Bulletproofs

零识区块链  · 公众号  · 区块链  · 2018-03-28 18:25

正文

请到「今天看啥」查看全文



了解了零知识证明的概念,那么它与区块链技术、比特币有什么关系?


我们不会像阿里巴巴遇到强盗,但是我们生活中也想解决类似的问题,现实中最主要的问题就是怕信息被盗用。


因为现实中大量的秘密被用来鉴别用户的身份,如果披露了某个秘密给对方,通常意味着对方有能力冒充你的身份。因此,虽然直接把秘密提供给对方是最简单的验证方式,但是大部分情况下都不能这样做。


一个更具体的例子是在比特币中实现隐私交易。


在比特币网络中,用户需要将交易明文广播给所有矿工,由他们来校验交易的合法性。但是有些情况下,基于隐私的考虑,又不想把交易的具体内容公布出来。这就形成了一对矛盾。

解决这个矛盾的关键思路是:


校验一个事件正确与否,并不需要验证者重现整个事件。


比如,验收一款软件,通常只要看最终测试结果是否通过即可,并不需要把整个软件开发过程的每一个细节都重放一遍。阿里巴巴给强盗的提议,其实也是类似一个验收测试。


对于比特币的例子,一笔转帐交易合法与否,其实只要证明三件事:


1、发送的钱属于发送交易的人

2、发送者发送的金额等于接收者收到金额

3、发送者的钱确实被销毁了


整个证明过程中,矿工其实并不关心具体花掉了多少钱,发送者具体是谁,接受者具体是谁。矿工只关心系统的钱是不是守恒的。



在交互零知识证明的研究中有两种基本模型。一种是GMR模型,在这种模型中,证明者具有无限的计算能力,验证者具有多项式时间的计算能力。需要证明的是语言成员问题,即输入I是否是语言L中的一个成员。GMR模型不是真正的零知识证明,这是因为在证明中,证明者向验证者揭露了有关知识的1比特信息,即I∈L是否成立。但除此之外,再没有其他任何附加的信息泄露给验证者,通常称这种交互零知识证明为成员零知识证明或定理零知识证明。


另一种是FFS模型,在这种模型中,证明者和验证者均具有多项式时间的计算能力,证明者的目的不是向验证者证明I∈L,而是证明他知道I是否属于L。FFS模型是真正的零知识证明,因为在证明中,验证者没有得到任何信息,他连I∈L还是I  L都不知道,但他相信这个证明,通常称这种交互零知识证明为知识零知识证明或身份零知识证明。


从实用角度考虑,要保证用户身份识别的安全性,识别协议至少要满足以下条件:识别者A能够向验证者B证明他的确是A。在识别者A向验证者B证明他的身份后,验证者B没有获得任何有用的信息,B不能模仿A向第三方证明他是A。



理解了上面这些基础知识,我们要开始进阶了


敲黑板


一个更优的零知识证明——Bulletproofs?


在2015年我们宣布机密交易(CT)作为侧链Elements Alpha的主要特征。该特征用Pedersen commitments取代了交易金额,这是一种 隐藏金额 的加密工具,同时保留了 任何人验证在特定交易内余额的能力。


CT面临的主要难题是让它交易变得非常大而且验证缓慢,因为它要求每个交易输出包含一个rangeproof,这是一种零知识证明,证明金额太小而不会溢出。普通数字签名小于100个字节,并且只需不到100微秒的时间就可以验证,而 rangeproofs的大小是几千个字节,并需要几个毫秒才能验证。实际上,rangeproofs是使用它们的任何交易中绝大部分的交易数据。


尽管我们的rangeproofs,基于Borromean环形签名,在文献中是最快的和最小的,但对于我们需要的范围大小(range sizes)和无信任的环境下,它们仍然非常的大。







请到「今天看啥」查看全文