美文网首页
零知识证明学习

零知识证明学习

作者: 多森老师 | 来源:发表于2017-10-08 13:58 被阅读181次

学习区块链过程中突然发现密码学的原理在里面起到了非常关键的作用,这里就谈谈其中最重要的一条密码学原理:零知识证明。

先说说概念:零知识证明,指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的 。
下面讲两个故事加深下理解:

故事一:阿里巴巴的故事
当强盗向他拷问打开山洞石门的咒语时,他对强盗说:“你们离我一箭之地,用弓箭指着我,你们举起右手我就念咒语打开石门,举起左手我就念咒语关上石门,如果我做不到或逃跑,你们就用弓箭射死我。”

强盗们当然会同意,因为这个方案不仅对他们没有任何损失,而且还能帮助他们搞清楚阿里巴巴到底是否知道咒语这个问题。阿里巴巴也没损失,因为处于一箭之地的强盗听不到他念的咒语,不必担心泄露了秘密,而且他确信自己的咒语有效,也不会发生被射死的杯具。

强盗举起了右手,只见阿里巴巴的嘴动了几下,石门果真打开了,强盗举起了左手,阿里巴巴的嘴动了几下后石门又关上了。强盗还是有点不信,说不准这是巧合呢,他们不断地换着节奏举右手举左手,石门跟着他们的节奏开开关关,最后强盗们想,如果还认为这只是巧合,自己未免是个傻瓜,那还是相信了阿里巴巴吧。

“零知识证明”说的是示证者向验证者表明他知道某种秘密,不仅能使验证者完全确信他的确知道这个秘密,同时还保证一丁点秘密也不泄露给验证者。阿里巴巴的这个方案,就是认证理论“零知识证明”的一个重要协议。

故事二:身份认证

A拥有B的公钥,A没有见过B,而B见过A的照片,偶然一天2人见面了,B认出了A,但A不能确定面前的人是否是B,这时B要向A证明自己是B。这就是一个身份认证的过程。可以这么来做:A给B一个随机数,B用自己的私钥对其加密,然后把加密后的数据交给A,A用B的公钥解密,如果能够得到原来的随机值,则证明对方是B,以上过程就是一个零知识证明。

而我们目前产品中使用的身份认证方式与这个稍有区别:B是用自己的私钥对随机数HASH后进行签名,签名结果与公钥组成PKCS7包给A,A解析出公钥对签名结果进行签名验证。A的角色为服务端,B为用户。

现在才发现这其实这就是一个零知识证明。

相关文章

  • 零知识证明

    本周优壹组织的学习中学习到了加密相关的知识,其中出现了零知识证明,做了一些检索以期解惑。 如何理解零知识证明 零知...

  • 区块链基础知识学习之专业名词(二)

    继续学习,希望对大家有所帮助。 1、零知识证明 零知识证明由S.Goldwasser、S.Micali及C.Rac...

  • 阿里巴巴四十大盗教你零知识证明

    在学习区块链知识过程中,有一个名词经常出现——零知识证明。其中我们熟知的大零币ZEC就是采用的零知识证明。 基本概...

  • 零知识证明学习

    学习区块链过程中突然发现密码学的原理在里面起到了非常关键的作用,这里就谈谈其中最重要的一条密码学原理:零知识证明。...

  • 2018.4.21清华学习笔记

    一、什么零知识证明(Zero—Knowledge Proof) 零知识证明(Zero—Knowledge Proo...

  • Filecoin白皮书分析

    预备概念 零知识证明(Zero-knowledge proof) 零知识证明指的是证明者(prover)向验证者(...

  • 零知识证明

    你的手里有红绿两个颜色的小球,假如你有一个对颜色不敏感的朋友,你要如何在不告诉他小球具体颜色的情况下,让其相信那是...

  • 零知识证明

    员外外出打猎,误打误撞掉进了一个传说中的藏宝洞,传闻这个藏宝洞中有一个可以统领整个族人的权杖。员外心想自己终于可以...

  • 零知识证明

    战争中你被俘了,敌人拷问你情报。你是这么想的:如果我把情报都告诉他们,他们就会认为我没有价值了,就会杀了我省粮食,...

  • 零知识证明

    “零知识证明”-zero-knowledge proof,是由S.Goldwasser、S.Micali及C.Ra...

网友评论

      本文标题:零知识证明学习

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