Web3中零知识证明的应用与创业机会
原文:《》by Mohamed Fouda
编译: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领域中最具创新性的技术之一。它为突破性协议和公司提供了一些机会。