零知识证明:Web3世界的护身符_PLO:区块链dapp开发

在经历了Web2.0创新带来的一系列期望和失望之后,现在的人们比以往任何时候都更加注重安全、隐私和数据所有权。而快速发展的Web3.0最大特征之一就是让参与者对其内容、数据和资产拥有完全所有权,切实保证了参与者的隐私安全,激发了人们内心对互联网发展的新信心,那么零知识证明在其中将扮演怎样的角色,它是否真得能让这一数字乌托邦成为现实?

Web1到Web3的演进

web即全球广域网,也称为万维网,它是一种图形信息系统,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。?

web1.0是一个点对面的信息传播时代。一般由一家公司生产信息并存储在本地服务器上,允许读者进行单向交互,表现形式是各类网页,如早期的各类门户网站:新浪、网易、搜狐等。

Web2.0是相对于Web1.0的新的时代,用户参与到了内容的制作当中,表面上是“点对点”的交互形式,但数据还是存储在集中的服务器中,表现形式是各类APP,如目前国内占据主导地位的社交媒体平台微博、微信和抖音。

Polygon开源零知识证明系统Plonky2:8月16日消息,Polygon宣布开源零知识证明系统Plonky2,另外,STARK证明器Starky也是开源的。Plonky2由Polygon于今年1月份公布,Plonky2是一种递归SNARK,并且与以太坊原生兼容,结合了PLONK和FRI,具有快速证明和无可信设置。[2022/8/16 12:28:58]

Web3.0集成了1.0和2.0等优势,但最大的不同是用户拥有了对数据的完全的控制权和所有权,数据不再存储在中心化的服务器中,而是分布式存储在参与网络管理的各个节点中,表现形式是区块链行业的各类Dapp,如Metamask、Uniswap等。

从本质上讲,Web3.0是去中心化的互联网:

任何人都可以参与其中

没有人能支配用户的数据,除了用户自己

不必去相信任何人

Web3对安全和隐私的要求都需要新的技术来实现,幸运的是人们发现了零知识证明。零知识证明允许用户私密地向去中心化网络共享信息,并且保证用户从网络接收的数据是真实的,无需信任第三方,兼顾隐私和安全,成为突破Web3.0安全保密性屏障的核心技术。

什么是零知识证明?

零知识证明并非新生事物,早在16世纪文艺复兴时期就曾经出现过。它指的是证明者能够在不向验证者提供任何有用信息的情况下,使验证者相信某个论断是正确的。

a16z:零知识证明保护去中心化和隐私,将取得一系列进展:4月15日消息,a16z发文《去中心化的速度:零知识证明的进步》表示,随着区块链吸引了数以百万计的用户,并且它们所承载的应用程序的复杂性不断提高,围绕隐私和可扩展性的两个关键需求已经出现。需要识别的一个关键趋势是,虽然正在为其中许多应用开发专用硬件,但也有一项运动正在优化消费者级硬件的算法,以保护去中心化和隐私。这一趋势的一个特别好的例子是零知识证明。

我们目前正处于一个非常早期的时刻,零知识证明计划将取得一系列进展。我们已经从零知识领域中极少数面向消费者的应用程序,发展到在很短的时间内为隐私和可扩展性提供应用程序和区块链的整个生态系统。像这样的新技术最令人兴奋的一点是,很难预测另一面到底是什么样子。[2022/4/15 14:27:35]

零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。简而言之,零知识证明就是既能充分证明自己是某种权益的合法拥有者,又不把有关的信息泄露出去——即给外界的“知识”为“零”。

门罗币完成零知识证明系统Bulletproofs+代码审计:2月15日,门罗币官方发推称,完成零知识证明系统Bulletproofs+代码审计。此前消息,零知识证明系统Bulletproofs+代码获准可在门罗币协议中使用。随后官方计划筹集90.3 XMR以进行零知识证明系统Bulletproofs+审计。[2021/2/15 19:49:05]

为了方便理解,我们简单举一个例子:

假设A需要向B证明自己拥有某个房间的钥匙,并且房间只能通过钥匙才可以打开,任何其他方式都无法打开,那么以下两种方案哪种属于应用了零知识证明??

方案一:A把钥匙出示给B,B用这把钥匙打开该房间的锁,从而证明A拥有该房间的正确的钥匙。?

方案二:B确定该房间内有某一物体,A用自己拥有的钥匙打开该房间的门,然后把物体拿出来出示给B,从而证明自己确实拥有该房间的钥匙。?

通过两种方式A都可以向B证明,自己拥有房间钥匙,但方案一,在交易过程中,B看到了A的钥匙信息,在零知识证明中要求,证明者需要在不向验证者提供任何有用信息的情况下,使验证者相信某个论断是正确的,方案一泄露了信息,故方案一排除;而方案二,A在没有泄露任何相关信息的情况下,让B确信了自己拥有房间的钥匙,所以答案是方案二。

动态 | 波场TRON网络即将进行零知识证明匿名交易公测:据官方最新消息,波场TRON网络即将进行零知识证明匿名交易公测,现在诚邀社区参与MPC过程,参与者越多,匿名交易越安全。通过参与MPC,用户可以将贡献永久的保存在TRON网络中。参考见原文链接。[2019/12/19]

上述的案列的成功,必须满足一定的规则:?

A无法B,若A取出的东西不是来自房间里的,则B可以分辨的出来,即A成功B的概率很低,我们将这一规则称之为——正确性;?

B无法A,若A取出的东西是来源于房间里,B无法A,A有绝对的优势可以确保B相信他能证明。我们将这一规则称之为——完备性;?

正确性和完备性,就是在最小泄露协议中零知识证明所必须具备的性质。二者不可或缺,否则会导致整个逻辑无法闭环,零知识证明也就不存在了。而在未泄露任何信息的情况下,完成零知识证明,我们称之为——零知识性。

为什么零知识证明很重要??

从应用角度来说,零知识证明有两个非常重要的方向:

?隐私计算

声音 | V神评价MimbleWimble:只有零知识证明 ZK-SNARKs 等全局匿名集,才能真正保证隐私安全:针对 Dragonfly Capital 的分析师 Ivan Bogatyy 发布的关于阐述 MimbleWimble 协议有重大缺陷、Grin 网络 96% 的交易可被破译的文章。

以太坊创始人Vitalik在推特回应称:如果隐私模型设置了一个中等的匿名集,那么它实际上设置了一个小范围的匿名集。如果隐私模型的匿名集较小,则其匿名集为 1。只有全局匿名集(例如,使用 ZK-SNARKs 技术进行的加密)才真正具有安全性。[2019/11/19]

零知识证明可以满足消息的隐私性,可以解决常见的区块链网络中因透明性所带来的地址和资产额度等消息泄露。例如在区块链交易中,如果你需要证明你拥有某种资产,但同时又不想暴露资产的任何信息,那么就需要用到零知识证明。

隐私计算是零知识证明的一个重要的应用领域。若想保护隐私,则可以通过密码学的解决方案对链上数据进行加密,让链上的不同交易之间找不出关联性。零知识证明可以验证计算而不会暴露有关输入和计算本身的任何信息,保证链上数据隐私和安全。?

Web3.0至关重要的一点是用户自身真正掌握身份和数据所有权。但当前区块链上所有的信息都是公开的,人们通过一些手段就可以轻易得获取用户的信息(当然这本身也是区块链网络共识的特性)。虽然目前区块链用户尚没有广泛且强烈的隐私意识,但随着发展,这种需求在未来一定是更加迫切且长期存在的。所以要实现Web3.0的愿景,用户必须要有权力拥有自己的链上隐私。因此可以说隐私未必是必选项,但一定是可选项。?

?拓展性?

若常用的区块链平台中产出新区块的验证时间很长,可直接更改为一人验证并生成证明,网络中的其他参与者都掌握快速验证该证明的方法,而不需要每个参与者都花费大量的时间来直接进行验证。

