用 Rust 实现的 Circle STARK 证明生成与验证库,基于 M31 域,验证器支持 no_std。
succinctlabs/sp1
一个零知识虚拟机,可为用 Rust 或其他 LLVM 编译语言编写的程序生成正确执行的证明。
- Star
- 1,768
- Fork
- 722
- 未关闭 Issue
- 156
- 最近提交
- 前天
这是什么?
SP1 是一个零知识虚拟机(zkVM),用于证明编译为 RISC-V 架构的程序被正确执行。开发者可以直接用普通 Rust 代码编写程序,在 SP1 中运行后得到一份证明,任何人都可以在不重新执行程序的前提下验证计算结果。
它的目标是让不具备密码学专业背景的开发者也能使用零知识证明。程序可以使用带 std 支持的标准 Rust,大多数 Rust crate 无需修改即可使用。项目还列举了 ZK Tendermint 轻客户端、基于 Reth 的 type-1 zkEVM 等较大规模的应用示例。
SP1 提供 Rust 工具链、安装脚本以及基于 Plonky3 工具包构建的证明器,并支持为常用密码学运算添加预编译(precompile),这些预编译以额外的表与 CPU 并行工作。项目已通过 Veridise、Cantina、Zellic 和 KALOS 的安全审计,要求 Rust 版本不低于 1.91.1。
核心功能
- 01可证明任意 Rust 程序及其他 LLVM 编译语言程序的执行过程。
- 02支持带 std 的 Rust,并兼容大多数 Rust crate。
- 03支持为常用密码学运算添加可扩展的预编译。
- 04生成的证明可独立验证,无需重新执行原始程序。
- 05提供 Rust 工具链、安装脚本和示例程序。
适用场景
- 为 Tendermint 等区块链开发零知识轻客户端。
- 开发证明以太坊区块执行的 zkEVM 组件。
- 用普通 Rust 代码编写可验证的链下计算。
快速上手
- 1
从 rust-lang.org 官网安装 Rust
- 2
按照 SP1 手册中的安装指南进行安装
- 3
阅读 SP1 手册中的快速入门章节
使用前须知
- 需要 Rust 1.91.1 或更高版本(MSRV)。
标签
常见问题
- sp1 是什么?
- 一个零知识虚拟机,可为用 Rust 或其他 LLVM 编译语言编写的程序生成正确执行的证明。 SP1 是一个零知识虚拟机(zkVM),用于证明编译为 RISC-V 架构的程序被正确执行。开发者可以直接用普通 Rust 代码编写程序,在 SP1 中运行后得到一份证明,任何人都可以在不重新执行程序的前提下验证计算结果。
- sp1 可以免费使用吗?用的什么许可证?
- sp1 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- sp1 还在维护吗?
- 活跃维护中。sp1 最近一次提交是在 2026年11月5日。
- sp1 适合用来做什么?
- 为 Tendermint 等区块链开发零知识轻客户端。 开发证明以太坊区块执行的 zkEVM 组件。 用普通 Rust 代码编写可验证的链下计算。
- sp1 怎么安装和运行?
- 从 rust-lang.org 官网安装 Rust 按照 SP1 手册中的安装指南进行安装 阅读 SP1 手册中的快速入门章节
- 在哪里获取 sp1?
- 源代码和安装说明在 GitHub 上:https://github.com/succinctlabs/sp1
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
Aleo 网络的去中心化节点软件,面向零知识应用的运行与共识。
用 Lean 编写、经过形式化验证的以太坊基础组件库,供 Lean 项目共享复用。
用 TypeScript 编写零知识电路和 zkApp 的框架,可在浏览器或 Node 中生成与验证证明。
基于 JavaScript 和 WebAssembly 的 zkSNARK 库,支持 Groth16、PLONK、FFLONK 证明生成与验证,配合 circom 电路使用。
基于 Cardano 链的隐私投票应用,投票人用零知识证明验证身份,投票内容匿名且结果上链不可篡改。