什么是零知识密码证明,它是如何工作的?

By 十一月 1, 2016 No Comments

使用零知识证明,一个人可以向另一个人证明一个给定的陈述是真实的,而不传递任何其他信息来证明这个陈述是真实的。
“零知识挑战”的经典例子是“姚的百万富翁问题”:如何判断两个人谁更富有,而不需要透露他们有多少钱?通过密码学的复杂应用,实际上是有可能做到的。

Craig Gidney,为Twisted Oak Studios博客撰稿,提供了一个简化版的问题,可以帮助你理解这个过程。在Gidney的例子中,两名员工——Bob和Alice——想要确定他们是否得到了同样的报酬,而没有透露他们得到了多少或其他的信息。这个例子假设Bob和Alice知道他们每个人的收入正好是每小时10美元、20美元、30美元或40美元。

Bob去买了4个匿名的评论卡片箱——类似于餐厅收集顾客意见的那种,并分别贴上10美元、20美元、30美元或40美元的标签,然后扔掉三把钥匙,只留下对应他的报酬的盒子的那把钥匙。然后,Alice在一张纸条上写着“是”,在另外三个纸条上写着“否”。她把“是”的纸条塞进与她的工资相匹配的盒子里,把写有“否”的字条扔进其他箱子。一旦Alice走了,Bob就可以打开他的盒子,看看里面的纸条是“是”还是“否”。如果是“是”,那么他和Alice的工资是一样的。如果是“否”,他们就会知道他们的工资是不同的。

这个例子显然过于简单化了。Zerocoin要复杂得多,包括各种保护措施,防止任何人作弊。但它使用了这种类似的思维方式。