Cointime

扫码下载App
iOS & Android

zkVM为什么足以改变ZK加速行业?

原文标题:New Paradigm in Designing ZK-ASICs, the zkVM way

原文作者:Cysic 团队

本文编译:Loopy

感谢 Justin Drake 和 Luke Pearson 的深刻讨论。

实时零知识证明生成需要端到端的硬件加速。zkVM 不仅简化了 ZK ASIC 的设计,还使硬件性能更高,成本更低。

零知识证明(ZKP)允许一方(证明者)向另一方(验证者)证明某个声明是真实的,且无需透露除声明本身的有效性之外的任何信息。

零知识证明的发明人之一 Silvio Micali(他与 Goldwasser 和 Rackoff 共同发明)曾表示,正如加密会混淆数据一样,零知识证明会混淆计算。更具体地说,加密算法(如 AES 或 RSA)可以将数据转换成相应的密文,这种密文隐藏了底层数据。零知识证明则将计算性声明转换为证明,这种证明不仅隐藏了计算的细节,而且验证了该声明的正确性。

ZKP 拥有两个良好的特性——零知识性和简洁性。这也让其成为了最广泛使用的高级密码学原语之一。

零知识性意味着证明本身不会泄露任何关于计算过程以及私有输入的信息。这一特性对于构建一些以隐私为导向的应用程序非常有用。例如 Aleo,它与比特币、以太坊和其他公链不同,能够隐藏交易细节。

简洁性则指的是证明的小尺寸以及短验证时间,这意味着复杂的计算过程可以转换为一小块数据(即“证明”,“proof”)。并且几乎可以在弱计算设备(比如手机、甚至树莓派)上即时验证。这一特性在扩展以太坊时极为有用,我们可以将对应 1000 笔交易的 EVM 计算转换为一个微小的证明,然后将此证明发布在以太坊上。如果这样一个小证明(可能只有 100 字节)得到以太坊的验证,那么整个 1000 笔交易便得以最终确认。私有区块链和扩展解决方案只是区块链社区中 ZKP 热潮的两个例子。利用这两个关键属性还可构建很多 ZK 项目,如 ZK 协处理器、ZK 桥、ZK 机器学习(ZKML)。

ZKP 广泛部署的一个重大障碍是证明生成过程中对计算时间和资源的巨大需求。

通常,更复杂的计算需要更多的时间和资源。例如,在 Daniel Kang 及其团队的 ZKML 项目中,使用一台强大的 64 线程 CPU 进行 GPT-2 推理的证明生成需要超过 9000 秒。另一方面,Scroll 中的 ZK-EVM 电路的证明生成需要超过 280 GB 的 RAM。

由于这些令人望而却步的资源要求,社区正在寻求更有效的、针对 ZK 计算(指证明生成)定制的硬件。硬件选项包括CPU、GPU、FPGA和ASIC。这些选项从现已可用到不确定的等待期不尽相同。

CPU 通常被视为基线实现,用于与其他三个选项进行比较。硬件加速有两个常见的指标,下面是一些直观的解释:

  • 性价比(Performance per dollar):这意味着用户需要支付多少钱来购买这种硬件。购买决策取决于许多因素,其中最重要的一点是同样的开销可获得的最大性能。基本而言,这一指标衡量了硬件的成本效益。通常,如果使用更先进的工艺来制造芯片,则我们可以获得更高的性能,但它往往更昂贵。
  • 能耗比(Performance per watt):这意味着运行这种硬件需要多少能量。例如,比特大陆最新的比特币矿机 T 21 只使用 19 焦耳就能完成 1 TH 的计算,性能超过了其竞争对手的产品。

产品的优势主要取决于上述两个因素,以及部分非技术因素(如保修和残值)。通常,由于定制化的特性,基于 ASIC 的硬件在这两个指标上超过了其他三种硬件。

我们想象一下,现在已经设计出了一款专门的 ZK ASIC,其每美元和每瓦特的性能均远超现有的 GPU 和 FPGA。这款 ASIC 可以支持多种模块,如多标量乘法(MSM)、数论变换(NTT)、默克尔树等,但我们如何将这款硬件与当前的技术栈集成呢?

最常见的方法是用加速部件替换 CPU 代码中相应的计算,这种简单的替代方法通常无法实现令人满意的性能加速。我们在 ethCC’ 23 上发布了有关这种方法的发现(更多细节在这条推文中)。

