作者:Daniel Li
出品:CoinVoice
在经历了Web2.0创新带来的一系列期望和失望之后,现在的人们比以往任何时候都更加注重安全、隐私和数据所有权。而快速发展的Web3.0最大特征之一就是让参与者对其内容、数据和资产拥有完全所有权,切实保证了参与者的隐私安全,激发了人们内心对互联网发展的新信心,那么零知识证明在其中将扮演怎样的角色,它是否真得能让这一数字乌托邦成为现实?
Web1到Web3的演进
web(World Wide Web)即全球广域网,也称为万维网,它是一种图形信息系统,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。
web1.0是一个点对面的信息传播时代。一般由一家公司生产信息并存储在本地服务器上,允许读者进行单向交互,表现形式是各类网页,如早期的各类门户网站:新浪、网易、搜狐等。
Web2.0是相对于Web1.0的新的时代,用户参与到了内容的制作当中,表面上是“点对点”的交互形式,但数据还是存储在集中的服务器中,表现形式是各类APP,如目前国内占据主导地位的社交媒体平台微博、微信和抖音。
Web3.0集成了1.0(数据所有权)和2.0(交互)等优势,但最大的不同是用户拥有了对数据的完全的控制权和所有权,数据不再存储在中心化的服务器中,而是分布式存储在参与网络管理的各个节点中,表现形式是区块链行业的各类Dapp,如Metamask、Uniswap等。
从本质上讲,Web3.0是去中心化的互联网:
(1)任何人都可以参与其中(无许可和审查)
(2)没有人能支配用户的数据,除了用户自己(分布式存储)
(3)不必去相信任何人(去信任)
Web3对安全和隐私的要求都需要新的技术来实现,幸运的是人们发现了零知识证明。零知识证明允许用户私密地向去中心化网络共享信息,并且保证用户从网络接收的数据是真实的,无需信任第三方,兼顾隐私和安全,成为突破Web3.0安全保密性屏障的核心技术。
什么是零知识证明?
零知识证明并非新生事物,早在16世纪文艺复兴时期就曾经出现过。它指的是证明者能够在不向验证者提供任何有用信息的情况下,使验证者相信某个论断是正确的。
零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。简而言之,零知识证明就是既能充分证明自己是某种权益的合法拥有者,又不把有关的信息泄露出去——即给外界的“知识”为“零”。
为了方便理解,我们简单举一个例子:
假设A需要向B证明自己拥有某个房间的钥匙,并且房间只能通过钥匙才可以打开,任何其他方式都无法打开,那么以下两种方案哪种属于应用了零知识证明?
方案一:A把钥匙出示给B,B用这把钥匙打开该房间的锁,从而证明A拥有该房间的正确的钥匙。
方案二:B确定该房间内有某一物体,A用自己拥有的钥匙打开该房间的门,然后把物体拿出来出示给B,从而证明自己确实拥有该房间的钥匙。
通过两种方式A都可以向B证明,自己拥有房间钥匙,但方案一,在交易过程中,B看到了A的钥匙信息,在零知识证明中要求,证明者需要在不向验证者提供任何有用信息的情况下,使验证者相信某个论断是正确的,方案一泄露了信息,故方案一排除;而方案二,A在没有泄露任何相关信息的情况下,让B确信了自己拥有房间的钥匙,所以答案是方案二。
上述的案列的成功,必须满足一定的规则:
(1)A无法欺骗B,若A取出的东西不是来自房间里的,则B可以分辨的出来,即A成功欺骗B的概率很低,我们将这一规则称之为——正确性;
(2)B无法欺骗A,若A取出的东西是来源于房间里,B无法欺骗A,A有绝对的优势可以确保B相信他能证明。我们将这一规则称之为——完备性;
(3)正确性和完备性,就是在最小泄露协议中零知识证明所必须具备的性质。二者不可或缺,否则会导致整个逻辑无法闭环,零知识证明也就不存在了。而在未泄露任何信息的情况下,完成零知识证明,我们称之为——零知识性。
为什么零知识证明很重要?
从应用角度来说,零知识证明有两个非常重要的方向:
(1) 隐私计算
零知识证明可以满足消息的隐私性,可以解决常见的区块链网络中因透明性所带来的地址和资产额度等消息泄露。例如在区块链交易中,如果你需要证明你拥有某种资产,但同时又不想暴露资产的任何信息,那么就需要用到零知识证明。
隐私计算是零知识证明的一个重要的应用领域。若想保护隐私,则可以通过密码学的解决方案对链上数据进行加密,让链上的不同交易之间找不出关联性。零知识证明可以验证计算而不会暴露有关输入和计算本身的任何信息,保证链上数据隐私和安全。
Web3.0 至关重要的一点是用户自身真正掌握身份和数据所有权。但当前区块链上所有的信息都是公开的,人们通过一些手段就可以轻易得获取用户的信息(当然这本身也是区块链网络共识的特性)。虽然目前区块链用户尚没有广泛且强烈的隐私意识,但随着发展,这种需求在未来一定是更加迫切且长期存在的。所以要实现 Web3.0 的愿景,用户必须要有权力拥有自己的链上隐私。因此可以说隐私未必是必选项,但一定是可选项。
(2) 拓展性
若常用的区块链平台中产出新区块的验证时间很长,可直接更改为一人(节点)验证并生成证明,网络中的其他参与者都掌握快速验证该证明的方法,而不需要每个参与者都花费大量的时间来直接进行验证。
这涉及共识的成本问题,从经济学角度来看,以太坊,比特币等区块链网络交易成本高昂的原因在于:共识必须是昂贵的,廉价的共识一定程度上是不可信的。而其中的成本主要来自于区块链需要若干台设备的重复计算才能达成一致的共识。例如POW共识机制中,1000台机器做重复的计算工作,效率不会大于一台计算机的效率,但其所需要的成本是一台计算机的1000倍。这是所有的主流共识协议,无论是POW还是POS,为确保去中心化的共识所必须付出的成本。也就是不可能三角的束缚。
将零知识证明和区块链的一致共识结合起来,就可以达到仅用一台设备即可运行计算完成1000台设备重复计算的工作,从而极大降低了网络成本。零知识证明,通过采用密码学的方法,让其他设备验证一台设备计算的可靠性,而非直接参与重复计算。而且,在成本昂贵的区块链网络上,验证计算的正确性要比重复计算便宜得多。
因此,区块链依旧负责网络的共识和安全,而一些计算的工作则可以交给零知识证明在区块链网络外部完成,提升了区块链的拓展性。
零知识证明在Web3.0中的应用零知识证明可用于保护不同领域中的数据隐私权:
(1)金融:如抵押贷款申请人可以证明他们的收入在可接受的范围内,而不透露他们的确切工资。
(2)在线投票:零知识证明允许选民匿名投票,并验证他们的投票是否包含在最终计票中。
(3)身份验证:零知识证明可用于对用户进行身份验证,而无需交换密码等机密信息。以太坊上的Polygan ID就是采用了零知识证明的验证方案,它既帮助了用户在基于区块链的Web3平台上保护他们的隐私,同时满足监管要求的KYC验证规范,用户可以自由选择何时以及共享哪些数据。
(4)机器学习:零知识证明可以让机器学习算法的所有者说服其他人了解模型的结果,而无需透露关于模型本身的任何信息。
(5)区块链:比特币和以太坊等区块链能保证链上数据的透明性使人人都可以验证链上交易。这意味着参与者几乎没有了隐私,可能导致数据的非对称性,而零知识证明可以帮助保护区块链参与者的隐私权。
零知识证明在区块链领域已经有了丰富的应用场景:
(1)Layer 2 扩容:零知识证明的可验证计算,允许 L1 将交易处理外包给链外高性能系统(也称为 Layer 2)。这使得区块链可以在不损害安全性的情况下进行扩容。例如StarkWare 正在使用运行零知识证明友好代码的专用虚拟机构建一个可扩展的智能合约平台 StarkNet。Aztec 还允许他们的 Layer 2 程序私下运行,而且不会泄露有关用户交易的任何信息。
(2)隐私 L1:Aleo、Mina 和 Zcash 等 L1 公链允许交易者使用零知识证明 隐藏发送者、接收者或金额(其中 Aleo 是默认使用零知识证明,而 Mina 和 Zcash 是可选使用)。
(3)去中心化存储:Filecoin 使用零知识证明(在 GPU 上运行)来证明网络中的节点在正确存储数据。
(4)区块链压缩:Mina 和Celo使用零知识证明将同步到链上最新状态所需的区块链数据压缩成一个小证明。
零知识证明的挑战在哪里?
零知识证明已被证实未来有巨大的潜力,但是当前离广泛应用还有很多难题尚未得到解决。
从数学意义上来讲,零知识证明并非真正的证明,因为证明者说谎而不被验证者识别的概率,虽然可以无限趋近于零,但它永远不会到达零。只要不是零,就非逻辑上的零知识证明,因此零知识证明并不能保证100 %有效。
硬件方面,市面上目前还没有专门用作零知识证明相关的硬件和软件。零知识证明需要证明者和验证者之间不断交互,因此需要大量的计算能力,这让零知识证明不适合在速度慢或移动的设备上使用。
随着Web3世界的不断构建,用户对性能、隐私以及新型应用程序和协议的需求将日益增长,零知识证明在其中的作用会越来越凸显。虽然目前零知识证明还有不少局限性,但人们对零知识证明的探索将会越来越深入,零知识证明也将凭借其在隐私计算、L2 可扩展性、安全保护等方面的卓越表现,成为Web3世界的护身符,对 Web3 世界产生巨大的影响。