Zero-Knowledge Proof
什么是零知识证明?
涉及验证者和验证者的一种协议,使验证者能够使验证者相信某个语句是真的,而不透露任何其他信息。
换句话说,零知识证明就是向你证明我知道某件事的同时,不会向你暴漏这个事情的任何信息。
举一个经典的例子:
Finding Wally
这个人是 Wally
我们要在下面这张图上找到Wally
假设我已经找到Wally了,我要怎么向没找到Wally的你证明我找到了,同时我又不告诉你Wally具体在哪。
我要怎么做呢?
首先我要找一张比这个图大好几倍的黑布如果这张图有一张A4纸那么大,那么黑布可以有桌子那么大。
之后,我在这个黑布上挖一个洞,洞的大小要可以正好露出Wally。
然后,我要向你证明黑布后有且只有上面那张图。
最后,我将图以任意方向和角度放在黑布上,同时将Wally漏在黑布上的洞中。
这样我就可以既不像你暴漏Wally所在的任何信息,又能像你证明我找到了Wally。
是不是贼有趣?