美文网首页
零知识证明---简易版

零知识证明---简易版

作者: 鱼之乎 | 来源:发表于2018-06-25 17:42 被阅读0次

    版权声明:本文授权BH好文好报群摘编、推广、转载请声明


    前言

    现实生活中,我们出行必不可少要带上身份证,因为买票住酒店统统都需要。小小的一张身份证卡,即包含了个人的所有信息,也具有法律效应。因此它对每个社会人很重要,也因为有太多隐私,我们也总担心它丢掉或被盗。但是现在有了区块链技术,再配合零知识证明的运用,或许可以解决我们的困扰。因为不懂什么是零知识证明,所以查阅了一些文章帮助自己理解。下面这篇文章我觉得比较通俗易懂,特翻译出来,如果你也对零知识证明感兴趣,希望能为你的理解助力。


    原文标题:A zero knowledge proof for Where’s Wally

    https://medium.com/swlh/a-zero-knowledge-proof-for-wheres-wally-930c21e55399

    By Patrick Woodhead

    原文翻译如下:

    在区块链世界里,零知识证明--这一话题有很高的热度。

    比如:智能合约可以用零知识证明来隐去一个合约到底是怎样被触发的,而只是披露一个事实--就是这个合约已实现了。

    So,零知识证明到底是什么呢?

    A zero knowledge proof is a protocol between two parties, a prover and a verifier, where the prover, who makes some claim, can convince the verifier that their claim is valid, whilst revealing nothing more than the validity of their claim.

    是不是晦涩难懂呢?

    与其逐句解释,不如用一个有趣的故事来说明,等你再回头读这段话时,也许你就能理解了。

    零知识证明的故事背景大多是这样的:

    1,有一个很难解决的问题

    2,对问题的陈述

    在我讲的这个故事里,包含了:

    1,问题:Where’s Wally(Wally在哪?)

    2,对问题的陈述:一张专门的Where’s Wally拼图

    角色

    好吧,下面是我们故事的主角。首先是Peggy,the prover(证明者)

    证明者Peggy喜欢提出论断。自然了,她期望人们都相信她的推断是有效的。但是这也给她带来了困扰,因为她不想泄露她推断的细节,不想为了证明什么就把她辛苦掌握的知识透露出去。

    在我们故事里,Peggy的论断是这样的:I have found Wally in the above Where’s Wally puzzle.我已经在wally在哪的拼图里找到了Wally的位置

    我们故事里的另一个主角是Vitcor, the verifier(验证者)

    他喜欢听到Peggy的论断,但他更喜欢确信Peggy没有糊弄他,因为他可不想自己像个傻瓜似的被耍。

    于是他想知道Peggy是否真的在拼图里找到Wally的位置了。

    So.....

    也就是说证明者Peggy提出了知道Wally在哪的论断,并且向Victor,验证者炫耀。

    按传统验证的方式,有一个很明显的方式可以让Peggy来验证她的论断。那就是她只需要在拼图上指出Wally的位置就可以了。这样一来,验证者Victor就会完全相信Peggy没有说谎了。但是,Peggy(证明者)并不喜欢以这种方式来验证,因为这样的话,Victor就轻易知道拼图中Wally的位置了。

    零知识证明的方法阐述

    如果证明者Peggy不相信验证者Victor,或者不想泄露她的秘密知识。如果验证者Victor也知道在哪里找到Wally,那么Peggy解决问题用的知识就没什么价值了。当然,Peggy更不希望他离开后欺骗其他人说是他自己找到了Wally的位置。

    因此,她就想,我是否仍然可以说服验证者Victor:我知道拼图里Wally 的位置,却不用透露Wally 的位置信息吗?我能否以零知识说服他?

    SO, 证明者Peggy需要隐藏的是什么呢?

    对于任何零知识证明来说,最好先想想验证者Victor已经掌握的信息是什么。

    本故事里,验证者Victor已经掌握的信息有:

    1,Wally在拼图中某个位置。

    2,Wally可能在拼图中的任一位置。

    因此,当Peggy向Victor展示她的解决方案时,Peggy只需要遮挡住Wally可能在拼图中占据的所有其他可能位置,。只要Peggy传达出的信息没有超出Victor已知信息范围,她就会很高兴。所以她提出了以下方案(或协议)。

    协议

    证明者Peggy出去找了一张黑色卡片,长宽至少是Where’s Wally拼图的两倍。然后她在卡片的中间切出一个Wally形状的洞。

    然后,她将Where's Wally拼图(放在一张纸上)粘贴到黑色卡片的背面,以便拼图上的Wally正好卡在卡片中间Wally孔上。重要的是,验证者Victor,他站在黑色卡片前面,无法看到Wally在拼图中以外的部分,即便Peggy正在把它往卡片上贴。 但是,一旦Peggy解决了这个难题,Victor就可以肯定他没有被欺骗,因为如果Peggy不知道Wally在哪,她就不可能通过这个洞展示Wally。 (显然,Peggy可以用一些狡猾的手段来欺骗Victor,例如,在她的口袋里藏着打印出来的Wally图像,但让我们假设所有这些方法Victor都已考虑了。)因此,当验证者Victor通过洞看到Wally时,他相信证明者Peggy的说法是有效的(协议的这种属性在学术上被称为soudness正确性)

    Peggy也很高兴。由于黑色卡片足够大,所以当她将拼图粘贴到黑色卡片背面时,不管Wally在拼图中哪个位置,都不会透过黑色卡片被看到。

    因此,这个协议满足了证明者Peggy的愿望:她能让验证者Victor知道她的验证结果(学术上叫完整性),同时也没向Victor披露超过他已知的关于Wally的信息(学术上称为零知识)。

    Peggy已经验证了她论断的有效性,并且是以零知识的方式,也就是零知识证明。

    此时你若重读最上面那段英文,是不是好理解多了。

    零知识证明在现实中如何被运用?

    回到我们开始的地方,智能合约要求某人要满足条件A或B或C,才能执行合约。但“履行者”可能不希望透露他们确实满足这些条件中的哪一个。也许这些信息很敏感。

    那么,这类似于将Where’s Wally拼图分成与Wally大小相同的N个盒子,Peggy运用零知识证明她知道Wally在哪个盒子中:盒子1或盒子2或盒子3或...或盒子N 。

    对用零知识证明的智能合约,验证者们能看到合同可以被执行了,但不会知道更多信息了,除了他们事先已经知道的。

    为什么有人希望隐藏满足合约被触发的信息呢?也许是因为它涉及了Peggy的身份信息,签名或是其它她个人敏感的隐私。

    点评:

    零知识证明就是向别人验证一个结果,只能对方看到那个正确的答案,至于验证过程中用到的方法或步骤统统不告诉。就好比证明能做出XX菜的就是真正的厨师,于是那个厨师只需要把那到菜端到你面前给你吃就行了,至于怎么做出来的统统保密,不给人看到。当然个人觉得这种方式能有效,也在于证明者和验证者都很诚实且相信对方,重要的是验证者接受这种验证方式。

    好吧,希望你也理解零知识证明了,不用给我发好人勋章,哈哈哈哈。。。

    温馨提示:

    如需对本文转载,请注明原文出处,作者以及转载出处和译者,谢谢配合!!!

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    早赞声明:为方便早赞、避免乱赞,“BH好文好报群”为点赞者、写作者牵线搭桥,实行“先审后赞、定时发表”的规则,也让作品脱颖而出、速登热门!加群微信:we01230123(天平)

    相关文章

      网友评论

          本文标题:零知识证明---简易版

          本文链接:https://www.haomeiwen.com/subject/xpnyyftx.html