SP1 Reth 是一个开源的概念验证,展示了任何 rollup 如何使用 SP1 构建高性能的(1 型,字节码兼容)zkEVM,该 zkEVM 使用少于 2000 行可维护的 Rust 代码。SP1 Reth 利用 SP1 的开源、可定制的预编译系统,实现了令人难以置信的性能(平均以太坊交易的证明成本约为 0.01-0.02 美元)。
我们很高兴地宣布 SP1 Reth:这是一个开源的概念验证,展示了任何 rollup 如何使用 SP1 构建一个高性能(type-1,字节码兼容)的 zkEVM,代码量少于 2000 行可维护的 Rust 代码。SP1 Reth 是一个早期的 POC,但通过利用 SP1 的开源、可定制的预编译系统,已经实现了惊人的性能(对于一个普通的以太坊交易,证明成本约为 0.01-0.02 美元),并且未来还有很大的改进空间。SP1 Reth 指向一个未来,所有的 rollup 都可以变成 ZK rollup,利用 ZKP 的魔力,使用 Rust 编写可维护的软件。
Optimistic rollups 面临许多挑战:7 天的提款时间、复杂的互操作性,以及(在某些情况下)在生产中依赖多重签名而不是欺诈证明机制。ZK rollups 利用密码学的真实性,为这些问题提供了一个解决方案,使它们成为扩展以太坊的最终解决方案。但是今天,创建一个 zkEVM 需要一个漫长而昂贵的开发周期,需要一个专门的团队,具备手工打造定制 ZK 栈的专业知识。
这个复杂的过程就是我们构建 SP1 的原因:一个 100% 开源、可定制的 zkVM,其性能与定制电路具有竞争力。有了 SP1,任何 rollup 团队都可以用 Rust 构建一个 zkEVM,它重用来自现有开源库和节点软件的组件,并且性能足以实际使用。
SP1 Reth 概念验证利用了来自开源以太坊生态系统(Reth、Revm、Alloy、Zeth)的现有组件,代码量少于 2000 LOC,并生成完整以太坊区块执行的 ZKP(使用 SP1 证明)。与使用定制电路构建的 zkEVM 的现状相比,这种方法具有显著的优势。
由于代码重用,SP1 Reth 比定制电路更易于维护和安全,并且审计范围更小。普通代码的使用允许任何开发人员在添加新的预编译或进行其他更改时轻松地自定义 zkEVM。最后,SP1 Reth 的开发时间比使用定制电路快 100 倍,并且不需要专门的专业知识。
SP1 是 100% 开源且完全可定制的,它具有一个“预编译”系统,可以加速几乎任何性能瓶颈,而无需太多的额外递归开销。这个预编译系统对于实现 SP1 Reth 的最先进性能至关重要。
SP1 Reth 在典型的以太坊交易上实现了 0.01-0.02 美元的证明成本
我们在一系列以太坊区块上对 SP1 Reth 的性能进行了基准测试,显示了证明成本方面的最先进结果:在典型的以太坊区块中,每个交易的平均证明成本为 0.01-0.02 美元。Rollup 已经为 L2 交易的 calldata 向以太坊支付 0.10-0.25 美元,因此,与 DA 成本相比,交易执行的 ZKP 的 0.02 美元成本可以忽略不计,并且对于今天的大多数 L2 来说非常实用。
我们的基准测试衡量了在单个 AWS 机器上(具有 64 个 CPU 和 512 GB 的 RAM)的端到端证明时间。成本是根据 AWS 预留定价计算的。在生产中,可以通过跨集群的并行证明来显著减少延迟。有关详细的方法,请参阅我们的附录。
注意:由于 SP1 仍在开发中,因此证明时间只是一个粗略的预览,并且可以通过进一步的改进(包括为各种操作轻松添加预编译)来显着减少。证明时间也不包括递归时间,我们估计递归时间仅占上述成本的一小部分。
最近,Polygon Zero 宣布 了一个 type 1 兼容的 zkEVM,它使用定制的 plonky2 电路,每个区块的证明成本为 0.2-0.5 美元(每个交易 0.002 到 0.003 美元)。这个基准测试表明,使用像 SP1 这样 100% 开源、可定制的 zkVM,用通用语言编写的 zkEVM 实现的证明成本已经在基于定制电路的方法的成本的一个数量级之内(目前为 5-6 倍)。
关键见解:利用预编译实现 SOTA 性能
以前的通用 zkVM 需要大型集群来证明 zkEVM 程序,每个区块的计算成本约为 10-20 美元。SP1 Reth 利用 SP1 的预编译系统将成本降低了一个数量级,使 Rust 编写的 zkEVM 的证明生成终于变得实用。
SP1 的 100% 开源且可定制的预编译系统是 SP1 Reth 的性能与定制电路竞争的关键原因。关键的见解是,验证以太坊区块执行的大部分时间都花在重复、昂贵的加密操作上,例如哈希函数或签名验证。借助 SP1 的多表、以预编译为中心的架构,这些操作“预编译”的成本与在电路中支付的成本非常相似。由于总成本主要由这些预编译操作决定,因此 zkVM 的开销最终变得无关紧要:这是 80-20 原则的体现。
SP1 Reth 使用 SP1 今天提供的预编译:keccak、secp256k1 和 sha256。但是,由于 SP1 是 100% 开源且可定制的,因此可以通过预编译其他性能瓶颈(包括大整数算法等)来进一步降低证明成本。如果你想成为开源贡献者并帮助我们完成这项任务,请查看今天 SP1 中 Github issues 列表。
SP1 Reth 只是一个简单的 POC,并且只是 SP1 可能实现的功能的预览。我们很高兴即将推出多个数量级的改进。
预编译 BigInt: 以太坊使用 256 位算术,导致大量 zkVM 周期花费在 BigInt 操作中。可以直接向 SP1 添加 BigInt 预编译,这将减少此性能瓶颈。
优化的 Serde/Deserde: 目前,许多 zkVM 周期都花费在围绕序列化和反序列化输入的内存操作上。应该可以使用更高效的零拷贝 Serde/Deserde 库来减少周期数并显着提高性能。
Succinct 证明网络上的专用硬件: Succinct 证明网络将提供一个有竞争力的市场,让最好的硬件团队通过利用定制硬件来竞争证明生成成本,从而使成本再降低 10-100 倍。
SP1 Reth 的代码可以在以下位置找到:https://github.com/succinctlabs/sp1-reth,SP1 的代码可以在以下位置找到:https://github.com/succinctlabs/sp1。请注意,SP1 和 SP1 Reth 处于 alpha 阶段,不适合生产使用。立即开始使用 SP1 进行构建:https://succinctlabs.github.io/sp1/。
为 SP1 做出贡献: 如果你有兴趣为 SP1 本身做出贡献,请查看 Github 存储库中 open issues 列表!
如果你是一个有兴趣使用 SP1 构建或扩展 SP1 Reth 的 rollup 团队,请填写 此表格与我们联系。
SP1 Reth 利用了以太坊生态系统中许多高质量的开源工作,包括 Reth、Revm、Alloy 和 Zeth。SP1 Reth 利用了来自 Reth 和 Revm 的核心执行原语、来自 Alloy 的 RPC 类型以及 MPT 库,并从 Zeth(使用 Risc0 的 zkVM 构建的 zkEVM)中获得了有关执行的灵感。我们还要感谢 Polygon Zero 的 plonky2 zkEVM,它是 type-1 兼容的,并且利用了 plonky2 电路。
区块号 | 交易数 | Gas | zkVM 循环次数 | 端到端证明时间 | 证明总成本 | 每次交易成本 |
17106222 | 105 | 10,781,405 | 238,713,456 | 41.8 分钟 | $1.59 | $0.015 |
17,181,191 | 139 | 14,560,621 | 271988929 | 48.0 分钟 | $1.83 | $0.013 |
17,735,429 | 143 | 11,120,810 | 240,424,094 | 45.0 分钟 | $1.71 | $0.012 |
17408122 | 135 | 26,256,143 | 344,497,986 | 64.3 分钟 | $2.45 | $0.018 |
17546837 | 168 | 17,279,191 | 335,618,096 | 61.7 分钟 | $2.35 | $0.014 |
基准测试方法:
基准测试代码从 sp1-reth 存储库运行:https://github.com/succinctlabs/sp1-reth。有关如何运行基准测试的详细信息,可以通过运行 README 中的命令找到。
我们使用 Poseidon 哈希函数和 2^19 的分片大小运行 SP1。该基准测试在一台 AWS i4g.16xlarge Linux 机器上运行,该机器具有 NVME 磁盘 IO、64 个 vCPU 和 512GB RAM,预留价格为每小时 2.286 美元,现货价格为每小时 1.928 美元。我们使用预留价格来计算我们的证明成本。端到端的证明时间不包括获取见证或运行时执行时间,因为这是单线程的,并且将在生产环境中在具有单个 CPU 的单独的、廉价的机器上运行。
注意: 请注意,由于 zkVM 性能的非常复杂、多维的性质(包括硬件、单节点与多节点性能、内存使用、递归成本、哈希函数选择等因素),这些基准测试仅呈现了性能的简化视图。我们尽力提供对成本的诚实评估,尽管单个基准测试很难捕捉到所有细微差别。此外,由于 SP1 仍在开发中,因此性能数字不是最终的,并且预计会随着时间的推移而提高。
- 原文链接: blog.succinct.xyz/sp1-re...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!