CPU 和 FPGA/CPU 性能对比

与 CPU 性能相比,我们通过结合使用 CPU 和我们定制的 FPGA 机器取得了实质性进展,但性能仍远未达到最终目标——实时 ZK 证明。

这种次优的表现是由于阿姆达尔定律和不同硬件组件之间的交互成本所致。阿姆达尔定律显示,通过优化系统的单一部分获得的整体性能提升是有限的,而不同硬件模块之间的通信成本则进一步恶化了这一情况(来源于维基百科)。为了实现相对于 CPU 的显著加速,需要在单一硬件上加速每一个可能的组件。

然而,由于ZK 算法的多样性(明确地说,ZK 算法指的是 ZK 证明生成中的计算操作),这似乎是不可能的。例如,上述推特截图展示了三个 ZK 电路,即 Poseidon Hash、EVM 和 GPT-2 ,尽管使用了相同的证明后端(Halo 2-KZG),其中计算差异仍很大,尤其是在见证生成部分。截图还没有包括不同的证明后端(如 Plonky 2/3 和 Gnark)。

我们在这里想要表达的观点是,硬件需要足够通用,以适应 ZK 算法的各种片上计算操作。这种通用性可以通过 FPGA 和 ASIC 的混合结构实现,正如我们在 2022 年的这条推文中所提议的:

FGPA-ASIC 混合架构

在这种混合结构中,ASIC 执行常见操作,而 FPGA 进行特定电路的计算。这两种硬件设备随后被安装在同一块 PCB 板上,并通过高带宽的 SerDes 通道连接。另外,像基于 RISC-V 或基于 ARM 的片上 CPU 核心,也可用于类似目的。这些混合方法通常在成本和制造质量上有极高的要求。在过去的半年里,我们一直在问自己:

“混合”是否是我们能想到的最佳结构?我们能否依靠 ZK 社区的技术进步来改进我们的设计?下面,我们对以上问题给出了积极的答案。

在深入技术细节之前,我们首先需要介绍一些关于零知识证明(ZKP)的基本知识。Plonkish 证明系统的典型证明生成过程可以分为以下几个阶段(有关证明生成的详细解析,请阅读 Scroll 的这篇博客):

  • 记录见证:见证,也被成为 trace。它指的是一些数据,这些数据与其他数据共同显示了一个声明为什么是真实的。记录通过一个称为 trace 表的二维矩阵完成。该表中的每一个条目都是有限字段的一个元素。填充 trace 表的过程称为“见证生成”,这需要遍历表中的每个单元格并填入正确的值。这个过程需要在有限字段上进行算术运算,并针对特定的 ZK 电路进行定制。
  • 提交见证:见证生成之后,我们获得了一个 trace 表,表中的每一列都通过拉格朗日插值被解释为一个多项式。然后可以使用不同的承诺机制来对这些多项式进行承诺,例如 KZG 和 FRI。这里涉及的主要计算包括多项式乘法(MSM)、数论变换(NTT)、多项式拍平和默克尔树。由于在大型有限字段上进行复杂的计算,并且所需的数据量巨大,这成为了证明生成的瓶颈。
  • 证明见证为真: 现在 trace 表填写完成,承诺也已经计算出来。剩下唯一要做的事情是展示 trace 是有效的。这意味着满足了某些特定的约束。涉及的计算包括数论变换(NTT)、多项式乘法(MSM)和多项式拍平。

总结来说,证明生成中的计算包括几个常见模块:如多项式乘法(MSM)、数论变换(NTT)、默克尔树和多项式拍平,以及一些额外的模块。

在我们之前的博客中,我们展示了优化这些常见模块的一些高级策略。过去几年,社区也提出了一些有望加速这些常见模块的技术(参见 Ulvetanna、Ingonyama 和其他团队的作品)。我们在这里不重复这些技术。

