作者|Jason Jiang
在区块链技术演变过程中,有两个关键问题始终绕不过去:隐私与扩容。当我们探寻这两个问题的“标准解法”时,却发现它们都离不开一种技术,那就是:零知识证明。什么是零知识证明?它又是如何解决区块链隐私与扩容难题的?
1、什么是零知识证明?
1985年,来自MIT的S.Goldwasser、S.Micali 及 C.Rackoff 在研究论文《互动式证明系统的知识复杂性》中首次提出零知识证明。这是一种用于证明者在不泄漏任何有效信息的情况下证明其知识正确性的验证协议。
为了方便理解,不妨举个例子:
小O拥有一个带密码的盒子,他想在不告诉小K真正密码的情况下,让他相信自己知道盒子密码。那怎么做呢?
小O想出了一个办法:他让小K写下一个全世界只有他才知道内容的纸条,然后由小K亲手放进打开的盒子中并锁上。然后小O将盒子拿走后利用密码取出小K放在盒子里的纸条,第二天再将纸条给到小K。在这个过程中,小K并没有得知任何此前自己不知道的信息(盒子的密码),但还是必须相信小O知道密码这件事情。这个验证过程就是零知识证明。
”
简单来说,零知识证明就是以最小的信息交换量在双方之间建立信任,在不透露更多信息前提下,A可以向B证明某件事/某个结论是正确的。
![](/qrcode.jpg)
根据证明过程中的交互方式,可分为“交互式零知识证明”和“非交互式零知识证明”两大类。
交互式零知识证明,是指为了证明某件事,证明者需要和验证者反复互动,就像是测谎仪一样:验证者不断提出问题来挑战证明者承诺的真实性,证明者则需要不断回应这些挑战,直到使验证者相信。其流程如下所示:
早期的零知识证明都是交互式的。这种方式很直接,但过程冗长且效率低下:双方必须同时在线完成验证,并且每次只能取信于一个验证者,如果要取信多人,则要重复上述过程。这个过程,想想就累。
于是,非交互式零知识证明出现了。在非交互式零知识证明中,证明者和验证者提前约定验证规则,证明者按照承诺提供数据,验证者则可随时验证这些数据的正确性。这种非交互式验证,双方不用同时在线,并且证明者只需要提供一次证明。实际场景中应用的基本都是非交互式零知识证明,比如ZK-SNARK和 ZK-STARK。
2、零知识证明在区块链世界有什么用?
零知识证明在区块链世界主要被用来解决两类问题:隐私性与拓展性。
(1)隐私性
零知识证明的重要应用成果之一是2015年推出的可实现隐私交易的Zcash项目。除Zcash这类匿名币外,零知识证明在区块链金融、链上投票、身份验证等场景中也能发挥作用。
在区块链金融应用中,零知识证明允许参与者们灵活选择他们想要公开和隐藏的交易与信息。例如,公司可以有选择地公开某些付款以便审计追踪,同时隐藏机密客户、员工工资、承包商、供应商等隐秘信息。
进行链上投票时,零知识证明也能允许参与者进行匿名投票,并验证投票结果有效性。
此外,零知识证明还能帮助用户在不暴露具体身份信息的前提下实现身份验证。以太坊上的Polygan ID就采用了零知识证明验证方案,既帮助用户保护隐私,同时满足监管要求的KYC验证规范,用户可自由选择何时以及共享哪些数据。
(2)拓展性
区块链因性能限制难以满足市场需求而亟需扩容,基于零知识证明的ZK Rollup扩容方案则被视为 Layer2扩容的终极方案。ZK-Rollups通过将计算转移到链下来提高区块链吞吐量,即将大量交易打包到一个Rollup区块内,并在链下基于零知识证明生成一个有效性证明,Layer 1上的智能合约只需验证该证明即可直接应用新状态,从而实现更低Gas和更高安全性。
基于ZK-SNARKs技术的zkSync和基于zk-STARKs技术的StarkNet是目前最具代表性的ZK-Rollups项目。
其中,zkSync由是Matter Labs在2018年推出的一款 Layer2 扩容方案,通过采用基于零知识证明的Rollup提升以太坊网络的可拓展性。今年2月,zkSync宣布zkSync Era主网正式上线,欧科云链OKLink多链浏览器随后率先接入zkSync主网数据,成为全网首个支持zkSync网络的多链浏览器。
StarkNet是由以色列软件公司 StarkWare 开发的免许可Layer 2网络,通过使用zk-STARKs技术可帮助 DApp以更低的交易成本实现更大计算规模。自2021年11月启动主网后,StarkNet生态系统快速发展,目前已有100多种Dapp及服务,涵盖DeFi、NFT、钱包、跨链桥等不同类别。作为ZK Rollup赛道中估值最高和市场份额占比最大的项目之一,StarkNet的发展备受关注。欧科云链OKLink多链浏览器也将于近期上线StarkNet浏览器,为所有关注和参与StarkNet生态和Layer 2建设的用户提供更全面和更丰富的链上数据洞察及服务。
据悉,StarkNet浏览器将成为OKLink推出的第30条区块链浏览器,也是继zksync之后的第2条ZK Rollup浏览器。未来,OKLink多链浏览器还将陆续推出基于零知识证明的Polygon-zk、Linea、Base、Scoll等知名ZK Rollup项目的区块链浏览器。