# 在 Succinct，SP1 Turbo 是这一旅程中的一个重要里程碑

By [xiaodongchen](https://paragraph.com/@dongxueer) · 2025-03-14

---

今天写一下关于Succinct的内容SP1，文章已易懂的方式展现给大家，主要是让大家易于理解和阅读，全篇分为简介、工作原理、进阶、优势对比、用例、测试网游戏测试等内容介绍SP1，虽然现在只用的SP1 Turbo版本，但是之前的种种升级和团队的各种贡献都依次梳理完成并加入自己看法
===========================================================================================================================================

简介
==

SP1 是一个高性能的开源零知识虚拟机 （zkVM），用于验证任意 Rust（或任何 LLVM 编译的语言）程序的执行情况，并获得廉价且快速的证明，

SP1 将使 ZKP 成为主流，为所有区块链基础设施及其他领域引入可验证性的新时代。SP1 已经接受了领先 ZK 安全公司的多次审计，目前被许多顶级区块链团队用于生产。

2024年2月宣布推出了 Succinct Processor 1 （SP1）与现有的 zkVMs 相比，SP1 的目标是将性能提高一个数量级 — 对于某些程序，其 alpha 版本的速度已经提高了28倍，并且与基于电路的方法相比具有竞争，同时将开发人员的工作效率提高了 100 倍以上。SP1的性能是利用最新验证系统进步的多种设计选择的结果，包括跨表查找架构、可定制的“预编译”系统，该系统可以加速几乎任何性能瓶颈，而无需太多额外的递归开销，等等。请记住重点：我们有一个高性能预编译系统。

![官方博客](https://storage.googleapis.com/papyrus_images/a10c0125dac50f286e410e4055d402425f2b9aebdd1b8204face87ca273b9d1b.png)

官方博客

SP1 支持多种用例（文章下方会具体举例）
---------------------

Rollups：使用 SP1 为您的 Rollup 的状态转换功能生成 ZKP，可以与 [Reth](https://github.com/paradigmxyz/reth) 等现有节点基础设施结合使用，并连接到以太坊、比特币或其他具有完整有效性证明或 ZK 欺诈证明的链。

Coprocessors：SP1 可用于将链上计算外包给链下证明者，以实现基于历史状态的大规模计算和链上机器学习等用例，从而显著降低 gas 成本。

互作性：使用 SP1 实现快速确定性、跨 rollup 互作性

Bridges：使用 SP1 生成 ZKP 以验证 L1 的共识，包括 Tendermint、以太坊的轻客户端协议等，用于链之间的桥接。[SP1 Tendermint](https://github.com/succinctlabs/sp1-tendermint-example)：由 SP1 提供支持的以太坊上的 ZK Tendermint 轻客户端示例。

预言机：使用 SP1 进行链上状态的大规模计算，包括共识数据和存储数据。

聚合：使用 SP1 聚合和验证其他 ZKP，以降低链上验证成本。

隐私：使用 SP1 实现链上隐私，包括私人交易和私人状态。

SP1 是最快的 zkVM，在各种实际的区块链工作负载（包括轻客户端和 rollup）上具有极快的性能。使用 SP1，ZKP 验证成本比其他 zkVM 甚至电路低一个数量级，使其具有成本效益且实际使用速度快。（下方会有图文介绍为什么SP1很快）

开源
--

SP1 是 100% 开源的 （MIT / Apache 2.0），没有代码混淆，并且为贡献者友好使用而构建，所有开发都是在公开环境中完成的。与现有 zkVMs 的约束逻辑是闭源的，无法审计或修改不同，SP1 采用模块化架构，从一开始就可以定制。这种可定制性（SP1 独有）允许用户向核心 zkVM 逻辑添加“预编译”，从而产生显著的性能提升，使 SP1 的性能不仅与现有的 zkVM 相比具有 SOTA，而且在各种用例中与电路相比具有竞争力。

SP1 的工作原理
---------

概括地说，SP1 使用以下步骤：

用 Rust 编写一个程序，定义要为其生成 ZKP 的计算逻辑。

使用 `cargo prove` CLI 工具（[安装说明在这里](https://docs.succinct.xyz/docs/sp1/getting-started/install)）将程序编译为 RISC-V ISA（标准的 Rust 编译目标）并生成 RISC-V ELF 文件。

SP1 将通过生成 STARK 执行证明来证明任意 RISC-V 程序的正确执行。

开发人员可以利用 `sp1-sdk` crate 使用其 ELF 和输入数据生成证明。在后台，`sp1-sdk` 将在本地生成证明，或使用 Succinct 的证明者网络的测试版来生成证明。

SP1 利用高性能的 STARK 递归，使我们能够证明任意长程序的执行，并且还具有 STARK -> SNARK“包装系统”，允许我们生成可以在 EVM 链上有效验证的小型 SNARK 证明。

我们使用高性能的 STARK 递归，这使我们能够证明任意长程序的执行情况

我们有一个高性能预编译系统，可以加速哈希函数和加密签名验证，使我们能够在区块链工作负载上获得实质性的性能提升。

**首先性能和效率体现在了这里：**

Polygon Labs 将把 Jacincinct 的 zkVM SP1 用于 AggLayer 的关键组件，SP1 使 Polygon 能够在不牺牲性能的情况下，将开发人员时间减少 10 倍来构建 AggLayer 的 ZKP 组件。

另外Succinct 和 Polygon Zero 团队之间的合作非常富有成效，两个团队都为彼此的代码库做出了贡献。Polygon Plonky3 是由 Polygon Zero 团队为 ZK 应用程序和 zkVM 开发人员构建的模块化证明系统库。在构建 SP1 时，Succinct 选择了 Polygon Plonky3，因为它具有模块化、性能和宽松的开源许可证。

SP1 在2024年8月份上线，已经有很多合作伙伴参与合作，很多团队使用 SP1 进行 ZK作业

![官方博客](https://storage.googleapis.com/papyrus_images/3cf8a9a7752f3322b2710ea803c9e6ef56cb39533b42bff931f88fa58951d4d2.png)

官方博客

2024年9月份模块化数据可用性层 **Celestia** 正在使用市场领先的 zkVM SP1 来保护到以太坊的 Blobstream 桥，**为什么？**

Blobstream 桥需要计算 EVM 智能合约中的两个属性：验证 Celestia 的 Tendermint 共识算法，计算一系列 Celestia 区块中包含的所有数据哈希的 Merkle 根。对于普通的以太坊智能合约来说，这种逻辑成本太高了，特别是因为 EVM 没有对 Celestia 的验证者使用的 ed25519 签名进行预编译。值得庆幸的是，ZKP 的无限可扩展性派上了用场。

\*\*答：\*\*使用 SP1，构建像 Blobstream 一样强大的基础设施就像编写 Rust 一样简单，使用 Succinct 的证明者网络生成证明，并在链上验证此 ZKP 以访问智能合约中的无限计算，SP1-Blobstream 实现具有以下优势：

\*\*得益于 SP1 的预编译（前边说了，记住重点）\*\*对 Celestia 的 Tendermint 共识进行了高性能验证，包括其验证者的 ed25519 签名，无需更改 Celestia 的共识协议，利用标准的 tendermint-rs库，使最终的 Blobstream 程序的 SP1 程序代码少于 300 行，便宜的链上验证，~280k gas，用于任何 EVM 链上的 SP1-Blobstream SNARK 证明，100% 开源的公共产品，可以在任何 EVM 链上使用（很快将在 SVM 链上，这个以后再说）

SP1-Blobstream 已在生产环境中运行了很多天，以每小时一次的频率将 Celestia 的数据根中继到ETH主网、ARB网络、BASE网络。**强大无需多言为下方埋下伏笔(SOL)**

Bhargav the Great 发布了用于加速 bn254 和 bls12-381椭圆曲线运算的新预编译，使 SP1 成为目前唯一具有这些功能的生产就绪型 zkVM。至此可以称 SP1 有 v2.0 或 v3.0了，这些预编译可以快速证明以下内容：

在SP1程序中验证Groth16和Plonk-KZG证明

在以太坊中需要快速的 BLS12-381 EC 算法用于 KZG 和 blob

快速 bn254 算法和配对计算，用于证明 EVM 执行（使用 revm），从而极大地提升了 RSP

和 OP-Succincint的性能。

使用 SP1 Helios 优化的以太坊 ZK Light 客户端

嫌编程太慢？使用 SP1，唯一具有 bn254 和 bls12-381 预编译的 zkVM，并亲自体验戏剧性的、数量级的加速。具体内容和分析请看下方链接，这里不过多赘述

[https://blog.succinct.xyz/succinctshipsprecompiles/](https://blog.succinct.xyz/succinctshipsprecompiles/)

通过 SP1 Solana 验证器在 Solana 上使用 ZKP
=================================

先举例，只做简单概述，不过多分析

已经有一些团队在 Solana 上使用 SP1 进行构建。包括但不限于：

Termina：正在为特定于应用程序的区块空间和可扩展执行构建 SVM rollup 基础设施（网络扩展）。

Soon：正在构建一个适应以太坊的 SVM rollup 框架，其 ZK 故障证明由 SP1 提供支持。

Aerius:使用 SP1 使 SVM ZK 可验证。

Spicenet:利用 SP1 来证明他们连接到 Solana 的统一流动性层的状态转换功能。

Sovereign SDK：一个特定于应用程序的汇总框架，具有用于 ZK 验证的 SP1 集成，Zeta Markets 等团队使用它来构建汇总和网络扩展。

具体内容请查看下方链接（很详细，这里不多赘述）

[https://blog.succinct.xyz/solana-sp1/](https://blog.succinct.xyz/solana-sp1/)

**Phala Network 是主网上第一个由 Succinct 提供支持的 AI Agent Rollup**

Phala Network 是领先的 TEE 网络，开创了可验证 AI 代理的未来。Succinct支持 Phala 在主网上推出第一个 OP Succinct rollup。像 Phala 这样的前沿加密和 AI 应用程序正在使用由 Seccinct 提供支持的 ZK rollup。

Phala 的 ZK rollup 以 SP1 的轻松和高效的方式结算他们在以太坊上的 TEE 网络的付款。对于像 AI 代理这样的高吞吐量应用程序，这些应用程序需要快速支付结算才能使用 Phala TEE 网络，Phala 具有独特的需求，需要可靠性和一致的开发人员体验。

他们的链最初是作为 Polkadot 平行链开始的，但越来越明显的是，以太坊上的 ZK rollup 是适合他们的正确解决方案。使用 ZK 扩展其网络支付，使更多开发人员可以使用其一流的 TEE 基础设施来构建前沿的 AI 应用程序。Phala 选择与 Succinct 和 Conduit 合作部署 OP Succinct rollup，已在主网上上线。

SP1 Turbo：世界上最快的 zkVM （重点阅读）
============================

**前边说了SP1 有 v2.0 或 v3.0了，下边说一下SP1 4.0 哈哈 又升级了**

SP1 Turbo （v4.0） 是 SP1 的最新升级，提供了显著的成本和延迟改进。SP1 Turbo 是一款_速度极快_的 zkVM，为各种 ZK 工作负载提供一流的性能，包括 rollup （zkEVM）、轻客户端、签名验证和其他区块链计算。

在此版本中，提供了全新的预编译器，包括 secp256r1 和 bigint 算法，用于高效的 RSA 签名验证。预编译是用于密集加密作的专用电路。它们为大量使用加密技术（如哈希函数和签名验证）的区块链工作负载提供了数量级的性能提升。预编译是 SP1 成为 zkEVM 和其他 rollup 工作负载_最快的_ zkVM 的一个重要原因。

凭借这些预编译，SP1 在支持的预编译种类方面是市场领先的 zkVM。SP1 TURBO：使用新的内存参数向实时证明更近了一步

在 SP1 Turbo 中所做的最大更改之一是 zkVM 处理内存的方式。这是一个关键的变化，能够在 AWS 上实现在 40 秒<证明以太坊区块的惊人基准。

使用两个日志跟踪内存，在 SP1 的所有版本中，全部遵循 Spartan 的离线内存检查方法（它本身基于 Blum 等人 \[BEG+94\]）。以下是离线内存检查方法的工作原理，经过简化：

每次访问内存（无论是读取还是写入）时，都会记录两条信息。将它们视为两个日志：一个用于读取 ，另一个用于写入 。每条日志都包含三条信息：访问数值、访问存在于内存中的位置、什么时候访问。当从内存中读取时，会在两个日志中都做一个条目。在读取日志 中，我们记录找到的值以及上次从该位置读取的时间。在写入日志中，我们记录相同的值，但使用当前时间。写入内存时，我们再次在两个日志中都进行记录。读取日志获取那里的旧值，而写入日志获取我们正在写入的新值，两者都带有各自的时间戳。

如果每个读取都与将该值放在该位置的先前写入作匹配，则认为内存是一致的。这个简单但强大的系统验证内存是否正确地以正确的顺序发生，而不必存储内存状态的整个历史记录。

SP1 日志实现的演变，在 SP1 V1.0-V3.0 中，我们使用指纹识别实现了这些日志。虽然这种方法有效，但它有一个很大的局限性：它需要验证器的随机性，这意味着我们必须等待整个计算完成，然后才能开始证明内存一致性。这使我们在云的端到端延迟减少了近 2 倍，并且需要更多的 GPU 才能达到峰值延迟。

在 SP1 Turbo 中，通过切换到一种称为椭圆曲线多集哈希的技术来解决这些问题。关于这种方法如何工作的简短解释是，它对我们在日志中写入的消息进行 “哈希” 处理，然后将其用作椭圆曲线点的坐标。跟踪这些椭圆曲线点的运行总和，从而提供日志状态的简洁摘要。这种新方法允许在计算进行时“动态”验证内存作，因为它不需要验证器随机性，而是依赖于椭圆曲线的属性。在 BabyBear 场上精心选择了一条椭圆曲线，该曲线可以在保持强大安全特性的同时实现高效证明。

实际意义：在明显减少的 GPU 上证明延迟 10 倍

SP1 Turbo 中向椭圆曲线多集哈希的转变通过消除内存验证的顺序瓶颈，改变了验证管道。在 SP1 V1.0 到 V3.0 中，我们必须先在内存中实现所有计算跟踪，然后才能开始验证内存一致性。这意味着部署超大型 GPU 集群，以接近现在使用 SP1 Turbo 和仅 ~100 个 GPU 的延迟。

**结论**

**在 Succinct，使命是突破零知识证明的可能性界限，而 SP1 Turbo 是这一旅程中的一个重要里程碑。**

内容太多，下方附上链接，可以仔细研读SP1 4.0的种种内容，去学习吧（不学习怎么能进步呢）

[https://blog.succinct.xyz/sp1-turbo/](https://blog.succinct.xyz/sp1-turbo/)

**2025年的一月份，SP1 进行了安全更新，修复存在的漏洞，直至现在采用的SP1 Turbo版本，具体方法附上链接，自行去查看，不过多赘述。**

[https://blog.succinct.xyz/sp1-security-update-1-27-25/](https://blog.succinct.xyz/sp1-security-update-1-27-25/)

**根据时间线说了很多Succinct关于SP1的工作内容，下边讲一下产品优势和对比**

对以下 zkVM 进行了基准测试，**SP1完美**

选择了以下算法进行基准测试 n 个素数 ECDSA 验证BLS 验证BLS 聚合Keccak Poseidon Merklization Merkle纳入证明等 下方图片均来自 Kautukkundan大神测试，我只负责摘录，每个图表中的竖轴显示周期计数，而横轴对应的是输入的大小 。在所有对比中，数字越小越好。

一：N个素数，它们中的大多数执行情况相似，但是，Nexus VM 需要的周期比其他 zkVM 多得多，这表明与 SP1相比，性能差距很大（内存不足）。其他 zkVMs 在性能方面集群得更紧密，但所有 zkVM 都显示随着输入大小的增加而增加周期数——这一趋势将在其他算法中继续。

![Kautukkundan大神测试一](https://storage.googleapis.com/papyrus_images/cbd7296b6cb2072568f9af85f4e9fe13d3a0ffc795a422389683833877105ff6.jpg)

Kautukkundan大神测试一

二：Keccak 哈希 预编译 / 加速器 ，预编译 （SP1） 和加速器 （R0） 是虚拟机中的内置函数，与执行标准合约或字节码相同的逻辑相比，它们可以更有效地执行专用作用，从而减少计算开销和周期计数。SP1 和 RISC-0 都有许多用于常见作的预构建库

keccak 的预编译显然提供了性能优势，如 SP1（橙线）所示。与其他 zkVM 相比，Nexus VM（紫线）仍然效率低下，并且 RISC-0 随着输入大小的增加而滞后，但 SP1 的预编译表现显著，减少了周期计数。在没有预编译的 zkVM 中，SP1、Jolt、Powdr 和 Delphinus 的性能相似，进一步凸显了预编译在提高效率方面的影响。重点：预编译

![Kautukkundan大神测试二](https://storage.googleapis.com/papyrus_images/28c99854ce7a766c45e704d98408c167b2dc9f1496eb8bc35a596840c229e630.jpg)

Kautukkundan大神测试二

三：Merklization： 同样，Nexus VM 始终显示最高的周期计数。如果没有预编译，其他 zkVMs 会以中等性能集群在一起。对于较大的输入，加密加速器和预编译提供了显著的改进，尤其是在 SP1 和 RISC-0 中进行 SHA-2 预编译时。重点：预编译

![Kautukkundan大神测试三](https://storage.googleapis.com/papyrus_images/7d6b3d09b0ebd8266e7cf939084177258c44b44f72ddb3bec8a5e2f885ea86af.jpg)

Kautukkundan大神测试三

四：BLS 签名验证 \*\*，\*\*BLS 签名验证在各种链上作中发挥着至关重要的作用，从轻客户端验证到账户抽象。在这些基准测试中，Nexus 表现出更高的循环计数，而 Jolt 则难以处理内存不足错误并且无法执行。在其余的 VM 中，性能非常匹配，Delphinus 的周期使用率明显更高。值得注意的是，具有预编译的 SP1 再次提供了显著的性能提升，突出了预编译的有效性。重点：预编译

![Kautukkundan大神测试四](https://storage.googleapis.com/papyrus_images/7156469bd4eff69e247b6bc505c0f821017f95179a2ac8e40da132598a6c1747.jpg)

Kautukkundan大神测试四

还有一些其他的算法基准测试，包括 Poseidon 哈希和 BLS 签名聚合。由于这些结果的数量和复杂性，无法将它们全部包含在这文章中，下方附上链接 Kautukkundan 提供的谷歌表格数据，大家自行研究

[https://docs.google.com/spreadsheets/d/1HwZQkgiUro9Nl30tO3KdXizB\_D-1\_J3vIVXbTvuY2Mw/edit?pli=1&gid=362585795#gid=362585795](https://docs.google.com/spreadsheets/d/1HwZQkgiUro9Nl30tO3KdXizB_D-1_J3vIVXbTvuY2Mw/edit?pli=1&gid=362585795#gid=362585795)

**综上所述，话不多说 嗑不多唠 SP1 牛逼**

开篇说的测试网游戏使用SP1测试，由于时间原因，篇幅原因，在这篇文章里面不书写，以后会补齐内容。
================================================

**官方推特**

[https://x.com/SuccinctLabs](https://x.com/SuccinctLabs)

**官方discord**

[https://discord.com/invite/succinctlabs](https://discord.com/invite/succinctlabs)

**官方白皮书**

[https://www.provewith.us/](https://www.provewith.us/)

**官方文档**

[https://docs.succinct.xyz/](https://docs.succinct.xyz/)

**官方博客**

[https://blog.succinct.xyz/](https://blog.succinct.xyz/)

本文完

---

*Originally published on [xiaodongchen](https://paragraph.com/@dongxueer/succinct-sp1-turbo)*
