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

评论

所有评论

推荐阅读

  • 美国财政部将加强数字资产反洗钱和反恐融资工作

    美国财政部希望继续加强数字资产的反洗钱和反恐融资工作,作为其打击非法融资的更广泛战略的一部分。该部门在周四发布了其2024年《打击恐怖主义和其他非法融资的国家战略》战略,概述了其应对非法融资的优先事项。财政部强调了其围绕加密货币的持续工作,包括对某些交易所和组织(如Bitzlato和Lazarus)的制裁,与币安的和解以及对猪肉屠宰诈骗的警告。周四的战略文件总体上表示,其四个优先事项是关闭反洗钱监管的漏洞,支持“更有效和风险集中”的框架,提高执法机构的效力并利用技术创新。更新加密货币的现有监管框架将支持这些优先事项,战略文件表示。

  • 美联储梅斯特:利率应在更长时间内保持在高位

    美联储梅斯特表示,短期通胀预期已经上升;利率应在更长时间内保持在高位;作出通胀回落进程停滞的结论还为时过早;数据显示美联储的通胀目标面临的风险上升;需要在“未来几个月”收集更多价格数据;最近的数据表明就业市场面临的风险已经减弱;需要更长的时间才能确信通胀朝着2%回落。

  • LocalMonero关闭交易,加密货币监管压力加剧

    据AgoraDesk发布的声明,自5月14日起,LocalMonero上的所有交易都已停止。并且在六个月内,整个网站将被关闭。该公司表示:“经过近七年的运营,由于内部和外部因素的综合影响,我们做出了关闭平台的艰难决定。我们非常感谢这些年来得到的爱和支持。没有你们,我们无法做到这一切。我们爱你们。”虽然AgoraDesk没有提供关闭的具体原因,但最近几个月,包括LocalBitcoins和Paxful在内的一大批P2P加密货币交易平台已经退出,这一趋势主要是由监管风险驱动的。LocalMonero的问题主要是由于监管机构对隐私币的压力而加剧的。

  • 美国矿企CleanSpark购买了怀俄明州靠近导弹基地的矿场

    美国比特币挖矿公司CleanSpark从与中国投资人有关的公司购买了怀俄明州靠近美国导弹基地的矿场。 此前报道,拜登禁止中国投资人支持的加密矿企在美国导弹基地附近拥有土地。

  • 法国证券监管机构对Bybit发出了新的警告

    法国证券监管机构对加密货币交易所Bybit发出了新的警告,敦促客户为该平台可能突然停止向法国客户提供服务的可能性做出安排。金融市场管理局(AMF)在周四的通知中表示,该交易所并未注册为数字资产服务提供商(DASP),因此在法国非法提供服务。Bybit自2022年5月20日起因非法运营而被AMF列入黑名单。

  • 印度SEBI建议当地监管机构监控加密货币交易

    印度证券交易委员会(SEBI)建议多个监管机构应监督该国的加密货币交易。

  • 5月16日晚间要闻速递

    1. ETH跌破3,000.00美元

  • 游戏平台Param Labs完成700万美元融资,Animoca Brands领投

    游戏平台Param Labs完成700万美元融资,Animoca Brands领投,Delphi Ventures和Cypher Capital参投。Param Labs的目标是建立一个由其原生PARAM代币管理的游戏生态系统,该代币即将推出。该公司的第一款游戏“Kiraverse”是一款边玩边赚钱的多人射击游戏。

  • 区块链SaaS解决方案AfriDex完成500万美元Pre-Seed轮融资,Endeavor Ventures领投

    总部位于英国伦敦的区块链软件即服务解决方案 AfriDex 宣布完成 500 万美元 Pre-Seed 轮融资,Endeavor Ventures 领投,African Crops Limited、Oldenburg Vineyards 和 Hank Oberoi 参投。AfriDex 目前主要专注于农业市场,通过全面的链上解决方案为供应链参与者提供支持和保护,利用区块链技术实现可追溯性、无摩擦支付、防欺诈交易、经过验证的认证、简化税收和补贴管理。(finsmes)

  • 以太坊上假冒NOT代币发生Rugpull

    据PeckShield监测,以太坊上假冒Notcoin NOT下跌100%。0xE0eB开头地址抛售了 1,645,040,633,338,481.95枚NOT并兑换为93.5枚WETH(价值28.13万美元)。 注:Rugpull代币与合法代币名称相同。