零知识(ZK)证明就像三箭资本的SuZhu和KyleDavies一样,他们出生于上世纪八十年代,但直到最近才成为热门话题。你可能听说过很多关于它们的信息,但ZK证明到底是什么?你也许了解了基础知识,但想知道使用ZK证明最有前途的项目是什么?现在就让我们通过ZK证明的概述、应用项目和底层技术来回答这些简单又复杂的问题。
01概述
1.什么是ZK证明?
ZK证明使用密码学允许某人(证明者)向其他人(验证者)证明事实是百分百真实的,但除了特定真实性的陈述之外,不会透露任何额外信息。即能保守秘密,又能让人相信你。另一个比较通俗的定义是:ZK证明本质上是让某人证明他们知道或拥有某些东西,而不会泄露他们知道或拥有什么的任何信息。
也许举几个例子会更有助于理解:
可以使用ZK证明来证明我拥有某个NFT的事实,而无需透露我拥有哪一个、购买时间或所花金额。
可以使用ZK证明来证明将Token从账户A发送到账户B的以太坊交易的有效性,而无需透露任一账户的Token余额或发送的金额。
ZK证明在年MIT的一篇研究论文中第一次出现。像许多技术一样,ZK证明首先引起了大量理论论证,然后在进一步发展和完善后逐渐找到实际运用。
麻省理工学院研究复杂加密问题的研究人员
最早的ZK证明是交互式的。为了证明某事,你必须和验证者玩一个问答游戏。就像测谎仪测试——验证者不断对证明者所拥有的“知识”进行一系列提问。通过不停的提问,让验证者相信证明者的确知道这些”知识”。但是这样的方法并不能使人相信证明者和验证者都是真诚的,因为两者可以提前串通,以便证明者可以在不知道答案的情况下依然通过验证。
后来发展到非交互式的。非交互式是证明者现在可以生成一个东西,一段数据,作为他的ZK证明提交给验证者,而无需多轮沟通。这种ZK证明不太像游戏/仪式/协议,而更像是可以由证明者生成并提交给验证者的不可伪造物品,避免了证明者和验证者串通的可能性。
2.ZK证明有什么用?
目前ZK证明有两个主要的用途:
隐私:在区块链上进行活动时尽量减少公开的数据量。Zcash就是一个很好的例子:
与比特币一样,Zcash交易数据需要发布到公共区块链;但与比特币不同的是,Zcash提供了机密交易和财务隐私的选择,利用零知识证明允许在不透露发送者、接收者或交易金额的情况下验证交易。
其他利用ZK证明保护隐私的项目有IronFish、Worldcoin和前两天被监管的TornadoCash。
可扩展性:允许在链下执行密集计算,使成本更低,然后创建一个简洁的证明,表明计算是被诚实执行的,可以在链上发布。
链上和链下各司其职,变得专业化,专注于他们最擅长的事情。我们可以使用集中式、高性能、脱链系统快速有效地处理一大堆交易,然后使用去中心化、不可变、去信任的区块链作为记录谁拥有什么的最终事实来源。
ZK证明相对于所有链下交易的有效性证明而言计算起来非常小,并且验证速度非常快。这要归功于一个几乎神奇的属性:一旦他们创建了一个证明说“是的,这数十亿次计算都被%证明是正确的”,验证者可以确认证明是正确的,而无需自己再进行数十亿次计算。
有很多ZKrollup项目专注于可扩展性,还有一些项目希望同时提供隐私和可扩展性,包括Aztec和EspressoSystems。
3.炒作
ZK证明是一种通用技术。过去的几次区块链牛市无疑推动了对ZK研发的投资,但ZK证明的第一个实际应用出现在中本聪发布比特币白皮书之前。链下世界中有许多令人兴奋的ZK证明应用——比如身份管理、最低年龄验证、匿名凭证、金融资产的评级和风险评估以及数字投票。对于链上和链下应用程序的所有ZK证明炒作,如果能够推动技术向前发展出新的用途,那是一件好事。但是这种期望是周期性的。当ZK证明被炒得火热的时候,人们给予大量