网赚论坛

 找回密码
 免费注册
查看: 334|回复: 0
打印 上一主题 下一主题

【二期二团Day5-王建琼】零知识证明问题

[复制链接]

13

主题

22

帖子

52

积分

Ⅰ级财主

Rank: 1

积分
52
跳转到指定楼层
楼主
发表于 2017-10-21 13:14:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
零知识证明是由S.Goldwasser、S.Micali及C.Rackoff在20世纪80年代初提出的。是指证明者能够在不向验证者提供任何有用信息的情况下,使验证者相信某个论断是正确的。事实证明,零知识证明在密码学中非常有用,如果能够将零知识证明用于验证,可以有效解决许多问题。

如果A拥有B的公钥,A没有见过B,而B见过A的照片,偶然一天2人见面了,B认出了A,但A不能确定面前的人是否是B,这时B要向A证明自己是B,也有2个方法。

1.B把自己的私钥给A,A用这个私钥对某个数据加密,然后用B的公钥解密,如果正确,则证明对方确实是B。

2.A给出一个随机值,B用自己的私钥对其加密,然后把加密后的数据交给A,A用B的公钥解密,如果能够得到原来的随机值,则证明对方是B。

后面的方法属于零知识证明。

如果把零知识证明与比特币联系起来,就可以实现零知识有条件付款使得互不认识的双方都不能欺诈,达成有效交易。

设想解决方案程序H(X)=Y,H()是一个复杂的计算机程序,比如特定哈希算法,Y是一些特定的值。如果X是我知道的答案,我现在想把答案卖给你,但是我们之间并不信任,而且身边也没有朋友充当调解员。我利用此公式便可以零知识证明自己知道一些X。

虽然我向你证明了,但是交易的过程中,可能出现你付钱后我不给你答案或者我给你答案你不付钱的欺诈行为,所以我们需要引进加密交易。

我用随机密码K加密解决方案X得到EX,K的哈希值为HK,以及解决方案程序的运行结果为Y。整个程序转换成零知识证明,我在比特币外部告诉你这三个值,你便可验证我的确能诚实的执行这个程序。然后你需要我的公钥(比特币地址)和密码K来创建一个比特币付款,当我收到付款时,你得到了K值,便可用密码K来解密EX并获得解决方案X。这个过程可以成功避免双方欺诈行为。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

广告合作|Archiver|手机版|小黑屋|财富吧

GMT+8, 2026-7-19 16:32 , Processed in 0.702001 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.1

© 2014-2021 财富吧

快速回复 返回顶部 返回列表