需要帮助?

何为零知识证明(Zero-Knowledge Proof)?

近期,加密货币挖矿行业出现了一个新的流行语——零知识证明(Zero-Knowledge Proof)或称ZK代币。

那么何为零知识证明,为什么有这么多人在谈论它。与其他事件一样,在理解问题的答案之前,就必须先理解问题本身。

零知识证明解决了什么问题?

零知识证明解决了多个领域中有关隐私以及安全相关的问题,以下是一些例子:

  • 认证以及身份验证: 零知识证明可以在不泄露任何个人信息的情况下对身份进行证明。例如,用户可以证明自己已经超过18岁,而无需透露确切的出生日期。
  • 数据隐私: 零知识证明可用于验证敏感数据,如医疗记录或金融交易记录,而无需泄露原始的确切数据,即可以安全地共享、分析数据,同时保障隐私。
  • 区块链技术: 一些区块链技术使用零知识证明来验证交易,而无需泄露交易的具体细节。这有助于保障区块链中交易的私密性以及隐私性。
  • 网络安全: 零知识证明可以在不泄露密码或其他敏感信息的情况下对用户进行身份验证。这有助于防止身份信息盗窃或其他形式的网络犯罪。

何为零知识证明?

零知识证明是一种加密协议,其允许一方(证明方)向另一方(验证方)证明一个语句是否正确,而无需透露任何超出语句本身是否真实的额外信息。换句话说,证明者可以说服验证者,让后者相信证明者知道一些东西,而证明者无需实际透露他们知道什么。这是通过使用复杂的加密算法来创建可以在不泄露任何关于证明本身的信息的情况下进行验证的证明来实现的。零知识证明在注重隐私性的场景中具有非常实用的应用性,例如在线交易、身份验证以及其他需要保护敏感信息的应用程序。

零知识证明有三个要求:

  • 完整性: 证明者以及验证者都应该真诚地遵守协议。
  • 稳健性: 假设证明者不够诚实,实际上没有秘密知识,他们就不太可能说服验证者他们拥有秘密,因为欺骗验证者的概率一般相对较低。
  • 零知识: 这指的是一个场景,证明者(Bob)被设置为向验证者(Alice)证明他们拥有秘密的知识。然而,这个演示案例只能让Alice相信Bob所拥有的秘密知识,外人无法确定证明的真实性。

阿里巴巴洞穴实验

阿里巴巴洞穴实验是一个常用的零知识证明的例子。在这个场景中,Bob和Alice分别在一个洞穴的两个的入口进入了洞穴,他们都知道开门的密码。Bob声称他知道密码,并想在不泄露密码的情况下向Alice证明。

为了做到所说的,Bob从左边的门进入洞穴,走到对面的门。与此同时,Alice在洞口等着,并要求Bob从洞穴右边的门出来。如果Bob成功地打开了门,从右边出来了,那么证明他一定知道密码。但是,Alice并不知道Bob在开始时走的是右路径还是左路径。

这个试验重复了多次,Alice要求Bob从洞穴的不同侧面出来。如果Bob始终从洞穴的正确一侧出现,Alice就可以确信他知道密码,而无需真正了解到密码本身。

通过这种方式,阿里巴巴洞穴的实验向我们展示了零知识证明如何在不泄露任何敏感信息的情况下验证一项信息。

零知识证明能解决什么实际问题?

关于这个问题的一个很好的实际案例便是智能合约公示。将智能合约刻写到公共区块链上,则所有人都可以看到这些信息。例如,可以给智能合约加一个书面条件,在满足这个条件后,将锁定的资金释放给指定用户。那么在当前,任何人都还是可以通过区块链浏览器查看到这个条件的相关信息。

而使用零知识证明,则一方可以证明条件已经满足,而无需透露有关智能合约或智能合约中的条件的任何其他信息。

另一个应用案例则可能是证明加密货币交易所的资金储备,可能很多交易所都不愿意公开他们用于资金冷存储的钱包的相关信息,但他们可以使用零知识证明来确认他们拥有充足的资金储备,而无需泄露任何其他信息。因此,这个声明的“验证者”可以确定该交易所确实持有充足的资金储备。

笔者
Marko Tarman
Marko先生是NiceHash的挖矿硬件专家以及内容创作者,他最早于2012年第一批 ASIC矿机发布之前便开始挖矿,经历了显卡挖BTC、LTC再到VTC,甚至是DOGE等币种。Marko的挖矿座右铭:在挖矿生涯中碰到的99个问题,这些问题全部都是分线器(riser)的问题”
译自英文,作者 victorwei