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