零知识技术(ZK)是一种推动技术,不仅将改变Web3,还将改变其他行业。
作为一种足够通用的技术,ZK可以拥有多种用例,而我们正处于弄清楚该技术可以实现的所有用例的早期阶段。一些明显的ZK用例已经找到了真正的应用,例如实现交易隐私和数据压缩(即Rollup),然而要让ZK被主流采用,仍然需要发掘进一步的潜在用例和技术进步。
本文我们将首先回顾ZKP的不同应用,然后将讨论什么可以实现这项技术的下一阶段,以及一些可以从这项技术中受益的创业想法。
ZKP的应用地图
自发明以来,零知识证明(ZKP)已在加密行业站稳脚跟。
ZKP确实存在一些魔力,使这项技术非常令人兴奋——它允许实体向世界其他地方证明自己知道一条信息或已经正确完成了一项任务,但却无需透露该信息或显示该任务的详细执行信息。
ZK的数学魔力允许我们通过检查生成的ZKP来信任该知识或任务已执行完毕,出于这个原因,ZKP的第一个也是最一致的用例就是以隐私为中心的加密网络,ZKP还被用于提供以太坊L1上关于L2交易的有效性证明,以引入ZKRollup的概念,此外ZKP在不同的项目中也被广泛应用于其他小众应用程序。
注重隐私的支付和协议
ZKP自然而然地实现了隐私特性,特别是在去中心化网络中,人们缺乏可以充当真相来源的中心化权威——ZKP允许Web3用户(证明者)向网络验证者证明他们的交易是有效的,即他们有足够的余额可以花费,而无需透露交易细节,例如交易金额、发送者或接收方地址。
ZKP最初是为了支持Zcash网络中的隐蔽支付(即私有支付)而开发的,随后扩展到了其他网络,包括:
- 注重隐私的L1:Zcash、Horizon、Aleo和IronFish;
- 一般链上的隐私智能合约:TornadoCash;
- 注重隐私的L2:Aztec;
ZKRollups的验证
ZKP的另一个主要用例是在底层L1上生成Rollup有效性证明,通用Rollup通过不利用ZKP的隐私功能来优化吞吐量,即证明更多的交易(TX),在这种权衡中,ZKP仅用来证明L2交易执行的正确性。
由于一些通用函数不能被有效地证明,因此生成ZKP来证明任意智能合约的正确执行是很困难的,解决这个问题需要实现专门的虚拟机(VM),这些VM可以使用底层ZK电路有效地进行验证。由于这种复杂性,ZKRollup最初只支持支付或单个应用程序,例如可以很容易地生成ZKP的DEX。
这里的例子包括zkSync1.0和Loopring,之后通用的zkEVM实现开始出现在市场上,包括Starknet、zkSync2.0、PolygonzkEVM和Scroll。目前所有ZKRollup都在以太坊上,但其实也可以在包括比特币在内的其他链上实现ZKRollup。
然而,比特币Rollup的实施将需要更改比特币操作码并进行链的硬分叉,这通常不受比特币社区的欢迎。
其他ZKP应用
除了注重隐私的应用程序和Rollup之外,ZKP还在其他区块链协议中进行更广泛方面的应用。
Mina
Mina使用ZKP将区块链状态压缩成很小的规模(约22KB),为了实现这一点,Mina使用递归ZKP,即其他ZKP的ZKP。
当在Mina网络中生成一个区块时,zk-SNARKs被用来生成该区块的证明,以确保其有效性;当新的区块引用以前的区块时,新区块的ZKP会验证所有以前的区块,同时保持恒定的大小。
Filecoin
Filecoin使用ZKP来确保存储提供商正确存储他们声称要存储的数据,此过程称为复制证明(PoReb)。
在此过程中,存储提供程序生成ZKP以证明它们正在存储数据的唯一副本,即非由其他存储提供程序维护的副本。ZKP为希望实现一定冗余和可用性水平的Filecoin用户提供了保证,此外由于证明的大小比存储的数据小得多,因此使用ZKP可以降低存储提供程序的带宽要求。
CeloPlumo
CeloPlumo使用ZKP来创建可在手机和其他资源有限的设备上使用的超轻量级网络客户端,尽管客户端具有轻量级性质,但它可以保证其访问状态的正确性。
DarkForest
DarkForest是ZKP在游戏领域最受欢迎的应用。尽管ZKP的使用符合隐私用例,但DarkForest在支付网络中的金融应用之外,将它用于创建一个不完全信息游戏的应用,所以这是一个与众不同的用例。
ZKP的发展轨迹及其应用
2016年之前,ZKP作为一个研究课题,只在少数的学术圈子里讨论。当Zcash创始团队创建第一个ZKP变体(zk-SNARK)以支持Zcash网络中的屏蔽/私有交易时,一切开始改变。
有了真正的用例,大家对ZKP的兴趣就越来越大,这进一步导致了更好的ZKP变体,从而成为第一章节中讨论的许多项目的基础,然而该技术需要进一步的ZKP开发才能被主流采用。
为了了解如何进一步改进技术,我们可以向人工智能(AI)等类似技术学习,因为在许多方面ZKP技术类似于AI技术,所以预计它也将遵循类似的轨迹。
与ZKP一样,AI最初是一项有前途的技术,可以解决许多问题。然而最初的AI算法在功能上受到限制,并且计算复杂性远远超过了可用硬件的能力,这使得AI应用进展缓慢且不切实际,从而主要被局限于研究实验室。
后续通过发明深度神经网络(DNN)等新架构和利用GPU提高执行速度,AI持续实现逐步改进,最终导致了突破,例如2012年的AlexNet在最著名的计算机视觉竞赛ImageNet中以巨大的优势获胜。AlexNet是AI时代的开始,它导致了当前令人兴奋的AI应用程序,如GPT-3、Dall.E2和StableDiffusion。
今天的ZKP状态类似于早期的AI状态,这是一项有前途的技术,仍在积极开发中,并且因计算密集型特性而导致证明时间很长。从AI的进步轨迹中学习,我们可以确定ZKP技术起飞需要解决的瓶颈。
1.算法/电路改进
就像AI从LeNet-5到AlexNet,从Resnet-50到Transformer一样,ZKP算法也将经历开发阶段以显著提高性能。我们已经看到这方面的进展,自2011年引入zk-SNARKs以来,行业已经开发了更先进的算法。
譬如2018年Starkware创始人开发的STARK,这是一种不需要可信设置且证明生成时间更短的ZKP方法,这项技术是Starkware旗下StarkNet在内的几款产品的基础。
随着在2019年引入PLONK,ZKP继续取得进展——PLONK是一种SNARK实现,允许许多应用程序使用单个受信任的设置,而无需重复设置。PLONK刺激了多种ZKP实现的开发,被多个Web3协议(如Aztec、Mina和Celo)使用。
2.执行引擎优化
ZKP的一个主要限制是计算复杂性导致较长的证明时间。例如最近宣布的PolygonzkEVM,需要在64核服务器上运行大约5分钟才能生成50万Gas计算的证明。
缩短ZKP验证时间是将ZKP技术纳入主流的关键部分,与AI类似,优化软件执行引擎和使用专用硬件都是实现这一目标的必要条件。
优化的软件
许多ZKP生成操作都是大规模并行的,这意味着并行处理(例如GPU)可以加速ZKP计算。专用的GPU库(如CUDA)可用于加速NvidiaGPU上ZKP的计算,由于每个项目都使用不同的ZKP算法,因此有几个项目正在尝试在内部进行开发。
一个值得注意的例子是Filecoin对Groth16算法的实现,该算法使用GPU来加速证明过程;另一个例子是Edgeswap使用GPU将PLONK的验证时间缩短了75%。
专用硬件
由于GPU对ZKP验证时间的改进通常是有限的,因此另一种选择就是使用专用硬件,例如FPGA或ASIC。
在制造专用芯片(即ASIC)的昂贵努力之前,FPGA通常被认为是硬件原型设计平台。FPGA或结合GPU和FPGA的混合解决方案,可以在中短期内加速ZKP应用于Rollup和注重隐私的网络。
然而如果ZKP技术发展到我们预期的水平,ASIC最终将赢得这个市场。目前ZKP的硬件加速尚未得到充分解决,这可能是因为ZKP算法的多样性和碎片化,但是我们相信通过正确的商业模式,一些初创公司可以专注于开发和货币化这部分技术堆栈。
3.软件抽象层
为了释放ZKP的潜力,需要构建多个抽象层和工具,这些抽象对于简化ZKP应用程序的开发过程是必要的——允许每组开发人员专注于他们最擅长的事情,例如应用程序开发人员不应该担心ZK电路的底层细节以及它们是如何工作的。
再次使用AI类比,通过创建多个抽象层,AI可以取得巨大进步。使用这些抽象,AI应用程序开发人员无需担心NN架构或硬件资源分配,因为TensorFlow和PyTorch等框架抽象出了所有这些底层细节。
ZK开发堆栈还没有像AI堆栈那么完善,但是仍有一些努力来构建这些抽象层:堆栈的底部存在低级ZKP库,如PLONK和STARK;在该层之上,诸如Noir之类的高级语言试图抽象出底层的ZK密码学,并帮助应用程序开发人员专注于应用程序逻辑;Circom是另一种流行的ZKP语言,位于这两层之间,因为它既可用于创建复杂的ZK后端,也可用于开发基于ZKP的应用程序。
Web3中ZKP抽象的另一个例子是StarkWare的Cairo语言,它允许开发人员实现在底层使用STARK证明的通用智能合约。为了提供进一步的抽象,Nethermind的Warp工具允许Solidity开发人员将他们的Solidity代码直接转换为Cairo。
譬如使用Warp,可以将UniswapV3代码转译为Cairo,且只需对原始Solidity代码进行最少的更改。
ZKP的创业机会
基于对ZKP可能发展路径的讨论,我们确定了一些与ZKP相关的创业想法,主要理念分为两类:工具和应用。
ZKP工具
1.高级开发框架
与AI中的Tensorflow和PyTorch类似,高级ZKP开发框架对于在应用程序级别实现创新至关重要。这些框架需要:
将底层ZKP后端的复杂性抽象出来;
支持各种ZKP后端和硬件环境,例如CPU和GPU;
允许高效的调试和测试;
提供包含示例和教程的丰富开发环境;
以太坊生态系统中最接近的例子是Hardhat和Foundry,但它们不太可能很快支持zkEVM或ZKP,相反,像Cairo这样的现有抽象工作,最终可能会发展到填补这个空间。
2.ZKRollupSDK
ZKRollup越来越受欢迎,可以为游戏或高吞吐量DeFi协议启用特定于应用程序的L2。在这种情况下,ZKRollup主要负责执行和结算,而共识和数据可用性将由L1处理。
但是启动特定于应用程序的ZKRollup仍然非常复杂,我们相信提供对开发人员友好的SDK来启动自定义ZKRollup的初创公司将解决真正的业务需求,并可以通过提供开发工具箱、开发人员服务、排序器服务和支持基础设施来成为价值业务。
3.ZKP硬件加速器
以特定用例为目标并建立早期市场领先地位的专业硬件公司最终成为具有巨大价值的公司,人工智能就是如此——Nvidia通过专注于人工智能硬件成为最有价值的北美半导体公司。
在比特币挖矿领域也是如此,当时比特大陆(Bitmain)、嘉楠科技(Canaan)和Whatsminer通过专注于ASIC矿机而成为独角兽,而设计和制造高效ZKP硬件加速器的公司也将遵循相同的轨迹。
ZKPWeb3应用程序
1.ZK跨链桥和互操作性
ZKP可用于为跨链消息传递协议创建有效性证明,其中跨链消息可以在目标链上快速验证,这类似于在底层L1上验证ZKRollup的方式。但是对于跨链消息传递,复杂性更高,因为要验证的签名方案和加密函数在源链和目标链之间可能不同。
2.ZK链上游戏引擎
DarkForest证明了ZKP可以使信息不完全的链上游戏成为可能,这对于设计更具互动性的游戏至关重要,在这些游戏中玩家的行为在决定公开之前是保密的。随着链上游戏的成熟,我们预计ZKP将成为游戏执行引擎的一部分,因此对于成功将隐私功能集成到高吞吐量链上游戏引擎中的初创公司来说,机会巨大。
3.身份解决方案
ZKP可以在身份领域创建新的机会,譬如用于创建声誉或连接Web2和Web3身份,目前我们的Web2和Web3身份是分开的,像Clique这样的项目通过使用预言机连接这些身份。
ZKP可以通过启用Web2和Web3身份的匿名链接来进一步采用这种方法:可以为那些可以使用Web2或Web3特定领域专业知识的人,提供匿名DAO成员资格等场景的用例;另一个用例则是基于借款人的Web2社会地位(例如Twitter关注者的数量),提供无担保Web3贷款。
4.符合法规要求的ZKP
Web3使匿名在线帐户能够积极参与金融系统,从这个意义上说,Web3实现了巨大的财务自由和包容性。随着Web3法规的增加,ZKP可在合规的基础上不破坏匿名性,譬如ZKP可用于证明用户不是受制裁国家的公民或居民,ZKP还可用于证明合格投资者身份或任何其他KYC/AML要求。
5.原生Web3私募债务融资
TradeFi债务融资通常用于支持成长中的初创公司加速增长或启动新的业务线,而无需筹集额外的风险资金。
Web3DAO和匿名公司的兴起为Web3原生债务融资创造了机会,例如使用ZKP,DAO或匿名公司可以根据其增长指标的证明,以具有竞争力的利率获得非抵押贷款,而无需向贷方透露借款人的信息。
6.私有DeFi
金融机构通常会对其交易历史和风险敞口进行保密,但由于区块链分析的不断发展,当使用链上产品(即DeFi协议)时,要满足这一点就十分具有挑战性,一个可能的解决方案是开发以隐私为中心的DeFi产品,以保护协议参与者的隐私。
譬如Penumbra的zkSwap,此外Aztec的zk.money通过模糊用户参与的DeFi协议操作,也提供了一些私有DeFi赚钱机会。
一般来说,成功实施高效且注重隐私的DeFi产品的协议,可以从机构参与者那里获得可观的用户数量和收入。
7.基于ZKP的Web3广告
Web3推动用户对其数据的所有权,例如浏览历史记录、私人钱包活动等,Web3还可以使这些数据货币化以造福用户。由于数据货币化可能与隐私相矛盾,ZKP可以在控制个人数据的哪些方面可以向广告商和数据聚合商披露方面发挥重要作用。
8.私人数据的共享和货币化
如果与正确的实体共享,我们的大部分私人数据可能都会产生很大的影响。譬如个人健康数据可以众包,以帮助研究人员开发新药;私人财务记录可以与监管机构和监管机构共享,以识别和惩罚腐败等等;ZKP可以实现此类数据的私人共享和货币化。
9.去中心化的情报组织
ZKP可以催生去中心化的情报组织。在这些系统中,情报人员、数据侦探和间谍可以成为网络的一部分,而无需互动或相互了解。参与者可以在接收私人付款以换取该数据之前,使用ZKP来证明对某些情报数据的了解。此类系统还可以促进协作和可组合的方式,以丰富或解释收集的数据,同时保持参与者的隐私。
10.私人治理
随着DAO和链上治理的激增,Web3正在向直接参与的民主靠拢,当前治理模式的一个主要缺陷是参与的非隐私性。ZKP可能是解决此问题的基础,治理参与者可以在不透露他们如何投票的情况下投票。此外ZKP可以将治理提案的可见性限制为DAO成员,从而使DAO能够建立竞争优势。
结论
ZKP技术是Web3领域最具创新性的技术之一,它为突破性的协议和公司提供了多种机会。
(声明:请读者严格遵守所在地法律法规,本文不代表任何投资建议)