零知识证明(zero knowledge validation)

证明者在不向验证者提供任何有用的信息的前提下,使验证者相信某个论断是正确的。

例如,A 向 B 证明自己有一个物品,但 B 无法拿到这个物品,无法用 A 的证明去向别人证明 自己也拥有这个物品。

证明举例

1、A要向B证明自己拥有某个房间的钥匙,假设该房间只能用钥匙打开锁,而其他任何方法都打不开。这时有2个方法:
①A把钥匙出示给B,B用这把钥匙打开该房间的锁,从而证明A拥有该房间的正确的钥匙。
②B确定该房间内有某一物体,A用自己拥有的钥匙打开该房间的门,然后把物体拿出来出示给B,从而证明自己确实拥有该房间的钥匙。
后面的②方法属于零知识证明。它的好处在于,在整个证明的过程中,B始终不能看到钥匙的样子,从而避免了钥匙的泄露。
2、A拥有B的公钥,A没有见过B,而B见过A的照片,偶然一天两个人见面了,B认出了A,但A不能确定面前的人是否是B,这时B要向A证明自己是B,也有2个方法。
① B把自己的私钥给A,A用这个私钥对某个数据加密,然后用B的公钥解密,如果正确,则证明对方确实是B。
② A给出一个随机值,并使用B的公钥对其加密,然后将加密后的数据交给B,B用自己的私钥解密并展示给A,如果与A给出的随机值相同,则证明对方是B。
后面的方法属于零知识证明。
3、有一个缺口环形的长廊,出口和入口距离非常近(在目距之内),但走廊中间某处有一道只能用钥匙打开的门,A要向B证明自己拥有该门的钥匙。采用零知识证明,则B看着A从入口进入走廊,然后又从出口走出走廊,这时B没有得到任何关于这个钥匙的信息,但是完全可以证明A拥有钥匙。

零知识证明(zero knowledge validation)相关推荐

  1. 零知识证明(Zero—Knowledge Proof)

    零知识证明概念 零知识证明(Zero-Knowledge Proof),是由S.Goldwasser.S.Micali及C.Rackoff在20世纪80年代初提出的.它指的是证明者能够在不向验证者提供 ...

  2. go语言零知识证明gnark框架

    零知识证明:零知识证明(Zero-Knowledge Proof),是由S.Goldwasser.S.Micali及C.Rackoff在20世纪80年代初提出的.它指的是证明者能够在不向验证者提供任何 ...

  3. 现代密码学(五)——零知识证明

           零知识证明(Zero-Knowledge Proof),是由S.Goldwasser.S.Micali及C.Rackoff在20世纪80年代初提出的.它指的是证明者能够在不向验证者提供任 ...

  4. 深入浅出区块链——零知识证明

    引子 隐私保护在区块链领域越来越受到重视,在隐私保护的种种手段中,零知识证明脱颖而出.那么零知识证明到底是什么东西呢? 首先,我们抛出一个问题:如何在不说出秘密的情况下,让对方知道你已经知道了这个秘密 ...

  5. 不讨论颜色的前提下,如何证明自己不是色盲?神奇的零知识证明

    0x01 一个小故事 <阿里巴巴与四十大盗>中有这样一段小故事: 阿里巴巴会芝麻开门的咒语,强盗向他拷问打开山洞石门的咒语,他不想让人听到咒语,又要向强盗证明他知道这个咒语. 那应该怎么办 ...

  6. 从小故事带你理解零知识证明 | 区块链一千零一问

    开胃小故事 阿里巴巴证明 阿里巴巴被强盗抓住,为了保命,他需要向强盗证明自己拥有打开石门的密码,同时又不能把密码告诉强盗.他想出一个解决办法,先让强盗离开自己一箭之地,距离足够远让强盗无法听到口令,足 ...

  7. 零知识证明(Zero Knowledge Proof,ZKP)

    零知识证明(Zero Knowledge Proof,ZKP)并非新鲜事物,其概念初见于1985年的论文<互动证明系统的知识复杂性>.ZKP是一种密码学技术,允许两方(证明者和验证者)来证 ...

  8. 零知识证明实践教程,第三部分

    本文是零知识证明简单实践教程的第三部分, 第一部分见:零知识证明第一部分, 第二部分见:零知识证明第二部分. 下面这个图片是我们在第二部分所使用的merkle树来构造prover的承诺.同时我们也提出 ...

  9. 通过零知识证明,成为重要的区块链革新者

    银行巨头ING:通过零知识证明,成为重要的区块链革新者 Captain Hiro 2018-05-02 13:28 发布在 区块链 2 1755 银行业巨头ING将证明创业公司并不是唯一可以推进区块链 ...

最新文章

  1. 有关 HashMap 面试会问的一切
  2. Ecol. Lett.:写给实践生态学家的β多样性分析指南 | 朝花夕拾
  3. 设计模式--桥(Bridge)模式
  4. js实现焦点进入文本框内关闭输入法:imeMode
  5. apt-get remove 与 apt-get purge 区别(删除包、卸载包)
  6. sphinx配置 + php
  7. IDEA的基本使用:让你的IDEA有飞一般的感觉 | CSDN 博文精选
  8. ruby在类中访问@,类外访问调用方法
  9. 快速了解前端开发HTML的正确姿势
  10. Python编程基础07:选择结构
  11. 获取内网、通过外部网站返回得到内网外部IP (C#/VB.NET)
  12. html range样式修改,自定义(滑动条)input[type=range]样式
  13. 【SICP练习】80 练习2.52
  14. eclipse的下载及安装教程
  15. python模拟抛硬币_python模拟抛硬币
  16. 等价类划分测试—身份证
  17. 《牧羊少年奇幻之旅》的优秀读后感分享3300字
  18. 武林c语言,听风一剑
  19. 谷歌翻译下载-免费谷歌翻译软件下载
  20. 【工具】注重效率、易于管理的系统重装和设置

热门文章

  1. 数据标注基础知识:文本数据标注的类型及应用场景
  2. C# 图片格式转换的实例代码
  3. 【五六七人口普查】省市两级分年龄、性别的人口
  4. 术语FXO和FXS的含义是什么?[图]
  5. 三维动画设计与制作【2】
  6. Node.js当中的ioredis设置timeout的问题
  7. cocos2d-js中使用react进行裁剪Sprit
  8. 两种编写代码风格方式对比
  9. Windows自带的计算器
  10. 线性表的顺序存储结构——顺序表