这些模块在性能方面已不再是瓶颈,但端到端的证明加速远未达到令人满意的程度。这种半成品加速器可以看作是具有一些性能提升的专用 GPU 版本。大致比较如下:

  • 优势:除了传统的 GPU 风格的 SIMD/SIMT 并行计算模型,还专门支持 ZK 计算。这使我们能够在不依赖尖端 CUDA 编程技能(例如使用 CUDA 编写大整数操作)的情况下,全性能实施 ZK 操作。
  • 缺点:编程复杂性
  • 对于加速器来说,我们提供了类似于 AI 中 PyTorch 风格的高级编程模型,目标是提供一种“仿佛直接从论文翻译过来”的编码体验,当部分证明者被放置在加速器上时。尽管我们在硬件层面提供灵活的调度和控制能力,这仍需要理解底层的硬件设计。
  • 对于使用 CUDA 的 GPU 用户,他们在直接使用时有相对完整的控制自由。他们可以进行任意优化。但这也意味着他们必须从零开始一切。

显然,这种半成品加速器没有实现最佳的端到端证明加速或用户友好的编程界面。我们显然需要在我们的方案中加入一些新元素。

这个新元素就是 zkVM!

虚拟机(VM)是计算机科学中的古老话题,这大体是一个可运行其他程序的程序。比如,以太坊虚拟机(EVM)就可运行以太坊智能合约,其支持的指令在这篇黄皮书中有所规定。我们知道,零知识证明系统涉及电路,因此,zkVM 就是一个可以运行一系列支持指令的电路。除了执行结果,zkVM 还输出一个证明,显示与指令序列相对应的 VM 执行轨迹是有效的。

简而言之,zkVM 是一个可运行 VM 的 ZK 电路(总结自 David Wong 的文章)。

在 zkVM 设计中有两部分值得考虑:

  • 支持的指令集:这意味着 VM 能执行的操作。在这个领域有几个既有的参与者,如 Risc 0, Succinct, Starknet, Polygon, Metis 等,他们工作于不同的指令集,如 RISC-V、MIPS 或定制的指令集。
  • ZK 架构:这部分涉及到与执行结果一起生成的 ZK 证明。ZK 架构几乎与底层 VM 设计无关,但仍需考虑一些微妙的平衡。

zkVM 设计中有一个很好的功能被称为延续(continuation)(来自RISC 0 )。在 zkVM 执行中,延续是一种机制,用于将大程序分割成几个片段,这些片段可以独立计算和证明,如下图所示:

分段的过程(源:Risc 0)

这个功能之所以对硬件友好,原因如下:

  • 并行性:由于这些切分后的片段之间互不依赖,它们可以分布到多个硬件上同时生成相应的证明。
  • 最小化 I/O 带宽需求:zkVM 的证明生成遵循“小进小出”的模式。例如,在 Risc 0 中,证明生成的片段大小约为 50 MB,输出是一个基于 FRI 的证明,大小大约为 250 KB。这种特殊模式大大减少了 I/O 带宽的需求。
  • 可控的内存需求:尽管每个证明生成核心的输入和输出都很小,但内存需求较大,范围在数十 GB。然而,所需内存的大小取决于片段的大小,这可以根据 zkVM 的设计进行调整。

基于这些对硬件友好的特性,我们在下文中描述了我们的硬件设计。

系统的架构相对简单,由一个执行器负责执行程序,硬件负责控制并分配各个“片段(如前文所述)”,以及可配置数量的专用芯片,为每个部分的程序生成 ZK 证明。

这种简单的架构使我们的硬件能够具有灵活的形式。我们可以将执行器(使用弱 CPU 或片上 CPU 核心)、一定数量的 zkVM 芯片以及其他必要的硬件组件(如内存)打包到一个机箱中。一个更简单的情况是将多个芯片打包在一个便携式机器中,就像 Macbook 充电器一样。

zkVM 硬件包括几个计算核心:

  • 一台可编程的向量机用于向量化操作。
  • 专用的 NTT 模块,适用于 31 位、 64 位和 256 位字段。
  • 专用的 MSM 模块,支持 BN 254、BLS 12 – 377 和 BLS 12 – 388 曲线。
  • 可配置的哈希函数单元,用于基于字段操作的哈希函数。

除了 zkVM 带来的优势外,这种设计 ZK-ASIC 的新范式也转化为了众多优秀的产品,可供个人或企业使用,如下所示:

ZK ASIC 产品

Cysic 这一 zkVM 硬件项目旨在构建一个性能成本效益高效的硬件,适用于广泛的用例、性能和开发生产力。我们寻求多样化的视角、创新的想法以及坚定的投入,以改善和拓展我们的硬件设计。我们期待社区的参与和意见,并准备为有意参与的任何人提供指导和支持。

评论

