SP1 介绍:一个高性能、100% 开源、对贡献者友好的 zkVM

  • Succinct
  • 发布于 2024-02-15 22:24
  • 阅读 150

Succinct 发布了第一代零知识虚拟机 SP1,它能验证任意 Rust 程序的执行。SP1 性能比现有 zkVM 提高了一个数量级,某些程序的 alpha 版本速度已提高 28 倍,且与基于电路的方法相比具有竞争力。SP1 是一个完全开源、鼓励贡献的公共产品,旨在为 rollups、coprocessors 和其他 ZKP 应用构建最佳 zkVM。

我们很高兴地宣布 Succinct Processor 1 (SP1):我们的第一代零知识虚拟机 (zkVM),用于验证任意 Rust(或任何 LLVM 编译的语言)程序的执行。与现有的 zkVM 相比,SP1 的目标是在性能上提升一个数量级——其 alpha 版本对于某些程序来说已经快了 28 倍,并且与基于电路的方法相比具有竞争力。

SP1 是一个 100% 开源的、对贡献者友好的公共产品,它采用协作的方式来构建适用于 Rollup、Coprocessor 和其他 ZKP 应用的最佳 zkVM。SP1 在不断发展——打破了黑盒 zkVM 的现状,这些 zkVM 难以定制,也难以跟上最新的证明系统进展。立即开始使用 SP1 构建贡献

真相的未来是可编程的

零知识证明 (ZKP) 是一种强大的原语,它将支持新一代更安全、可扩展和创新的区块链架构,这些架构依赖于真相而非信任。但 ZKP 的采用一直受到阻碍,因为它需要“高深的数学知识”,需要晦涩的 ZKP 框架方面的专业知识,并且难以维护一次性部署。像 SP1 这样高性能、通用的 zkVM 将淘汰当前由专业团队手动编写自己的定制 ZK 堆栈的范例,并创造一个未来,所有区块链基础设施,包括 rollup、桥、Coprocessor 等,都将通过用 Rust(或其他 LLVM 编译的语言)编写的可维护软件来利用 ZKP。

最先进的性能

SP1 在几个受常见区块链用例(如桥接和验证 Merkle 证明)启发的真实世界工作负载上实现了最先进的性能。我们的性能是利用最新证明系统进展的多种设计选择的结果,包括跨表查找架构、可定制的“预编译”系统,该系统可以加速几乎任何性能瓶颈,而无需太多额外的递归开销等等。

首次,SP1 表明通用 zkVM 可以具有与基于电路的方法竞争的性能,同时将开发人员的生产力提高几个数量级。

SP1 在真实世界的工作负载上比现有的 zkVM 快 28 倍

我们在各种程序上对 SP1 进行了基准测试,显示在三个实际工作负载上的性能提高了 4-28 倍。我们的基准测试是在一台具有 64 个基于 ARM 的 CPU 和 512GB RAM 的单台机器上测量的端到端证明时间。在生产环境中,通过跨集群并行证明,两种方法的延迟都可以显着降低。

SP1 的极快速度对于像 ZK Tendermint 轻客户端这样的实际应用来说是一个改变游戏规则的因素,将证明时间从 2.2 小时减少到 4.6 分钟。在附录中阅读有关我们方法的更多信息。

SP1 在提高开发人员生产力超过 100 倍的同时,与基于电路的方法相比具有竞争力

也许比 SP1 针对现有 zkVM 的最先进性能更有趣的是,它的以预编译为中心的架构允许与定制的手动编写的电路相比具有竞争力的性能(有时甚至超过)。在下面的例子中,我们对 SP1 证明的程序与 Succinct 团队之前为生产中各种重要用例编写的 SOTA 定制电路进行了基准测试。在 SSZ Merkle 证明验证程序的情况下,VM 实际上_快于_电路,因为 VM 的灵活性允许电路不允许的条件计算。

SP1 的开发时间比定制电路快 >100 倍且更易于维护,同时证明生成速度/成本仍然具有竞争力。

从第一天起就构建为可定制的并由不同的贡献者生态系统维护

如今,zkVM 由孤立的公司以单片方式构建,这使得它们难以定制并与最新进展保持同步。我们挑战这种方法。SP1100% 开源 (MIT/Apache 2.0) 的,没有代码混淆,并且构建为 对贡献者友好,所有开发都是公开进行的。与现有 zkVM 的约束逻辑是闭源且无法修改不同,SP1 采用模块化架构,从第一天起就设计为可定制的。这种可定制性(SP1 独有)允许用户向核心 zkVM 逻辑添加“预编译”,从而产生显着的性能提升,使 SP1 的性能不仅与现有 zkVM 相比是最先进的,而且在各种用例中也与电路具有竞争力。

拥抱开源集市

