浅析什么是零知识证明,用例有哪些?

转载
1029 天前
7188
Captain Hiro

文章来源:Captain Hiro

也许你曾经听说过ZK Proof或零知识证明。但是,你好像从来没搞清楚它是什么?什么是ZK-rollups?什么是ZK-SNARKs?在这篇文章中,你所有关于零知识证明的问题都将得到解答,所以请抓紧时间,让我们一起开始学习零知识证明的旅程吧!


什么是零知识证明?

零知识证明是一种证明方法,通过这种方法,一方(证明者)在不透露任何实际信息的情况下,可以向另一方(验证者)证明它知道一个秘密或一个声明是真实的。

上面提到的术语 “零知识 ”本身就是对以下事实的证明:没有透露任何信息,但第二方(验证者)理所当然地相信第一方(证明者)知道这个秘密或他们的声明是真实的。

那么,为什么我们需要零知识证明呢?当我们不相信别人会透露信息,但想说服他们我们知道这个秘密或我们的声明是真实的。

有两种类型的零知识证明:

交互式

非交互式

1️.我们先看一个交互式零知识证明的例子

假设你需要零知识证明你已经成年,但又不能实际透露你的具体年龄。我们需要一个第三方权威机构来证明你的年龄,该机构的骚操作是这样的:

“谢谢你提供的出生证明副本,我们已经知道你21岁的事儿了。这里有一个秘密号码,请秘密存储并保证它的安全。你可能在以后会需要它。”

“你的秘密号码将被哈希处理22次,为你制作一个最终的年龄哈希码(是的,系统的默认操作是将你的年龄+1进行哈希才能使发挥作用)。因此,在我们给你的秘密号码和这个最终的年龄哈希码之间有22次哈希处理。”

“我们会使用你的名字、一个时间戳和这个最终的年龄哈希码来进行包装。这就是你要给别人的证明材料。”

现在,只要你想向别人证明你已经超过18岁,那么你就必须有效地证明,从你的秘密号码到你的最终年龄哈希代码有超过18个哈希步骤。

要做到这一点,你只需向他们展示最后18个哈希步骤,你需要首先通过自己做前4个哈希步骤(将你的秘密号码进行4次哈希处理),然后给他们结果;即第四次哈希处理的结果。

然后他们对你提供的结果再进行18次哈希(因为机构现在已经对你的秘密号码做了总共22次哈希处理),他们最终会得到最后的年龄哈希码,并可以验证你是否成年,因为这写信息都在你的证明套件中。

实际上,验证者会说:“给我们一个值,我们可以对其进行18次哈希,以获得与你的最终年龄哈希码相匹配的值。如果你不是18岁,那么你的最终年龄哈希码就不会有18次哈希步骤,我们就不能很好地认证你的真正年龄。”

这也是一个不错的例子