Bitcoin Warrior! avatar

Zcash核心:零知识证明(一)

warriorwu

Published: 21 Oct 2017 › Updated: 21 Oct 2017Zcash核心:零知识证明(一)

Zcash核心:零知识证明(一)

Crazy Social Engineer. Cypherpunk Follower in China. 丧心病狂的社会攻城狮,加密朋克追随者。Weibo.com@Warrior比特币玩家,twitter『Bitcoin Warrior!』。

Zcash:黑夜中潜行一文中曾提到Zcash的突破之处在于使用了零知识证明(zero knowledge proof)实现了私密交易与去中心化共存,那么,零知识证明究竟是什么?

它指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。比如证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。 其中又分为交互式零知识证明和非交互式零知识证明。

交互式证明

举个例子,如何向色盲证明两个球颜色不同。
19627_large.jpg

假设A有一个红球和黄球,她的一个色盲朋友B不相信A的球颜色不同,A如何才能让B相信这是真的呢?一个简单的办法如下:

  1. A把两个球给B,B每只手拿一个球
  2. A转过身背对B
  3. B抛一枚硬币,如果正面朝上,则保持不动,否则交换左右手的球
  4. A转过身,B问A是否交换过球
  5. 如果A回答错误,则B不相信;否则,重复100次实验,如果A都回答正确,则B相信这两个球是不同颜色的

为什么?如果两个球颜色不一样,那么A每次都应该能分辨;如果两个球颜色一样,则不管B有没有交换过,A都无法分辨,只能乱猜。这样每次猜对的概率只有1/2,重复100次,都猜对的概率将小到可以忽略,所以A将必然猜错。

这就是交互式零知识证明的一个例子,上述证明有三个特点:1)交互过程,整个证明需要A和B进行交互才能完成;2)具有随机性,即B需要抛一枚硬币,来决定是否交换球;3)零知识,虽然B最终相信了这两个球是不同颜色的,但B还是不知道这两个球是什么颜色的。

(未完待续)

本文由币乎社区(bihu.com)内容支持计划赞助


alt

Leave Zcash核心:零知识证明(一) to:

Written by

Crazy Social Engineer. Cypherpunk Follower in China. 丧心病狂的社会攻城狮,加密朋克追随者。Weibo.com@Warrior比特币玩家

Read more #cn posts


Best Posts From Bitcoin Warrior!

We have not curated any of warriorwu's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From Bitcoin Warrior!