SP1 在可能的情况下利用高质量、生产级的开源依赖项,如 Plonky3,以配合 ZK 创新的指数级进步,并构建一个 面向未来的 zkVM。我们认为,终端 zkVM 类似于 Linux 项目:免费、开源软件,以允许的许可方式获得许可,并由来自不同公司和地区的活跃贡献者社区维护。已经有多个团队和个人将 PR 合并到 SP1 中,包括 Succinct Labs、Sina (CEO, Witness)、Aayush (ZK email)、Preston (CTO, Sovereign Labs) 等。

SP1 仍处于开发中,还有很多东西需要构建。我们今天开源是为了保持透明,并邀请社区与我们一起构建最好的 zkVM。

使用 SP1 构建

SP1 的代码可以在此存储库中找到:https://github.com/succinctlabs/sp1。请注意,SP1 处于 alpha 阶段,尚未用于生产用途。

今天,开发人员可以用 Rust 编写程序(包括像 Tendermint 轻客户端这样复杂的、大型的程序)(支持 std),生成证明并验证它们。SP1 已经支持通过将一个长计算分片成更小的分片来证明任意长度的程序,然后生成所有分片的全局证明。立即开始使用 SP1 构建:https://succinctlabs.github.io/sp1/

查看一些可以在 SP1 之上构建的激动人心的用例:

为 SP1 做出贡献: 如果你有兴趣为 SP1 本身做出贡献,请查看 Github 存储库中的 开放问题列表。

路线图: 在接下来的几个月中,我们计划对核心 VM 约束和逻辑进行审核,优化 SP1 的性能,并添加对链上递归验证的支持,这将允许将 SP1 的 STARK 证明转换为 groth16,以便在以太坊智能合约中廉价地进行链上使用。

致谢

SP1 的构建基于该领域的巨人们的肩膀之上。我们要感谢 StarkWare,感谢他们是 STARK 和 zkVM 的最初先驱,感谢 Polygon Zero Labs 团队创建了 Plonky2Plonky3,SP1 构建于其上的基础开源依赖项,感谢 Risc0 对 RISC-V zkVM 的愿景,感谢 Daniel Lubarov 和 Max Gillet 在 Valida 上的工作,Valida 开创了跨表查找架构,感谢 Ulrich Habock 的 Logup,以及 ZK 领域的无数其他个人,他们的工作启发了我们。

附录

与其他 zkVM 的性能比较:

程序 周期数 SP1 证明时间 (s) SP1 验证时间 (s) Risc0 证明时间 (s) Risc0 验证时间 (s)
斐波那契数列 1.78M 30 秒:5.4 倍 ⚡ 346 毫秒 163 秒 163 毫秒
SSZ Merkle 证明验证 3.7M 49 秒:4.6 倍 ⚡ 744 毫秒 229 秒 268 毫秒
Tendermint ZK 轻客户端 31M (SP1) /114M (Risc0) 278 秒(4.6 分钟):28 倍 ⚡ 4795 毫秒 7920 秒(2.2 小时) 7918 毫秒

与电路的性能比较:

程序 SP1 证明时间 使用 SP1 的开发时间 电路证明时间 电路开发时间
SSZ Merkle 证明验证 49 秒 1 个下午 270 秒 2 个月
Tendermint ZK 轻客户端 278 秒 1 个下午 300 秒 4 个月

基准测试方法

基准测试程序可以在 SP1 示例目录中找到 (Fibonacci, SSZ Merkle Proofs, Tendermint ZK 轻客户端)。对于每个程序,我们为两个 zkVM 生成了一个证明,并修补了所有相关的 crate(包括 sha2、crypto-bigint 和 curve25519-dalek crate)。“周期数”列是程序执行的 RISC-V 指令的数量。证明生成时间以秒为单位,验证时间以毫秒为单位。请注意,因为 SP1 对预编译提供一流的支持,所以 Tendermint 程序的周期数以 2 个数字的形式提供,因此在 SP1 zkVM 中要小得多,因为约束逻辑是闭源的,所以很难在 Risc0 中添加预编译。SP1 的架构允许添加预编译而不会显着影响递归开销,从而显着减少了复杂程序的周期数,从而提高了证明生成性能。对于所有其他程序,两个 zkVM 之间的周期数相对相似。

我们选择对 SP1 和 Risc0 zkVM 都使用 poseidon 哈希函数,因为 poseidon 是许多团队使用的标准、对递归友好的哈希。所有其他设置都是其存储库中的默认 Risc0 证明器设置。该基准测试在 AWS Linux ARM CPU 机器 (r6a.16xlarge) 64 个 vCPU 和 512GB RAM 上运行,保留价格为每小时 1.64 美元。

注意: 请注意,由于 zkVM 性能的非常复杂、多维的性质(包括硬件、单节点与多节点性能、内存使用、递归成本、哈希函数选择等因素),这些基准测试仅呈现性能的简化视图。我们尽力提供尽可能公平的比较,但单个基准测试很难捕获所有细微差别。此外,由于 SP1 仍在开发中,因此性能数字不是最终的,预计会随着时间的推移而提高。

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

0 条评论

请先 登录 后评论
Succinct
Succinct
Building towards a proof-based future.