【中币交易所】如何做到“神秘交易”?
作者 | 小六
编辑 | 非林
排版 | 小柒
QA&
当你向别人介绍区块链的时候,你会怎么说?
“区块链是一个去中心化的分布式账簿,安全透明无风险,交易透明都可查。”
交易透明化,那就以为意味着你在什么时候,什么地方,花了多少钱,对于所有人都是公开透明的。也就是说***查你的帐几乎零难度,就问你慌不慌!
好在上帝关门之后还记得为我们打开一扇窗。零知识证明帮区块链掰开了这双扼住命运喉咙的手。
配表情包。是你给了我这条命。
其实零知识证明出生在区块链之前,就像 BFT(拜占庭将军问题)一样,是在区块链出世之前就有的技术,这一技术本身并不新鲜,因为解密者多年来一直在研究零知识证明,但这项技术直到现在才有机会重新定义在线隐私的概念,所以小编认为
零知识证明(Zero-Knowledge Proof)和区块链应属于互帮互助,团结进步。
零知识证明指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。它是一种基于概率的验证方法,证明者(prover)与验证者(verifier)进行_n_次交互式信息传递,最终在不泄漏机密的情况下使得_verifier_相信_prover_的话。
张小敬凭什么相信李必呢?
李必也并没有向张小敬展示出来
他到底能有什么能力免他死罪
但是张小敬却选择相信了李必
我们说,零知识证明有三个关键的性质。
完整性:_prover_是诚实的情况下,_verifier_最终会被 prover 说服。
完备性:在_prover_和_verifier_都 是诚实的情况下,prover 通过一种完 备的证明方法以绝对优势的概率说服 verifier。
零知识性:也就是隐私性,_verifier_除了知道_prover_没骗他之外不知道任何额外的信息。
李必吟诗一首表明自己的志向( 完备性 )最终说服了张小敬( 完整性 ),张小敬听完这番话后也并不知道李必将用什么办法赦免自己的死罪( 零知识性 )。
接下来,小编汇总了四个例子来帮助大家理解 Zero-Knowledge Proof:
1: 数独
P(prover)说我知道九宫格的答案,那么_V_(verifier
)只需动动手指测验随机行或随机列或九个小正方形中的数字组成就可以了,并不需要知道数独的解。如果进行多次测验后,每次的结果都是 1~9,那么_V_
就有可能能够判断 P 是否真的知道数独的解。
2: 三色图问题
选择三个颜色,使得相邻区域的颜色都不相同。
P_说他知道一个三色图问题的答案,那么_V
只需要验证相邻两个区域的颜色不同就可以了,并不需要知道这个三色图到底长什么样。如果进行多次验证后,每次的结果都是相邻两区域的颜色不同,那么 V 就有可能判断 P
是否真的知道数独的解。
大家有没有发现这个方法有一个_bug_,V_每次验证后就会知道两个区域的颜色,那么经过多次验证之后,_V
便知道所有区域的颜色,也就是知道了三色图的解,这与我们上面所说的零知识性相违背啊。所以_P_不能这么做。
那_V_要怎么办呢,其实他只需每次在_V_验证之后,将三种颜色用其他三种颜色替换就_ok_了。例如将“橙色——红色”,“蓝色——黑色”,“绿色—
—紫色”,这样便生成了一种新的三色图,虽然颜色不同,但仍然是原问题的有效解解。V
每验证成功一次,便有 50% 的把握相信 P 知道三色图的解,验证 N 次后,便有“(1-(0.5)^N)”的把握相信 P 知道三色图的解。
3: 密码问题
如图这是一个环形走廊,在通道_A_和_B_之间有一扇门,P_知道打开这扇门的密码,那么_P_在不告诉_V
密码的情况下如何才能说服 V 使其相信自己能打开这扇门呢。
P_在分叉路口选择_A、B_中的任意一条路,此时_V_在路口外面,对_P_选择了哪一条路一无所知。过了一段时间之后_V
进入到路口大喊一声_A/B_,之后_P_如果能从相应的走廊里走出来,那么 V 将有 50% 的把握相信_P_
知道密码,而且此时 V 对密码仍然是一无所知。重复_N_次之后,V_将有“(1-(0.5)^_N)”的把握相信 P 知道密码,N
越大,把握也就越大,比如说当_N_等于 5 时,可靠性就等于 96.9%。
简单点说,零知识证明解决的问题就是:我如何在你不知道我是否知道这个事情的情况下 , 知道我确实知道这样的事情。
但是以上三个例子都属于交互式零知识证明,这种简单的验证方式并不能使人们相信证明者和验证者都未做伪证。
在九宫格游戏中,两者可能会事先串通,以便证明者在不知道答案的情况下通过验证。
如果他们想说服第三方相信这个结果,验证者还必须证明验证过程是随机的,并且它不会将答案泄露给证明者。因此,第三方很难验证交互零知识证明的结果,需要第三方的参与,等额外的努力和成本才能向多人证明某件事是真实的。
在区块链上的交易中,比如说比特币和以太坊网络,由于去中心化的设置,交易公开透明,别人有可能通过网络上的各种信息、和现实世界发生的交互记录等将比特币地址和真实身份对应起来,也因此具有隐私暴露的隐患。
Zerocoin
(零币协议)将零知识验证用于铸造零币和赎回零币过程中,以隐藏了一笔交易对应的发送方和接收方信息,从而无法通过交易历史分析来获得用户真实身份。这一巧妙的设计既保护了隐私,又能够验证你确实是花了这笔钱。
在_Zerocoin_里,交易的金额是可以知道的,采用了_zksnarks_(zero knowledge Succinct Non-interactive Argument of Knowledge)技术的_Zerocash_甚至连交易金额都可以隐藏起来。
这篇文章就到此结束了,相信看完的朋友们对零知识证明应该有了一定的了解。下一篇文章,小六将为大家带来零知识证明的后续——非交互零知识证明以及Zerocoin &Zerocash;。
来源链接:mp.weixin.qq.com
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。