原文标题:ZKPs in Web 3: Now and the Future
原文作者:Mohamed Fouda、Qiao Wang
原文编译:ChinaDeFi
零知识技术 ( 简称 ZK) 是一种使能技术,它不仅将改变 Web3,还将改变其他行业。它是一种可以通用的技术,具有大量的用例。我们正处于弄清这项技术所能实现的所有用例的早期阶段。一些明显的 ZK 用例已经有了实际的应用程序,如启用交易隐私和数据压缩,即 Rollup。然而,要使 ZK 获得主流采用,仍然需要许多潜在的用例和技术进步。
在本文中,我们将首先回顾 ZKP 的不同应用。然后会讨论什么可以使这项技术的下一阶段成为可能,以及关于一些可以从这项技术中受益的初创公司的想法。
ZKP 应用程序
零知识证明 (ZKP) 自发明以来就在加密行业中找到了强大的立足点。ZKP 确实有一些「魔法」,使这项技术非常令人兴奋。在较高的级别上,ZKP 允许实体向世界的其他部分证明他们知道一条信息,或者他们已经正确地完成了一项任务,而无需透露该信息或显示任务执行的细节。ZK 的神奇数学允许我们通过检查生成的 ZKP 来信任知识或信任执行已完成。因此,ZKP 的第一个也是最一致的用例是关注隐私的加密网络。ZKP 还用于在以太坊 L1 上提供以太坊 L2 交易的有效性证明,以引入 ZK-Rollup 的概念。此外,ZKP 还在不同的项目中发现了其他小众应用。
关注隐私的支付和协议
ZKP 原生的会保护隐私,特别是在去中心化的网络中,缺乏一个可以作为真相来源的中心化机构。ZKP 允许 Web3 用户 ( 证明者 ) 向网络验证者 ( 验证者 ) 证明他们的交易是有效的,同时他们不需要透露交易细节,如交易金额,发送者或接收者地址。
ZKP 最初是为了支持 Zcash 网络中的隐蔽功能,即私人支付,其后又扩展到其他网络。实施私人支付网络包括:
关注隐私的L1:Zcash、Horizon、Aleo 和 Iron Fish
通用链上的隐私智能合约:Tornado Cash
注重隐私的 L2:Aztec
ZK-Rollup 验证
ZKP 的另一个主要用例是在底层 L1 上生成 Rollup 有效性证明。通用 Rollup 决定不用 ZKP 的隐私特性,这样就可以优化吞吐量,即证明更多的 TX。在这种权衡中,ZKP 仅作为 L2 交易执行正确性的证明。
由于一些通用函数不能被有效地证明,生成 ZKP 来证明任意智能合约的正确执行是很困难的。解决这个问题需要专门的 VM,这些 VM 可以使用底层 ZK 电路有效地进行验证。由于这种复杂性,ZK-Rollup 最初只支持支付或单个应用程序,例如,可以很容易地生成 ZKP 的 DEX。这里的例子包括 ZKSync 1.0 和 Loopring。之后,通用的 zkEVM 实现开始出现在市场上,包括 Starknet、zkSync 2.0、Polygon zkEVM 和 Scroll。目前,所有 ZK-Rollup 都在以太坊上,但也有可能在包括比特币在内的其他链上实现 ZK-Rollup。然而,实施比特币 Rollup 将需要改变比特币操作码和硬分叉链,这通常不受比特币社区的欢迎。
其他 ZKP 应用程序
除了关注隐私的应用程序和 Rollup 之外,我们还在其他区块链协议中发现了其他应用程序。本节将介绍这些用例。
Mina
Mina 使用 ZKP 将区块链状态压缩到一个很小的尺寸 (~22 KB)。为了实现这一点,Mina 使用递归 ZKP,即其他 ZKP 的 ZKP。当在 Mina 网络中生成一个区块时,ZK-SNARK 用于生成该区块的证明,以确保其有效性。当新区块引用以前的区块时,新区块的 ZKP 会验证所有以前的区块,同时保持恒定的大小。
Filecoin
Filecoin 使用 ZKP 来确保存储提供者正确地存储了他们声称要存的数据。这个过程称为复制证明 (PoReb)。在这个过程中,存储提供者生成 ZKP 来证明它们存储的是数据的唯一副本,也就是说,没有引用由另一个提供者维护的副本。此外,由于证明的大小比存储的数据小得多,使用 ZKP 减少了存储提供者的带宽需求。
Celo Plumo
Celo Plumo 使用 ZKP 来创建可以在手机和其他资源有限的设备上使用的超轻型网络客户端。尽管客户端是轻量级的,但它保证了所访问状态的正确性。
Dark Forest
Dark Forest 是 ZKP 游戏领域中最受欢迎的应用。尽管 ZKP 的使用符合隐私用例,但把它用于创建不完全信息游戏的应用确实是比较独特的,超越了 ZKP 在支付网络中的金融应用范围。
ZKP 及其应用的发展轨迹
在 2016 年之前,ZKP 只是一个研究课题,只在少数学术圈子内被讨论。当 Zcash 创始团队创建了 ZKP 变体 ZK-SNARK 的第一个可生产实现,以支持 Zcash 网络中的屏蔽 / 私人交易时,这一切都改变了。有了真实的用例,对 ZKP 的兴趣也就愈加浓郁,从而也产生了更好的 ZKP 变体,这也成为第一节中讨论的许多项目的基础。然而,该技术要实现主流采用还需要进一步的 ZKP 开发。
为了了解如何进一步改进这项技术,我们可以借鉴类似的技术,如人工智能。在许多方面,ZKP 技术类似于人工智能技术,预计也将遵循类似的轨迹。和 ZKP 一样,人工智能一开始也是一项很有前途的技术,可以解决很多问题。然而,最初的人工智能算法在能力上受到限制,计算复杂度远远超过了现有硬件的能力。这使得人工智能应用的开发和使用变得缓慢和不切实际,使得人工智能就局限在了研究实验室里。通过发明 DNN 等新架构并利用 GPU 来提高执行速度,现在正在逐步改进。这最终带来了一些突破,比如 2012 年的 AlexNet,它以巨大的优势赢得了最著名的计算机视觉比赛 ImageNet。
AlexNet 是人工智能时代的开始,催生了当前的人工智能应用程序,如 GPT-3, Dall.E 2 和 Stable Diffusion。
ZKP 今天的状态类似于 AI 早期的状态,AI 是一项有前途的技术,仍在积极开发中,只是计算密集型导致其验证时间过长。从 AI 的经验中,我们可以确定 ZKP 技术起飞需要解决一些问题。
算法 / 电路改进
与 AI 从 LeNet-5 到 AlexNet 到 Resnet-50 到 Transformer 的发展方式相同,ZKP 算法将经历发展阶段,其会带来性能的显著提高。其实我们已经看到了这方面的进展。自 2011 年引入 ZK-SNARK 以来,我们已经开发出了更先进的算法。2018 年,Starkware 的创始人开发了 STARK,这是一种 ZKP 方法,不需要可信设置,证明生成时间更短。这项技术是 Starkware 公司包括 StarkNet 在内的几款产品的基础。
随着 2019 年 PLONK 的引入,ZKP 得到持续发展,这是一种 SNARK 实现,其允许许多应用程序使用单个受信任的设置,而无需进行重复设置。PLONK 刺激了多种实现的开发,这些实现被多种 Web3 协议(例如 Aztec、Mina 和 Celo)使用。
优化执行引擎
ZKP 的一个主要限制是计算的复杂性,这导致了证明时间过长。例如,最近 Polygon 发布的 zkEVM 实现了在 64 核服务器上用 5 分钟生成 500k gas 计算的证明。提高 ZKP 验证时间是 ZKP 技术主流化的关键。与 AI 类似,优化软件执行引擎和使用专用硬件都是实现这一目标的必要条件。
优化软件
许多 ZKP 生成操作是大规模并行的,这也就意味着并行处理,例如 GPU,可以加速 ZKP 的计算。专用的 GPU 库 ( 如 CUDA) 可以用于加速 Nvidia GPU 上 ZKP 的计算。由于每个项目都使用不同的 ZKP 算法,因此有几个项目正在尝试在内部开发这种算法。这里显著的例子是 Filecoin 对 Groth16 算法的实现,该算法使用 GPU 来加速证明过程。另一个例子是 Edgeswap 使用 GPU 将 PLONK 的证明时间缩短了 75%。
专用硬件
由于 GPU 通常使得 ZKP 验证时间的改进有限,在这种情况下,我们的另一种选择是使用专用硬件,如 FPGA 或 ASIC。FPGA 通常被认为是在制造专用芯片 ( 即 ASIC) 之前的硬件原型平台。FPGA、或者结合了 GPU 和 FPGA 的混合解决方案,可以在中短期内,在加速中心化网络和以隐私为重点的网络的 ZKP 方面发挥重要作用。然而,如果 ZKP 技术发展到我们预期的水平,ASIC 将最终赢得这个市场。目前,ZKP 的硬件加速还没有得到充分解决,这可能是因为 ZKP 算法的多样性和碎片化。然而,我们相信,有了正确的商业模式,一些初创公司可以专注于开发和货币化这部分技术堆栈。
软件抽象层
为了释放 ZKP 的潜力,需要构建几个抽象层和工具。这些抽象对于简化 ZKP 应用程序的开发过程是非常必要的,而且应该允许每一组开发人员专注于他们最擅长的工作。例如,应用程序开发人员不应该担心 ZK 电路的底层细节及其工作方式。再次使用 AI 的类比,通过创建多个抽象层,AI 可能取得巨大进步。使用这些抽象,AI 应用程序开发人员不需要担心硬件资源分配。TensorFlow 和 PyTorch 等框架抽象了所有这些底层细节。
ZK 开发栈还没有 AI 开发栈那么完善。然而,构建这些抽象需要一些努力。在堆栈的底部存在低级 ZKP 库,如 PLONK 和 STARK。在这一层之上,像 Noir 这样的高级语言试图抽象出底层的 ZK 密码学,并帮助应用程序开发人员专注于应用程序逻辑。Circom 是另一种流行的 ZKP 语言,它位于这两层之间,因为它既可以用于创建复杂的 ZK 后端,也可以用于开发基于 ZKP 的应用程序。
Web3 中 ZKP 抽象的另一个例子是 StarkWare 的 Cairo 语言,它允许开发人员实现在底层使用 STARK 证明的通用智能合约。为了提供进一步的抽象,Nethermind 的 Warp 工具允许 Solidity 开发人员将他们的 Solidity 代码直接转换为 Cairo。使用 Warp,可以将 Uniswap V3 代码转换为 Cairo,只需要对原始的 Solidity 代码进行最少的改动。
ZKP 创业机会
基于对 ZKP 可能的发展路径的讨论,我们已经确定了一些与 ZKP 相关的创业想法。具体想法可分为两组:工具和应用程序。
ZKP 工具
高级开发框架
类似于 AI 中的 Tensorflow 和 PyTorch,高级 ZKP 开发框架对于解锁应用级别的创新至关重要。这些框架需要:
抽象底层 ZKP 后端的复杂性;
支持各种 ZKP 后端和硬件环境,例如 CPU 和 GPU;
可进行高效的调试和测试;
提供具有示例和教程的丰富开发环境。
以太坊生态系统中最接近的例子是 Hardhat 和 Foundry,但它们不太可能很快支持 zkEVM 或 ZKP。
ZK-Rollup SDK
ZK-Rollup 越来越流行,可以为游戏或高吞吐量的 DeFi 协议启用特定于应用程序的 L2。在这个场景中,ZK-Rollup 主要进行执行和结算,而 L1 将处理共识和数据可用性。然而,启动特定于应用程序的 ZK-Rollup 仍然非常复杂。我们相信,提供开发人员友好的 SDK 来发布自定义 ZK-Rollup 的初创公司将解决真正的业务需求,并可以通过提供开发工具箱、开发人员服务、测序器服务和支持基础设施来成为有价值的企业。
ZKP 硬件加速器
瞄准特定用例并建立早期市场领先地位的专业硬件公司被证明是非常有价值的公司。当英伟达专攻人工智能硬件,成为北美最有价值的半导体公司时,人工智能领域就是如此。比特币挖矿领域也是一样,Bitmain、Canaan 和 Whatsminer 通过专攻 ASIC 挖矿成为独角兽。设计和制造高效 ZKP 硬件加速器的公司也很可能将遵循同样的轨迹。
ZKP Web3 应用程序
ZK 桥和互操作性
ZKP 可用于为跨链消息传递协议创建有效性证明,其中跨链消息可以在目标链上被快速验证。这类似于在底层 L1 上验证 ZK-Rollup 的方式。然而,对于跨链消息传递,由于要验证的签名方案和加密函数在源链和目标链之间可能不同,因此复杂性更高。
ZK 链上游戏引擎
Dark Forest 证明了 ZKP 可以使信息不完整的链上游戏成为可能。这对于更具互动性的游戏设计至关重要,因为在这些游戏中,玩家的行为是保密的,直到他们决定将其公之于众。随着链上游戏的成熟,我们希望 ZKP 成为游戏执行引擎的一部分。对于成功将隐私功能集成到高吞吐量链上游戏引擎中的初创公司来说,机会是巨大的。
身份解决方案
ZKP 在身份领域中拥有多个机会。它们可以用于信誉或连接 Web2 和 Web3 身份。目前,我们的 Web2 和 Web3 身份是分开的。Clique 等项目通过使用预言机连接这些身份。通过启用 Web2 和 Web3 身份的匿名链接,ZKP 可以将这种方法更进一步。这可以为那些使用 Web2 或 Web3 数据证明特定领域专业知识的人启用匿名 DAO 成员的用例。另一个用例是基于借款人的 Web2 社会地位 ( 例如 Twitter 追随者数量 ) 的无担保 Web3 贷款。
用于法规遵从性的 ZKP
Web3 使匿名在线账户能够积极参与金融系统。从这个意义上说,Web3 实现了巨大的金融自由和包容性。随着 Web3 法规的增加,ZKP 可以用于遵从而不破坏匿名性的活动。ZKP 还可用于证明投资者身份或任何其他 KYC/AML 要求。
原生 Web3 私人债务融资
TradeFi 债务融资通常用于支持成长型初创公司,以加速其增长或启动新的业务线,而无需筹集额外的风险投资。Web3 DAO 和匿名公司的兴起为 Web3 原生债务融资创造了机会。例如,通过使用 ZKP、DAO 或匿名公司可以根据其增长指标的证明以具有竞争力的利率获得无抵押贷款,而无需向贷方透露借款人的信息。
私人 DeFi
金融机构通常不公开自己的交易历史和风险敞口。由于链分析的不断进步,当使用链上协议 ( 例如 DeFi 协议 ) 时,要满足这一点是具有挑战性的。一种可能的解决方案是开发以隐私为中心的 DeFi 产品,以保护协议参与者的隐私。一个正在尝试实现这一愿景的协议是 Penumbra 的 zkSwap。此外,Aztec 的 zk.money 通过模糊用户参与的 DeFi 协议,提供了一些私人 DeFi 的赚钱机会。一般来说,成功实现高效且注重隐私的 DeFi 产品协议可以从机构参与者那里获得可观的收入。
Web3 广告的 ZKP
Web3 推动了让用户拥有自己的数据的潮流,例如浏览历史、私人钱包活动等。Web3 还为用户的利益支持这些数据的货币化。由于数据货币化可能与隐私相矛盾,ZKP 可以控制个人数据的哪些方面允许透露给广告商和数据聚合商。
私人数据的共享和货币化
如果与正确的实体共享,我们的许多私人数据都可以产生很大的影响。个人健康数据可以通过众包来帮助研究人员开发新药。私人财务记录可以与监管机构和监督机构共享,以发现和惩罚不当行为。ZKP 可以实现这种数据的私人共享和货币化。
私人治理
DAO 和链上治理正在被普及,当前治理模式的一个主要缺陷是参与的非隐私性。ZKP 是解决这个问题的基础。治理参与者可以在不透露投票方式的情况下进行投票。此外,ZKP 可以限制治理提案对 DAO 成员的可见性,从而使得 DAO 建立竞争优势。
结论
ZKP 技术是 Web3 领域中最具创新性的技术之一。它为突破性协议和公司提供了一些机会。