这涉及共识的成本问题,从经济学角度来看,以太坊,比特币等区块链网络交易成本高昂的原因在于:共识必须是昂贵的,廉价的共识一定程度上是不可信的。而其中的成本主要来自于区块链需要若干台设备的重复计算才能达成一致的共识。例如POW共识机制中,1000台机器做重复的计算工作,效率不会大于一台计算机的效率,但其所需要的成本是一台计算机的1000倍。这是所有的主流共识协议,无论是POW还是POS,为确保去中心化的共识所必须付出的成本。也就是不可能三角的束缚。?

将零知识证明和区块链的一致共识结合起来,就可以达到仅用一台设备即可运行计算完成1000台设备重复计算的工作,从而极大降低了网络成本。零知识证明,通过采用密码学的方法,让其他设备验证一台设备计算的可靠性,而非直接参与重复计算。而且,在成本昂贵的区块链网络上,验证计算的正确性要比重复计算便宜得多。?

因此,区块链依旧负责网络的共识和安全,而一些计算的工作则可以交给零知识证明在区块链网络外部完成,提升了区块链的拓展性。

零知识证明在Web3.0中的应用

零知识证明可用于保护不同领域中的数据隐私权:

金融:如抵押贷款申请人可以证明他们的收入在可接受的范围内,而不透露他们的确切工资。

在线投票:零知识证明允许选民匿名投票,并验证他们的投票是否包含在最终计票中。

身份验证:零知识证明可用于对用户进行身份验证,而无需交换密码等机密信息。以太坊上的PolyganID就是采用了零知识证明的验证方案,它既帮助了用户在基于区块链的Web3平台上保护他们的隐私,同时满足监管要求的KYC验证规范,用户可以自由选择何时以及共享哪些数据。

机器学习:零知识证明可以让机器学习算法的所有者说服其他人了解模型的结果,而无需透露关于模型本身的任何信息。

区块链:比特币和以太坊等区块链能保证链上数据的透明性使人人都可以验证链上交易。这意味着参与者几乎没有了隐私,可能导致数据的非对称性,而零知识证明可以帮助保护区块链参与者的隐私权。?

零知识证明在区块链领域已经有了丰富的应用场景:?

Layer2扩容:零知识证明的可验证计算,允许L1将交易处理外包给链外高性能系统。这使得区块链可以在不损害安全性的情况下进行扩容。例如StarkWare正在使用运行零知识证明友好代码的专用虚拟机构建一个可扩展的智能合约平台StarkNet。Aztec还允许他们的Layer2程序私下运行,而且不会泄露有关用户交易的任何信息。?

隐私L1:Aleo、Mina和Zcash等L1公链允许交易者使用零知识证明?隐藏发送者、接收者或金额。

去中心化存储:Filecoin使用零知识证明来证明网络中的节点在正确存储数据。?

区块链压缩:Mina和Celo使用零知识证明将同步到链上最新状态所需的区块链数据压缩成一个小证明。

零知识证明的挑战在哪里?

零知识证明已被证实未来有巨大的潜力,但是当前离广泛应用还有很多难题尚未得到解决。?

从数学意义上来讲,零知识证明并非真正的证明,因为证明者说谎而不被验证者识别的概率,虽然可以无限趋近于零,但它永远不会到达零。只要不是零,就非逻辑上的零知识证明,因此零知识证明并不能保证100%有效。

硬件方面,市面上目前还没有专门用作零知识证明相关的硬件和软件。零知识证明需要证明者和验证者之间不断交互,因此需要大量的计算能力,这让零知识证明不适合在速度慢或移动的设备上使用。

随着Web3世界的不断构建,用户对性能、隐私以及新型应用程序和协议的需求将日益增长,零知识证明在其中的作用会越来越凸显。虽然目前零知识证明还有不少局限性,但人们对零知识证明的探索将会越来越深入,零知识证明也将凭借其在隐私计算、L2可扩展性、安全保护等方面的卓越表现,成为Web3世界的护身符,对Web3世界产生巨大的影响。

作者:DanielLi

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:0ms0-6:614ms