Web3 中的 ZKP:现在和未来
作者:Mohamed Fouda , Qiao Wang;编译:Dazai;来源:SEEDAO
零知识技术,简称 zk,是一项不仅能变革 Web3,还能变革其它行业的技术。作为一项通用技术,zk 有着众多的应用案例,而我们正处在探索该技术应用的早期阶段。一些明显的 zk 案例已经找到了实际的应用,比如实现了隐私交易和数据压缩,也就是 rollup。当然,若想要 zk 被主流采纳,它需要更多潜在的应用案例和技术进步的支持。
在本文中,我们将首先回顾 ZKP 的不同应用。然后,我们将讨论这项技术下一阶段的发展方向,以及一些可以从这项技术中受益的创业想法。我们鼓励基于这些想法的建设者们联系或申请加入 Alliance 创始人社区。Alliance 愿意支持和资助创始人在此方向上的建设。
ZKP应用全景图
零知识证明(以下简称 ZKPs),自发明以来就在加密货币行业中占据了重要位置,ZKPs 确实像施了魔法一样令这项技术兴奋不已。从高层次上讲,ZKPs 允许一个实体向世界上的其他人证明,他们知道某条信息或已正确执行了某项任务,在不需要透露信息或告知任务执行细节的前提下。zk 的数学魔法允许我们通过检查生成的 ZKP 来信任这条信息或任务的执行。因此,最符合 ZKPs 应用的首个案例是以隐私为重点的加密网络。零知识证明(ZKPs)还被用于在以太坊 L1 上提供以太坊 L2 交易的有效性证明,引入了 zk rollups 概念。此外,ZKPs 还在不同的项目中被发现了其他特定的应用。
隐私为核心的支付方案和协议
ZKP 能顺理成章地实现隐私,特别是在缺乏可作为真相来源中央机构的去中心化网络中。ZKPs 允许 Web3 用户(即证明者),向网络验证器(即验证者),证明他们的交易是有效的。即他们有足够的余额可以使用,而无需透露交易细节,如交易金额、发送人或接收人的地址。
ZKP 最初是为了支持 Zcash 网络中的隐私支付而开发的,然后扩展到其他网络。已经部署的隐私支付网络包括:
以隐私为核心的 L1s:Zcash、Horizon、Aleo 和 Iron Fish
通用链上的隐私智能合约:Tornado Cash
以隐私为核心的 L2s:Aztec
ZK ROLLUPS验证
ZKPs 的另一个主要应用是在底层 L1 上生成 rollup 的有效性证明。通用 rollup 针对吞吐量进行了优化,即通过不利用 ZKPs 的隐私特性来证明更多的TXs。在这种权衡中,ZKP 仅作为 L2 交易执行正确性的证明。
对于一些无法被有效证明的通用函数,生成 ZKPs 来证明任意智能合约的正确执行是困难的。解决这个问题需要实现专门的虚拟机(VMs),这些虚拟机可以通过底层的零知识电路(zk circuit)进行高效的证明。鉴于其复杂性,zk rollups 最初仅支持支付或单一的应用程序,例如去中心化交易所,在那里ZKPs可以被简单地生成。这里的例子包括 zkSync 1.0 和 Loopring。随后,市场上开始出现通用的 zkEVM 实现,包括 Starknet、zkSync 2.0、Polygon zkEVM 和 Scroll。目前,所有 zk rollups 都在以太坊上,但也可以在其他链上实现,包括比特币。然而,比特币的 rollups 实施将需要更改比特币的操作码和硬分叉链,这往往不受比特币社区的欢迎。
其他零知识证明应用
除了以隐私为中心的应用程序和 rollups 之外,ZKPs 在其他区块链协议中也得到了应用。这一部分将介绍这些应用。
Mina
Mina 使用 ZKPs 将区块链状态压缩到很小(大约在 22 KB)。为了实现这一点,Mina 使用了递归零知识证明,即其他零知识证明的零知识证明。当在 Mina 网络中生成一个区块时,zk-SNARKs 用于生成该区块的证明以确保其有效性。由于新区块引用了先前的区块,新区块的零知识证明验证了所有先前的区块,同时保持了一个恒定的大小。
Filecoin
Filecoin 使用 ZKPs 来确保存储提供商正确存储他们存储的数据。这个过程称为复制证明 (PoReb)。在此过程中,存储提供商生成 ZKPs 以证明他们正在存储数据的唯一副本。即不引用另一个提供商维护的副本。ZKPs 为想要实现一定程度冗余和可用性的 Filecoin 用户提供了保障。此外,由于证明的大小远小于存储的数据,因此使用 ZKPs 可以减少存储供应商的带宽要求。
Celo Plumo
Celo Plumo 使用 ZKPs 来创建可以在手机和其他资源有限的设备上使用的超轻型网络客户端。尽管客户端非常轻量化,但它具有对其访问状态准确性的保证。
Dark Forest
Dark Forest 是 ZKPs 在游戏领域最流行的应用之一。尽管使用 ZKPs 符合隐私使用案例,但将其应用于创建不完全信息游戏仍是一个独特的案例,超越了 ZKPs 在支付网络中的金融应用。
ZKPS及其应用发展轨迹
直到 2016 年,ZKPs 还只是在小型学术圈内讨论的研究课题。这一切的改变,始于 Zcash 创始团队创建了 ZKP 变种 zk-SNARK 的第一个可投入生产的实现,以支持 Zcash 网络中的隐私交易。随着真实用例的出现,ZKPs引起了更多的关注,促成了更好的ZKP变种,成为第一部分讨论的许多项目的基础。然而,为了使这项技术被主流采用,还需要进一步发展零知识证明。
在许多方面,零知识证明(ZKP)技术类似于人工智能技术,预计会走上类似的发展轨迹。就像ZKPs一样,人工智能起初被认为是一项有望解决许多问题的技术。然而,最初的人工智能算法在功能上受到限制,计算复杂性远远超出了可用硬件的能力。这使得人工智能应用变得缓慢且不切实际,使人工智能主要局限于研究实验室。通过发明新的架构,如深度神经网络(DNNs),并利用图形处理单元(GPUs)提高执行速度,逐渐取得了改进。这最终导致了2012年 AlexNet 的突破,它在最著名的计算机视觉竞赛 ImageNet 中以巨大的优势获胜。AlexNet 标志着人工智能时代的开始,引领了当前令人惊叹的人工智能应用,如 GPT-3、Dall.E 2 和 Stable Diffusion。
今天的零知识证明(ZKPs)技术状况类似于早期人工智能的状态,是一项有前途但仍在积极开发中的技术,由于计算密集性导致证明时间较长。通过借鉴人工智能的进展,我们可以找出需要解决的瓶颈,以推动零知识证明技术的发展。
1. 算法/电路改进
与人工智能从 LeNet-5 到 AlexNet、Resnet-50 再到 Transformer 的方式一样,ZKP 算法也将经历类似的发展阶段,从而实现性能的显著提高。我们已经看到这方面的进展,自 2011 年推出 Zk-SNARK 以来,已经开发出更高级的算法。2018 年,Starkware 的创始人开发了 STARK,这是一种无需可信任设置,证明生成时间更短的 ZKP 方法。这项技术是 Starkware 包括 StarkNet 在内的多种产品的基础。
随着 2019 年 PLONK 的推出,ZKP 进一步取得进展。PLONK 是一种 SNARK 实现,它允许多个应用程序使用单个可信设置而无需重复设置。PLONK 促进了多个实现的开发,这些实现被用于多个 Web3 协议(如 Aztec、Mina 和 Celo)。
2. 优化的执行引擎
ZKP 的一个主要局限性是计算复杂性,这导致了证明时间过长。例如,Polygon 最近公布的 zkEVM 实现需要在 64 核服务器上花费大约 5 分钟来生成 50 万 gas 的计算证明。改善 ZKP 的证明时间是将其技术主流化的关键。类似于 AI,优化软件执行引擎并使用专用硬件都是实现这一目标的必要条件。
优化的软件
许多 ZKP 生成操作都是高度并行的,这意味着并行处理,例如 GPU,可以加速 ZKP 的计算。专用的GPU库,如 CUDA,可以用于加速在Nvidia GPU上的ZKP计算。一些项目正尝试在内部开发这种功能,因为每个项目使用不同的ZKP算法。一个显著的例子是 Filecoin 对 Groth16 算法的实现,该实现利用 GPU 加速证明过程。另一个例子是 Edgeswap 使用 GPU 将 PLONK 的证明时间缩短了75%。
专用硬件
由于 GPU 对 ZKP 证明时间的优化有限,另一种选择是使用专用硬件,如 FPGA 或 ASIC。在制造昂贵的专用芯片 ASIC 之前,FPGA 通常被作为硬件原型平台。在中短期, FPGA 或结合 GPU 和 FPGA 的混合解决方案发挥重要作用,为 rollup 和注重隐私的网络加速 ZKP。然而,如果 ZKP 技术发展到我们预期的水平,ASIC 最终会出现并赢得这个市场。目前,ZKP 的硬件加速技术还未充分解决,可能是 ZKP 算法的多样性和碎片化导致的。然而,我们相信通过正确的商业模式,一些初创公司可以专注于开发这部分技术栈并从中盈利。
3. 软件抽象层
为了释放 ZKPs 的潜能,需要构建多个抽象层和工具。这些抽象层是简化 ZKP 应用程序开发过程所必需的,同时它允许每组开发人员专注于他们最擅长的事情。例如,应用程序开发人员不应该担心零知识电路的底层细节及其如何工作。再次对比 AI,通过创建多个抽象层使得人工智能的巨大进步成为可能。使用这些抽象层,AI 应用程序开发人员无需担心神经网络架构或硬件资源分配。TensorFlow 和 PyTorch 等框架抽象出所有这些底层细节。
ZK(零知识证明)开发堆栈目前尚未像人工智能堆栈那样成熟。然而,一些工作正在进行中,以构建这些抽象层。在堆栈的底层存在低级别的 ZKP 库,例如 PLONK 和 STARK。在这一层之上,高级语言如 Noir 试图将底层的ZK密码学抽象出来,帮助应用程序开发人员专注于应用逻辑。Circom 是另一种流行的 ZKP 语言,位于这两个层之间,因为它既可用于创建复杂的 ZK 后端,也可用于开发基于 ZKP 的应用程序。
在Web 3中,另一个零知识证明(ZKP)抽象的例子是 StarkWare 的 Cairo 语言,它允许开发人员实现使用STARK证明的通用智能合约。为了提供进一步的抽象,Nethermind 的 Warp 工具允许开发者将 Solidity 代码直接转换为 Cairo。使用 Warp,几乎不对原始 Solidity 代码进行修改,就能将 Uniswap V3 代码转译为 Cairo。(译者注:Warp 已宣布停止维护)
ZKP带来的就业机会
基于对 ZKP 可能发展路径的讨论,我们确定了一些与 ZKP 相关的创业想法,希望与创始人共同探索。这些创业想法被分为两类:工具和应用。
ZKP Tooling ZKP 工具
高级开发框架
类似于 AI 中的 Tensorflow 和 PyTorch,高级 ZKP 开发框架对于解锁应用层面的创新至关重要。这些框架需要:
抽象底层 ZKP 后端的复杂性
支持各种 ZKP 后端和硬件环境,例如 CPU 和 GPU
允许高效的调试和测试
提供丰富的开发环境,包括示例和教程
在以太坊生态系统中,最接近的例子是 Hardhat 和 Foundry,但他们可能不会很快支持 zkEVMs 或 ZKPs。相反,像 Cairo 这样的现有抽象语言可能最终会填补这个空白。
2. ZK rollup SDK
zk rollups 正变得越来越受欢迎,它可以为游戏或者高吞吐量 DeFi 协议启用特定于应用程序的 L2。在这种情况下,ZK Rollup 主要进行执行和结算,而共识和数据可用性将由 L1 处理。然而,启用专用于应用程序的 ZK Rollup 仍然非常复杂。我们相信,提供开发者友好的 SDK 以启动定制 zk rollups 的初创公司将解决真正的业务需求,并通过提供开发者工具、开发者服务、序列服务和支持基础设施而成为有价值的企业。
3. ZKP 硬件加速器
专门针对特定用途的硬件公司,通过建立早期市场领先地位,最终可能成为具有巨大价值的公司。在人工智能领域,英伟达通过专注于 AI 硬件而成为北美市值最高的半导体公司。在比特币挖矿领域也是如此,比特大陆、嘉楠耘智和神马矿机专注于 ASIC 矿机而成为独角兽企业。设计并制造高效 ZKP 硬件加速器的公司将遵循相同的轨迹。
ZKP 在 Web3 中的应用
1、ZK 跨链桥和互操作性
ZKPs 可用于为跨链消息传递协议创建有效性证明,在这种协议中,跨链消息可以在目标链上快速验证。这类似于 ZK Rollup 在底层 L1 上的验证方式。然而,对于跨链消息来说,复杂性更高,因为源链和目标链之间要验证的签名方案和加密函数可能会不同。
2、ZK 全链游戏引擎
Dark Forest 证明了零知识证明可以使信息不完整的链上游戏成为可能。这对于设计更具交互性的游戏至关重要,因为玩家的行动在他们决定公开之前都保持私密。随着全链游戏的成熟,预期零知识证明将成为游戏执行引擎的一部分。对于成功在高吞吐链上游戏引擎中集成隐私特性的初创公司来说,机会巨大。
3、身份解决方案
零知识证明可以在身份领域开启多个机会。它们可以用于声誉或者连接 Web 2 和 Web 3 的身份。目前,我们的 Web2 和 Web3 身份是分开的。诸如 Clique 这样的项目通过使用预言机来连接这些身份。零知识证明可以通过启用 Web2 和 Web3 身份的匿名链接,将这种方法推进一步。这可以启用如匿名 DAO 成员资格的用例,对于那些可以使用 Web2 或 Web3 数据证明特定领域专业知识的人来说。另一个用例是基于借款人的 Web2 社交状态的无抵押 Web3 借款,例如,Twitter 的关注者数量。
4、ZKP 在监管合规中的应用
Web3 使得伪匿名的在线账户能够积极参与金融体系。在这个意义上,Web3 为大众提供了广泛的金融自由和包容性。随着 Web3 的监管日趋严格,ZKPs 可以在不破坏用户伪匿名性的前提下,用于合规验证。ZKPs 可以用来证明一个用户不是被制裁国家的公民或居民。ZKPs 也可以用于证明投资者的资格或满足任何其他 KYC/AML(反洗钱)的要求。
5、Web3 原生的隐私债务融资
传统金融中的债务融资常被用来支持成长中的初创企业,以加速他们的发展或开辟新的业务领域,而无需募集额外的风险投资。Web3 DAO 和伪匿名公司的崛起为 Web3 原生的债务融资创造了机会。例如,使用 ZKPs,DAO 或伪匿名公司可以通过证明其增长指标,以竞争性利率获得非抵押贷款,而无需将借款人的信息透露给贷方。
6、私密 DeFi
金融机构通常会保持其交易历史和敞口信息的私密性。然而,在链上(即DeFi协议)使用时,由于链上分析技术不断进步,要保持这种隐私变得更加具有挑战性。一个可能的解决方案是开发注重隐私的DeFi产品,以保护协议参与者的隐私。一个尝试实施这一点的协议是 Penumbra 的 zkSwap。此外,Aztec 的 zk.money 通过混淆用户在透明的DeFi协议中的参与,提供了一些私密DeFi的盈利机会。通常来说,成功实施高效且注重隐私的DeFi产品的协议可以吸引机构参与者,获得可观的交易量和收入。
7、ZKPs 用于 Web3 广告
Web3 推动用户对自己的数据拥有所有权,例如浏览历史、私人钱包活动等,并使这些数据的货币化可以为用户带来利益。由于数据变现可能与隐私相矛盾,ZKPs 可以在控制哪些个人数据可以向广告商和数据聚合商披露方面发挥重要作用。
8、隐私数据的共享和变现
我们的许多隐私数据如果与合适的实体共享,可能会产生重大影响。例如,个人健康数据可以被众包,以帮助研究者开发新药。隐私财务记录可以与监管机构和监察者共享,以便识别和惩罚腐败行为。ZKPs 可以实现这类数据的隐私共享和变现。
9、去中心化情报组织
ZKPs 可以孵化出去中心化的情报机构。在这些机构中,情报操作员、数据侦查员和间谍可以成为网络的一部分,而无需相互交互或了解彼此。参与者可以使用ZKPs在接收与数据交换相应的私密支付之前,证明对某些情报数据的了解。这种系统还可以促进协作和可组合的方式,以丰富或解释收集到的数据,同时保护参与者的隐私。
10、隐私治理
随着 DAOs 和链上治理的普及,Web3 正在更接近直接参与式的民主。当前治理模型的一个主要缺陷是参与的非隐私性。ZKPs 可以从根源上解决这个问题。治理参与者可以在不透露投票方式的情况下进行投票。此外,ZKPs 可以实现将治理提案的可见性限制在DAO成员之间,从而使DAO能够建立竞争优势。
总结
ZKP 技术是 Web3 领域最具创新性的一项技术,为开创性的协议和公司提供了多种机会。在Alliance,我们希望成为这一发展的核心推动者,并持续支持和资助那些在这一领域建设的创始人。
感谢 Shumo Chu、Carter McAlister 和 Adam Porter 对本文的反馈。
其他资源
零知识证明的硬件加速:https://www.paradigm.xyz/2022/04/zk-hardware
去中心化速度:零知识证明的进展:https://a16z.com/2022/04/15/zero-knowledge-proofs-hardware-decentralization-innovation/
ZK-SNARK:区块链上的可更新设置:https://iohk.io/en/blog/posts/2022/09/01/zk-snarks-updatable-setups-on-the-blockchain