RISC Zero zkVM 1.2:引入应用程序定义的预编译

  • RISC ZERO
  • 发布于 2024-12-12 18:41
  • 阅读 7

RISC Zero zkVM 1.2 版本引入了一种新的预编译方法,允许预编译与应用程序一起发布,而不是构建到 zkVM 中。这种方法为用户提供了更大的控制权,避免了对生产中项目的干扰,Automata 集成了 RSA 预编译,并立即将其访客程序的周期数从 39M 减少到 217K,从而降低了成本。

返回 RISC Zero zkVM 1.2:引入应用定义预编译

概要:

zkVM 1.2 引入了一种新的 zkVM 中预编译方法,使预编译能够随应用程序一起发布,而不是构建到 zkVM 中。

对于 Boundless,这种方法通过消除应用程序和证明器需要就匹配的预编译集达成一致的需求,为用户提供了更多控制。此外,这种方法避免了生产中项目的中断,因为可以添加新的预编译,而无需新的验证器合约

我们的预编译的性能影响是立竿见影且巨大的。我们的合作伙伴 Automata 集成了我们的 RSA 预编译,并立即将其 guest 程序的周期数从 3900 万减少到 21.7 万,从而实现了约 180 倍的成本降低。

立即开始使用 我们即用型预编译

需要自定义支持?

  1. 运行 guest 分析指南

  2. 将你的结果发送至 gobrrr@risczero.com 以获得个性化指导

我们最新的 zkVM 1.2 版本解锁了零知识系统中预编译工作方式的新功能。我们正在引入一种名为“应用定义预编译”的新方法 - 这与自 2021 年以来一直主导 zkVM 架构的传统预编译有所不同。

预编译的历史

zkVM 中预编译的历史反映了从固定的、协议相关的优化到我们今天构建的可编程未来的历程:

2021 年夏季:在 zkVM 中使用预编译的原始模式可以追溯到 CAIRO 的“内置函数”,详见 CAIRO 论文 的第 2.8 节。

2022 年春季:当我们首次发布 RISC Zero zkVM 时,我们使用了 CAIRO 论文中描述的方法,包括 sha2 预编译。

2022 年夏季:Miden v0.2 引入了 chiplets,它充当哈希、按位运算、范围检查和内存运算的预编译。

2023 年冬季:Valida 引入了“模块化表支持指令”的概念。

2023 年春季:RISC Zero zkVM v0.15 添加了对“bigint”预编译的支持,使用了我们从 Alan Szepieniec (Triton-VM) 和 Hamish Ivey-Law (Polygon Zero) 学习的技术

2024 年 2 月SP1 发布,采用并拥护 Valida 引入的以预编译为中心的设计。

2024 年 12 月:RISC Zero zkVM v1.2 引入了应用定义预编译,使代数原语的预编译能够随应用程序一起发布,而不是构建到 zkVM 中。

进入应用定义预编译时代

notion image

zkVM 1.2 在预编译的工作方式上引入了一项根本性的创新。与传统的预编译不同,传统的预编译需要在开发者、证明器和验证器之间进行广泛的协调,而我们的应用定义预编译带来了以下几项进步:

  1. 通用兼容性:开发者可以部署新的预编译,而无需更新链上验证器合约或与证明器协调以使用新的电路。

  2. 基础设施独立性:添加优化而无需 Fork zkVM 或修改现有系统。

  3. 为 Boundless 做好准备:从头开始设计以在 Boundless 协议上运行,从而为所有链带来更好的 ZK 性能。

这种独立性意味着开发者可以立即优化他们的应用程序,而证明提供商可以为任何应用程序提供服务,而无需特殊配置,这是去中心化证明未来发展的关键基础。

它是如何工作的

我们的新预编译由我们新颖的 bigint 架构(Zirgen 的一个组件)实现。Zirgen 包括一种名为 bigint 的 MLIR 方言,我们已使用它来构建包括 ec_add 和 ec_double 在内的程序。我们使用这些 bigint 程序为 RSA 和 ECDSA 签名等关键加密操作构建预编译。令人惊讶的是,Bonsai 和 Boundless 可以无缝运行,而无需了解这些预编译。zkVM 1.2 包括证明任何 bigint 程序正确性所必需的部分,使 guest 程序能够提供自己的预编译

在底层,这是通过我们对 Fiat-Shamir 随机性的新颖应用实现的。虽然 zkVM 传统上将其用于置换和查找参数,但我们已扩展其应用,从而能够为椭圆曲线运算和其他代数原语进行预编译。这一突破建立在 Hamish Ivey-Law (Polygon Zero) 首次提出的想法之上,并由 Alan Szepieniec (Triton-VM) 进一步扩展。

大规模性能

我们的应用定义预编译可在多个级别上提供性能提升。像所有预编译一样,它们消除了核心加密操作中的 RISC-V 开销。但是,我们通过利用 Fiat-Shamir 随机性来大规模减少验证椭圆曲线运算和其他代数原语所需的工作量来进一步发展。有关底层加密的更多详细信息,请查看 zkSummit 的演讲

RISC Zero 优势

每个 zkVM 预编译背后都隐藏着复杂的加密工程。每个预编译调用都会生成见证数据,必须证明这些数据满足特定约束并连接回主证明。这就是我们的方法脱颖而出的地方:

内置集成

  • 我们用于代数运算的预编译直接构建到主 RISC-V 程序中

  • 这种集成使证明架构保持简单高效

  • 从而最大限度地减少证明生成期间的顺序依赖性

相比之下,Valida 和 SP1 使用的方法需要为每个预编译生成独立的见证。此外,所有见证生成(对于主程序和所有预编译)都必须在任何证明开始之前生成。

乍一看,这似乎不是问题,因为人们会认为与证明的成本相比,生成见证的成本可以忽略不计。但实际上,我们在实践中观察到的是,大规模证明的端到端证明时间受到生成见证的瓶颈限制

与我们系统的其余部分一样,我们已经设计了我们的预编译方法,以实现高效的横向可扩展性。在这种情况下,这意味着我们的目标是避免预编译架构中的顺序依赖性,以便我们可以在完成见证生成之前启动证明

接下来是什么?

我们正在我们的堆栈中增加显着的性能改进。我们新的 Keccak 预编译将为 ETH 区块证明提供 2 倍的证明性能提升。同样,我们即将发布的主要修订版 RISC-V 电路将带来 2 倍的性能提升。

对于开发者,我们正在扩展我们的代数预编译框架以支持更广泛的加密原语。这使团队能够更灵活地优化其特定用例。

当然,还有 Boundless——将这些功能带到所有链的通用 ZK 协议。开发者访问权限已上线,我们正在为我们的公共测试网发布做准备。立即开始构建。

  • 原文链接: risczero.com/blog/riscze...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
RISC ZERO
RISC ZERO
https://risczero.com/