所谓零知识证明,指的是示证者在证明自己身份时不泄露任何信息,验证者得不到示证者的任何私有信息,但又能有效证明对方身份的一种方法。看起来有点别扭,我给2个例子,也许好明白一些。

1)A要向B证明自己拥有某个房间的钥匙,假设该房间只能用钥匙打开锁,而其他任何方法都打不开。这时有2个方法:(一)A把钥匙出示给B,B用这把钥匙打开该房间的锁,从而证明A拥有该房间的正确的钥匙。(二)B确定该房间内有某一物体,A用自己拥有的钥匙打开该房间的门,然后把物体拿出来出示给B,从而证明自己确实拥有该房间的钥匙。后面这个方法属于零知识证明。好处在于在整个证明的过程中,B始终不能看到钥匙的样子,从而避免了钥匙的泄露。

2)A拥有B的公钥,A没有见过B,而B见过A的照片,偶然一天2人见面了,B认出了A,但A不能确定面前的人是否是B,这时B要向A证明自己是B,也有2个方法。(一)B把自己的私钥给A,A用这个私钥对某个数据加密,然后用B的公钥解密,如果正确,则证明对方确实是B。(二)A给出一个随机值,B用自己的私钥对其加密,然后把加密后的数据交给A,A用B的公钥解密,如果能够得到原来的随机值,则证明对方是B。后面的方法属于零知识证明。

3)有一个缺口环形的长廊,出口和入口距离非常近(在目距之内),但走廊中间某处有一道只能用钥匙打开的门,A要向B证明自己拥有该门的钥匙。采用零知识证明,则B看着A从入口进入走廊,然后又从出口走出走廊,这时B没有得到任何关于这个钥匙的信息,但是完全可以证明A拥有钥匙。

以上写得很生动,于是我就copy来了

零知识证明的几个例子相关推荐

  1. 【零知识证明】数独解的例子解释零知识证明

    零知识证明 2022年11月14日 in 中国科学院大学 零知识证明 零知识证明 数独解的例子解释零知识证明 一.零知识证明方法: 二.如何让Alice以外的人相信? 三.数独问题零知识证明中出现的问 ...

  2. 用零知识证明解决投票安全

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 背景 我们经常会遇到需要给别人投票的情况,比如有些公司会组织员工给领导做反向打分,但是往往员工都不敢"真心实意 ...

  3. 当区块链遇到零知识证明

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 什么是零知识证明 零知识证明的官方定义是能够在不向验证者任何有用的信息的情况下,使验证者相信某个论断是正确的.这个定义有 ...

  4. 零知识证明实践教程,第二部分

    本文是零知识证明简单实践教程的第二部分, 第一部分见:零知识证明第一部分 第三部分见:零知识证明第三部分 现在一个问题是,prover(证明者)可能撒谎,比如原本它应该向verifier(验证者)揭露 ...

  5. 零知识证明实践教程,第一部分

    本文和其他博客文章的区别: 现今存在很多讲解零知识证明的文章,但是它们都是只涉及到很浅层的概念理解和直观感受上面,没有深入到零知识证明的细节,导致读者只知道什么是零知识证明,而不清楚怎么构造一个零知识 ...

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

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

  7. 一个更优的零知识证明:Bulletproofs

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

  8. 不是程序员也能看懂的ZCash零知识证明

    交易过程完全匿名是数字货币ZCash最大的亮点,正是这一点使得ZCash自提出以来便备受关注.ZCash匿名交易的实现依赖于一种叫做"零知识证明"的密码学手段.本文将通过打比方的手 ...

  9. 【区块链基础知识系列】 第8课 区块链之零知识证明

    所谓零知识证明,指的是示证者在证明自己身份时不泄露任何信息,验证者得不到示证者的任何私有信息,但又能有效证明对方身份的一种方法. 从本质上讲,零知识证明是一种协议.所谓协议(Protocol),就是两 ...

最新文章

  1. java线程-保护性暂停(wait,notify实现)
  2. 数据挖掘过程中:数据预处理
  3. iPhone地图 实战iPhone GPS定位系统
  4. python爬虫从基础到实战-2019-08-05 《python爬虫开发:从入门到实战》
  5. hive的hql怎么运行_在Ubuntu上安装Apache Hive并运行HQL查询
  6. 关于String s = new String(xyz); 创建几个对象的问题
  7. mysql 无限级分类实现思路
  8. [Angular2 Animation] Control Undefined Angular 2 States with void State
  9. 服务器信息批量收集,如何批量导入或导出服务器信息
  10. 2017-01-27-一句话木马原理详解
  11. java平方根函数_java程序中怎么调用平方根函数
  12. 【OPNsense】广东电信拨号用户通过OPNsense获取原生IPV6地址
  13. vue 键盘(上下左右)快捷键
  14. Google hacking(谷歌语法)
  15. 为老人和残障人士“铺路搭桥”,这家银行是认真的
  16. python 恶搞(仿粽子写的)
  17. 关于AHB-RAM的一些内容1
  18. 看了这篇文章,再也不用找人设计名片卡证啦!
  19. 海思3519A uboot开机画面
  20. Flink中subTask,并行度,slot你分得清吗?

热门文章

  1. 王垠的面试 和 P 与 NP
  2. 如何通过企业微信、飞书、钉钉消息通知接收双因子认证动态密码?
  3. HTML表单基本格式与代码
  4. Storj白皮书v3最全面解读,Docker创始人的加入能否扳倒AWS S3
  5. javascript利用iframe打印pdf文档失败的问题
  6. jquery 输入框失去焦点时 (blur)事件
  7. springCloud详解
  8. 手写webserver
  9. 数字乡村数据库:农村农业数字化指标、县域数字乡村指数、中国电子商务报告等四大维度数据
  10. ioredis.js tutorial