所有评论

推荐阅读

  • Web3游戏Shadow War完成500万美元融资, Momentum 6领投

    游戏工作室Patriots Division已为其Web3游戏Shadow War在种子轮和 A 轮融资中筹集了 500 万美元,A 轮融资由 Momentum 6 领投,iAngels、Cointelligence Fund、Xborg、Andromeda VC、Cogitent Ventures 和 Cluster Capital等参投。

  • 5月02日早间要闻速递

    1. BTC跌破57000美元

  • ETH跌破2900美元

    行情显示,ETH跌破2900美元,现报2898.84美元,日内跌幅达到3.66%,行情波动较大,请做好风险控制。

  • BTC跌破57000美元

    行情显示,BTC跌破57000美元,现报56999.99美元,日内跌幅达到5.48%,行情波动较大,请做好风险控制。

  • 人工智能云服务提供商CoreWeave完成11亿美元C轮融资,Coatue领投

    专注于人工智能的云服务提供商CoreWeave宣布完成11亿美元C轮融资,本轮融资由Coatue领投,Magnetar(上一轮主要投资者)、Altimeter Capital、Fidelity Management&Research Company和Lykos Global Management参投。

  • Cointime 5月1日要闻速递

    1.加密货币大佬赵长鹏被判监禁四个月,将专注于教育项目Giggle Academy2.Celsius Network销毁占总供应量94%的CEL,价值超8900万美元3.USDC Treasury销毁逾2亿枚USDC4.Pike疑似遭遇黑客攻击,损失479枚ETH5.比特币创下FTX崩溃以来的最差月度表现,利率前景成为拖累6.币安比特币钱包余额过去24小时增加6249.36枚,近7天流入15565.89枚7.名义价值超22亿美元BTC和ETH期权将于周五到期交割8.加密货币总市值跌破2.3万亿美元,24小时跌幅达7.8%9.10x Research:美国比特币现货ETF买家持仓均价约为57,300美元10.比特币跟随加密市场下跌,创下自2022年11月以来的最差表现。

  • 西班牙Web3视频游戏初创公司GFAL获得320万美元种子融资

    西班牙巴塞罗那的Web3视频游戏初创公司GFAL获得320万美元的种子轮融资,由Supercell Ltd和Mitch Lasky领投,Heinrich Zetlmayer、Bonduc Bioscience SL、BCNBCNLVC、David Fernandez、Bonsai Partners、Nekko Consulting和Inveready等机构参与。该公司打算利用这笔资金扩大核心团队并加速生产计划。GFAL由首席执行官Manel Sort领导,是一家利用从人工智能到Web3的技术开发和发布游戏的初创公司,旨在通过沉浸式游戏玩法让玩家享受游戏乐趣。该公司的2024年计划将建立在其游戏Elemental Raiders于2023年3月在移动端进行的软启动基础上。Manel Sort在评论中表示:“我们非常感激Supercell、Mitch和Heinrich对GFAL的信任。与Trip和Ilkka一起开展项目,与他们分享了在Digital Chocolate度过的许多激动人心和成功的岁月,这是一个梦想成真,我迫不及待地想向世界展示我们正在构建的高水平游戏。”

  • BTC跌破58000美元

    OKX行情显示,BTC短时触及57700美元,现报58581.53美元,日内跌幅达到7.15%,行情波动较大,请做好风险控制。

  • 链上内容分发协议Metale Protocol完成200万美元额外种子轮融资

    链上内容分发协议Metale Protocol宣布完成200万美元额外种子轮融资,Waterdrip Capital领投,Aipollo Investment 和 Ultiverse等参投,截至目前其种子轮融资总规模已达到400万美元。Metale Protocol前身是Web3去中心化阅读应用Read2N,新资金将分配给其生态下的内容创作基金,以刺激更多的内容创作活动,推动其协议构建内容资产链上发行和分发平台。

  • DWF Ventures宣布投资链游开发商Overworld

    DWF Ventures宣布投资链游开发商Overworld, Overworld最近宣布计划推出另一NFT系列,此外,Overworld即将推出主世界竞技场。 金色财经此前报道,链游开发商Overworld完成1000万美元种子轮融资,本轮融资由Hashed、TheSpartanGroup、SanctorCapital和GalaxyInteractive共同领投,Hashkey、BigBrainHoldings和ForesightVentures参投。