来源:《HowtoLeverageZKPsasaWeb3Builder》
作者:MohamedFouda、QiaoWang
编译:深潮TechFlow
零知识证明正在成为未来十年根本性变革的技术。ZKP在Web3内外都有着应用。
在Web3中,ZKP正在解决两个主要瓶颈——可扩展性和隐私:
在可扩展性方面,几个ZKRollups,又名ValidityRollups,正在推出以将以太坊扩展10-100倍,同时通过降低交易成本来改善用户体验。
在隐私方面,ZKP正从私密交易和交易混合时代扩展到更复杂和有用的领域,例如私密链上交易、身份和经过验证的凭据。
关于ZKP有很多内容,包括我们自己对ZKP空间未来发展的愿景以及为实现这一未来所需的创业公司。然而,建设者如何从ZKP中受益以及从哪里开始仍存在一定的教育差距。
本文旨在通过汇集重要资源来填补这一差距,指导开发人员了解ZKP在实践中的工作原理以及如何在其应用中使用ZKP。
ZKP在实践中是如何运作的?
ZKP实际上是通过证明者向验证者证明他们知道特定信息而不泄露该信息的一种技术。
在实践中,至少在Web3中,ZKP的使用方式通常不同。大多数应用程序不使用ZKP来显示专有数据的所有权。相反,ZKP被用于通过可验证性提高信任。我们预计ZKP将成为未来实体之间标准的信任模型。原因是ZKP的两个主要组成部分——证明和验证——正在以一种使信任寻求实体与其用户之间具有独特互动方案的方式被分离。
ZKP的主要组成部分是证明生成和证明验证。
证明生成涉及运行大量计算以生成执行过程的证明,这个证明用于消除对证明者的信任需求。
相反,任何人都可以在证明上运行一个简单的过程来验证证明者运行过程的完整性。
这种心理模型允许企业运行一个流程,并允许客户信任所述流程的执行而不需要重复执行该流程。
让我们举个例子:
假设你订阅了OpenAI的付费计划,使用他们的大型语言模型之一,例如chatGPT。您必须相信OpenAI确实运行了您请求的特定模型,而不是用更简单、效率更低的模型替换它。如果OpenAI可以向您发送少量数据,证明它确实运行了您请求的特定模型呢?此外,想象一下,假如每个专有SaaS产品都能为其消费者提供这样的保证,会发生什么?
央行回应非指定机构如何参与数字人民币运营:央行表示,需发挥其他商业银行及非银行支付机构作用,与指定运营机构一起,共同提供数字人民币流通服务,包括支付产品设计创新、系统开发、场景拓展、市场推广等服务。(一财)[2021/7/16 0:57:56]
这种信任最小化是ZKP的承诺。例如,在Web2中,ZKP可以通过确保所有客户使用相同的算法来保证公平的信用评估或公平的保险索赔处理。ZK技术还没有到达那个水平,因为运行ZKP过程仍然相对昂贵。然而,我们看到像ModulusLabs这样的公司正在构建一种使用ZKP证明AI推断的技术。
ZKP的技术要求
在技术层面上,一个高效的ZKP系统需要同时实现以下目标:
降低证明系统的计算复杂度和延迟,即让证明者可以高效生成证明并在最短时间内将其传递给验证者。
实现小型证明大小。
实现高效验证,即最小化验证成本。
除了这些主要目标外,根据用例可能需要一些次要目标,例如:
在隐私焦点应用程序中保护数据的隐私,这意味着证明系统可以处理未在生成的证明中泄露的私有输入。
尽可能避免信任设置以简化安全假设。
实现证明递归以进一步减少验证成本,即单个验证可以验证多个证明,并在不同证明之间分摊成本。
同时实现所有这些目标是具有挑战性的。根据用例,ZKP系统会优先考虑其中一些目标。例如,SNARK证明系统可以产生简洁的证明,但证明复杂度会增加。另一方面,STRAK具有高效的证明者,但证明大小可能比SNARK大100倍。zk的研究人员不断努力推动技术前沿,通过发明新的证明机制同时提高三个指标。
不同证明系统的比较
对于构建与ZKP相关产品的开发人员来说,要考虑的一个重要问题是如何选择底层证明系统,有几个ZKP证明实现,还有更多处于研发阶段。
ZKP后端选择不仅取决于技术方面,而且还取决于目标产品。以为Rollup选择证明系统为例。Rollup的关键特征,例如提款时间、交易成本,甚至去中心化程度,将主要由ZKP证明架构决定,如下表所示。
在Rollup中,证明发生在业务方面,即通过Rollup运营商。现有的ZKRollups,例如Starknet和Zksync当前使用集中的证明者。因此,他们可以将证明委托给专门的证明者,即证明作为服务公司,以提高证明者性能。通过专业化和利用优化的软件/硬件,对于与以太坊兼容的zkEVMs,证明时间可以缩短到几分钟。例如,PolygonzkEVM的证明时间目前约为2分钟。几分钟的证明时间,即提款延迟,对于Rollup来说是可接受的。
Roger Ver将与国家元首探讨如何使比特币现金成为主权国家的官方货币:5月31日消息,Roger Ver声称,将与国家元首见面讨论如何使比特币现金成为主权国家的官方货币。 有分析师发布了来自Discord频道的帖子屏幕截图,该帖子的用户名作者为“ rogerver”。随后比特币现金联盟的subreddit / r / BTC的成员声称已确认该作者即是Roger Ver,即“比特币耶稣”(Beincrypto)[2020/5/31]
另一方面,一些用例需要证明发生在用户端,生成私人交易,如TornadoCash交易。为了确保合理的用户体验,证明时间不能超过几秒钟。此外,由于用户在使用钱包或在资源受限的设备上在浏览器中执行这些计算,所以选择具有快速证明者的证明系统非常重要。一个很好的例子是Zcash在2018年Sapling升级中将其证明系统更改为Groth16,这是提高屏蔽交易速度的一个主要因素。
比较证明系统
通常,很难获得不同证明系统性能的准确比较,特别是对于证明和验证速度,因为它们取决于库实现、选择的加密曲线和使用的硬件。
Mina团队在这篇文章中提供了一个很好的高级比较。还有一些用于不同的ZK系统的努力创建基准测试工具。
这个表格提供了SNARK实现的良好比较,并介绍了它们在速度方面从Groth16到Plonk再到Halo的进展情况。尽管有所进展,STARK仍然在证明速度方面胜出,但代价是更大的证明大小。该表还讨论了证明系统的两个重要特征:设置无信任性和电路可编程性。
设置无信任性部分讨论了电路创建的预处理阶段。一些证明技术需要通过多方计算参与,在预处理阶段生成秘密随机数。如果单个参与者是诚实的,则生成的随机数确实是秘密的,预处理部分是安全的。这个过程称为“信任设置”,因为它信任至少一个预处理阶段的参与者是诚实的。需要信任设置被认为是一种弱点。在这个意义上,STARK和新的SNARK系统具有优势。然而,一些项目将信任设置作为吸引社区参与的工具,例如Aztec和Manta。
可编程性部分讨论了证明系统是否可以证明任意计算。SNARK通常可以对任何计算进行编程。然而,证明效率取决于所执行的计算类型。对于某些类型的STARK系统来说,这并不是适应不同类型计算的容易的情况。
声音 | Ripple CEO:正与监管机构会面解释如何使用加密技术:Ripple CEO Brad Garlinghouse在接受采访时表示其正在告诉银行,“加密不是一个坏词”。他称,“我正在做很多事情是与监管机构、银行高层会面,向他们解释如何使用加密技术,特别是XRP来解决实际问题,而不是规避监管。一旦人们理解了这一点,他们很快就会解除武装,加密这个词就不再是一个贬义词”。(CoinTeleraph)[2020/2/20]
如何为您的产品利用ZKP?
建立一个能够从ZKP技术中受益的产品并非易事,需要建立正确的心理模型。
本节尝试为开发人员提供一个框架,以选择最佳方法来将ZKP集成到其产品中。根据产品需求、生态系统对齐和性能要求,将有几个工具可供开发人员选择。一些开发人员将能够重复使用其现有的代码,而另一些则必须学习新的领域特定语言来创建其应用程序。
以性能为主的zk应用程序
开发人员可以使用ZKP通过将大部分应用程序计算脱离链外,并仅在链上发布证明来实现更高的吞吐量或更低的费用。在这种情况下,有多个框架可供选择。每个框架提供了一组工具,用于编译应用程序代码,生成ZK电路,实现ZK证明者,并为目标生态系统生成验证器代码。我们可以将这些框架分为两个主要类别:以EVM为中心和非EVM。
以EVM为主的ZK框架
这组ZK框架与以太坊保持一致,作为Rollup建立在其之上。交易和应用程序在Rollup的ZK虚拟机上执行。证明由专门的证明者生成,并发布到L1,由智能合约验证。
该组的第一个子集实现了与EVM兼容的zkVM,因此称为zkEVM。这些的目标是通过允许以太坊开发人员使用Solidity和熟悉的工具而将摩擦最小化。它们通过创建适用于EVM的电路和证明器来抽象ZK复杂性。PolygonzkEVM和Scroll都包括在此桶中。
该组的第二个子集是不本地兼容EVM的zkVM。尽管不兼容,此组通过创建中间层来允许开发人员使用Solidity,从而减少了摩擦。Vitalik称这个类型为type-4zkEVM。zkSyncEra和Starknet是这个组的好例子。使用Type-4zkEVM的优点是可以提供比兼容EVM类型更高的吞吐量和更低的费用。这使得它们适用于构建高吞吐量的应用程序,例如链上游戏或高性能金融产品,例如订单簿DEXs。
声音 | 新加坡金管局高管:金管局正在研究如何通过监管应对加密货币带来的风险:据Finance Magnates消息,新加坡金融管理局(MAS)高管Damien Pang在本周四举行的年度金融科技联合大会上表示,许多监管机构和行业人士呼吁以自上而下的方式对加密货币行业进行监管。金管局正在研究加密货币带来的风险,以及如何通过监管来予以应对。 Pang称:“我们绝对需要监管加密货币,这是为了正确应对风险。例如使用加密货币为恐怖主义融资等,这是我们需要解决的问题。因此,问题不在于加密货币是否应该受到监管,而是关于(区块链)技术所带来的风险,以及我们如何在不对整个加密货币行业一网打尽的情况下,试图减轻这些风险。”[2019/6/27]
为type-4zkEVM构建应用程序需要更多的开发人员努力,因为有关于可以使用的Solidity代码的限制。或者,开发人员可以决定学习另一种语言,例如Cairo,以针对这些框架开发原生应用程序。
非EVMzk框架
另一种框架类型是那些不针对EVM架构的框架,因为它们针对竞争的L1或通用计算。尽管如此,它们仍然可以通过专门的SDK用于在以太坊上构建应用程序特定的zkRUs。
这里有两种方法:
开发人员使用高级语言编写代码,该代码针对特定的VM架构,稍后编译为ZK电路。
开发人员使用领域特定语言,例如Circom,直接生成ZK电路。
前一种方法更适合开发人员,但通常会导致更大的电路,需要更长的证明时间。
专注隐私的ZK应用程序
使用ZKP开发隐私重点的应用程序通常对开发人员来说是一项更具挑战性的任务。与可伸缩性重点的解决方案相比,使用ZKP开发隐私重点的解决方案的工作较少,使得学习曲线更加陡峭。现有的隐私应用主要关注支付隐私,并且不允许太多的可编程性。将隐私和可编程性结合起来是一项具有挑战性的任务。隐私重点的应用程序遵循以下两个实现选项之一:
1.在通用L1之上构建
要在L1上启用隐私支付应用程序,ZKP逻辑需要被构建为智能合约。该应用程序常常使用ZKP来创建私有资本池。用户使用这些私人池作为混合器,为未与其原始钱包相关联的新钱包提供资金。其中著名的例子是TornadoCash。对于这些应用程序,证明由用户执行,验证发生在链上。因此,使用具有快速证明、简单验证计算以及不泄露任何用户信息的ZKP系统至关重要。
声音 | 阿里云研究中心战略总监:需思考如何让数据更充分 有效有序的流动起来:据腾讯科技报道,在人民网举办块链技术秋季论坛上,在谈及区块链与治理结构的关系时,阿里云研究中心战略总监杨军表示,从农业时代走来,如今更多人的精力是放在如何用数据提升大家的服务体验。在未来的数字经济时代,需要思考如何让数据更充分、更有效有序的流动起来,这又涉及到数据确权、数据隐私等方面。[2018/10/23]
由于通用链并未针对昂贵的加密计算进行优化,验证成本通常对主流用户来说很昂贵,限制了这些应用程序的采用。将私人事务应用程序移动到Rollup以减少燃气费用的直觉解决方案可能会带来挑战。在这种情况下,私人交易证明需要包含在Rollup证明中,即证明递归,而目前Ethereum上的通用zkRollup无法实现证明递归。
2.构建重点隐私的新L1/L2
为了为私人交易和应用程序降低成本,开发人员不得不构建一个新的以隐私为核心的L1或专门的Rollup。大多数隐私重点链仍无法支持通用计算,并专注于专业用途。例如,Penumbra和Renegade专注于私密交易。Aleo正在通过创建专用语言Leo来编译用高级语言编写的程序以生成对应的ZK电路,从而构建用于私有应用程序的框架。应用程序的交互是在链外完成的,仅将证明作为私有交易发布到链上。Aztec正在朝着类似的方向发展,但作为EthereumL2。他们最近宣布将重点放在创建使用Noir作为默认智能合约语言的广义私人Rollup上。
ZK加速
在开发人员选择了适合其应用程序的正确ZK开发框架并选择了底层证明系统之后,下一步是优化应用程序的性能,寻找改善用户体验的方法。这通常归结为提高证明者的性能和延迟。正如前面讨论的那样,对于Rollup,缩短证明时间意味着将证明提交到L1的延迟较短,因此取款延迟也较短。对于用户生成的证明,即隐私应用程序,更快的证明意味着更短的交易生成时间和更好的用户体验。
正如我们在之前的文章中讨论过的那样,加速证明过程通常需要软件优化和专用硬件。在过去的几个月中,专用硬件竞争加剧,有多家公司进入了这场竞赛。在本节中,我们将讨论ZK加速的当前情况以及开发人员可以从这种竞争中获益的方式。
证明即服务?
到目前为止,执行ZK证明工作的标准模型是使用具有多核CPU和/或GPU的强大服务器,并利用经过优化的开源库来提高证明性能。这种模型增加了开发人员需要维护证明基础设施的运营复杂性。解决这种复杂性并允许更好的专业化的更好模型是证明即服务模型。在这个模型中,需要为某个ZK电路或某个用例生成证明的实体连接到运行专有软件执行证明计算的提供者。一些公司可以专门为特定用例生成证明。例如,Axiom构建了一个系统,用于在以太坊上生成Halo2证明的历史数据。其他参与者可以专注于特定的ZKP后端,例如Plonk或Halo2,并构建专有的优化,以实现更快速和更高效的证明计算。=nilFoundation正在进一步推广这个概念,通过构建一个ZKP计算市场。在这个ProofMarket中,证明买家提交要生成的ZKP的出价,由证明生成器进行匹配和履行。Mina也有类似的概念,称为Snarketplace,但仅限于Mina网络所需的SNARK证明。
硬件加速
随着需要高效生成zk证明的几个L1和Rollup的推出,生成这些证明并赚取相应奖励的竞争将变得日益激烈。如果这些链和L2成功吸引了大量用户,证明生成可能会发展成为类似于比特币挖矿竞争的一种军备竞赛。有不同的ZKP加速方法,即GPUvsFPGAvsASIC。这篇来自AmberGroup的文章对这些不同选择和面临的每种实现选项的挑战进行了很好的讨论。然而,从长远来看,为证明生成生产最有效的ASIC的公司将在以zk为重点的链上拥有显著的经济优势。
值得注意的是,在ZK证明竞争和比特币挖矿之间存在一个重要区别值得强调。在比特币中,挖掘过程基于简单计算,即SHA256哈希。这个计算是固定的,不容易改变,因此重点放在芯片设计创新和进入最先进的半导体节点的机会上。在ZKP领域,不同证明协议之间存在显着的分裂。即使使用相同的证明后端,例如Plonk,目标电路大小也可能导致ASIC性能的差异。这种比特币挖矿和ZKP生成之间的区别可能导致多个获胜者,每个专业化于不同的ZK后端。
有多个参与者进入ZK特定芯片领域。每个参与者专注于提高证明生成的两个主要操作之一:多标量乘法和数论变换。最后一个走出隐秘状态的参与者是Cysic,在ETHDenver期间宣布了其600万美元的种子轮融资。Cysic专注于通过使用FPGA加速MSMs。FPGA的灵活性可以使它们支持不同的ZK系统。这种方法类似于Ulventanna,该公司在1月份宣布了1500万美元的种子轮融资。ZK芯片开发空间中的其他参与者包括Ingonyama,发布了一个名为Icicle的库,可在GPU上加速MSM和NTT计算的计算,以及Accseal、Snarkify和Supranational。除了这个列表,Web3空间中的知名参与者还有其他隐秘公司和研究努力。后者的例子包括JumpCrypto的CycloneMSM实现,用于使用FPGA加速MSM计算,以及JaneStreet的FPGA实现,用于加速MSM和NTT。
由于ZKP加速的重要性越来越高,需要公平评估不同实现的竞赛正在成为推动该领域前进的重要场所。2022年的比赛奖金超过400万美元。
随着需要高效生成ZK证明的几个L1和Rollup的推出,生成这些证明并赚取相应奖励的竞争将变得日益激烈。如果这些链和L2成功吸引了大量用户,证明生成可能会发展成为类似于比特币挖矿竞争的一种军备竞赛。有不同的ZKP加速方法,即GPUvsFPGAvsASIC。这篇来自AmberGroup的文章对这些不同选择和面临的每种实现选项的挑战进行了很好的讨论。然而,从长远来看,为证明生成生产最有效的ASIC的公司将在以ZK为重点的链上拥有显著的经济优势。
值得注意的是,在ZK证明竞争和比特币挖矿之间存在一个重要区别值得强调。在比特币中,挖掘过程基于简单计算,即SHA256哈希。这个计算是固定的,不容易改变,因此重点放在芯片设计创新和进入最先进的半导体节点的机会上。在ZKP领域,不同证明协议之间存在显着的分裂。即使使用相同的证明后端,例如Plonk,目标电路大小也可能导致ASIC性能的差异。这种比特币挖矿和ZKP生成之间的区别可能导致多个获胜者,每个专业化于不同的ZK后端。
有多个参与者进入ZK特定芯片领域。每个参与者专注于提高证明生成的两个主要操作之一:多标量乘法和数论变换。最后一个走出隐秘状态的参与者是Cysic,在ETHDenver期间宣布了其600万美元的种子轮融资。Cysic专注于通过使用FPGA加速MSMs。FPGA的灵活性可以使它们支持不同的ZK系统。这种方法类似于Ulventanna,该公司在1月份宣布了1500万美元的种子轮融资。ZK芯片开发空间中的其他参与者包括Ingonyama,发布了一个名为Icicle的库,可在GPU上加速MSM和NTT计算的计算,以及Accseal、Snarkify和Supranational。除了这个列表,Web3空间中的知名参与者还有其他隐秘公司和研究努力。后者的例子包括JumpCrypto的CycloneMSM实现,用于使用FPGA加速MSM计算,以及JaneStreet的FPGA实现,用于加速MSM和NTT。
由于ZKP加速的重要性越来越高,需要公平评估不同实现的竞赛正在成为推动该领域前进的重要场所。2022年的比赛奖金超过400万美元。
有用的教育资源
在本节中,我们汇总了一些教育资源,帮助开发人员了解ZKP空间。这绝不是一个详尽的列表,因为这个主题上有很多优秀的内容。可以在这里和这里找到包含所有zk资源的综合列表。这是建立一个友好的方式,让开发人员了解这个领域的努力。
对于那些有兴趣了解ZKP基础知识及其工作原理的人,第一个要检查的资源之一是ZKHack的ZKWhiteboardSessions。特别是DanBoneh的三个入门会议对于具有一定数学理解的任何人来说都是高层次的。系列的其余部分涉及该领域的特定主题。
对于想直接使用ZK工具的开发人员,这个优秀的初学者指南非常实用。此后,PoseidonLabs创建了一个应用ZK研讨会,引导开发人员使用Circom和Hardhat构建ZK应用程序。针对其他ZK语言和框架的其他研讨会包括使用Noir进行的这个研讨会和使用RiscZero进行的这个研讨会。
结论
作为对ZKP潜力的信仰者,Alliance努力帮助更多的构建者进入这个领域,并为他们提供资金和指导支持。在Web3中,ZKP已经解决了妨碍主流采用的可扩展性和隐私痛点。在Web2中,ZKP可以将最小化信任的精神带到包括SaaS、保险和信用评分在内的广泛业务范围内。本文旨在帮助构建者将ZKP集成到他们的产品中。本文引导构建者通过不同的规划ZKP集成阶段,涵盖实现选项以及部署后的性能改进。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。