图解丨什么是零知识证明(ZK)?

 2023-08-01 23:33:16发布 2023-08-29 12:46:55更新

零知识证明,即 Zero Knowledge(ZK)是由 Goldwasser 和 Micali 等计算机科学家在 20 世纪 80 年代初提出的一项技术,它允许证明者向验证者证明某个论断的正确性,而无需提供有用信息。

“证明者”(prover)会利用某一系统输入的信息来创建证明,而“验证者”(verifier)则会验证这个证明的计算结果,但却无法得知信息的具体内容。

最关键的是,零知识证明可以验证某一数据集的有效性,并同时保护数据隐私。

ZK 证明使用密码学允许某人(证明者)向其他人(验证者)证明事实是百分百真实的,但除了特定真实性的陈述之外,不会透露任何额外信息。即能保守秘密,又能让人相信你。

比较通俗的定义是:ZK 证明本质上是让某人证明他们知道或拥有某些东西,而不会泄露他们知道或拥有什么的任何信息。

零知识证明需要具备三个要素:完整性、可靠性和零知识。举个例子,假设有一个环形走廊,出口和入口相邻但不互通,在走廊中间有一道锁着的门,只有拥有钥匙的人才能通过。

现在 A 想向 B 证明自己有这扇门的钥匙,这时就可以使用零知识证明。

零知识证明

A 走进入口并在出口等待,如果 A 从入口走过整个走廊并从出口走出,则能证明他有这扇门的钥匙,而 A 不需要向 B 提供任何关于钥匙的具体信息。

因此,零知识证明是一种基于概率而非确定性的证明方法。当零知识证明应用于加密货币领域时,可以增加匿名性,并提高隐私保护水平。

例如,Zcash 是一种致力于实现 100% 隐私保护的加密货币,它利用名为 zk-SNARK 的零知识证明技术来验证交易的真实性,实现匿名交易。

推荐阅读