一个零知识虚拟机,可为用 Rust 或其他 LLVM 编译语言编写的程序生成正确执行的证明。
starkware-libs/stwo
用 Rust 实现的 Circle STARK 证明生成与验证库,基于 M31 域,验证器支持 no_std。
- Star
- 507
- Fork
- 183
- 未关闭 Issue
- 48
- 最近提交
- 前天
这是什么?
Stwo 是用 Rust 编写的 Circle STARK 证明生成与验证库。它基于 Mersenne 素数域 M31(2^31 − 1)运行证明系统,M31 的 32 位模运算可以映射到 AVX2、AVX-512、NEON 和 WebAssembly SIMD 等向量指令上。库中实现了 M31、CM31、QM31 域扩展、circle FFT、适配圆域的 FRI,以及 lifted Merkle 承诺方案,并支持 Blake2s、Blake3、Poseidon252、Keccak256 等 Fiat-Shamir 信道。
仓库按 crate 划分:核心 crate 将 no_std 验证器与证明器分开,证明器通过 `prover` feature 启用。约束框架、air-utils 以及 Fibonacci、Poseidon2、Blake、PLONK 风格电路和状态机等参考示例也位于同一仓库。库中还包含用于内存与表查找的 GKR 和 LogUp 论证。
Stwo 是 StarkWare 的 SHARP 共享证明器以及 Cairo VM 证明器 stwo-cairo 的底层基础。面向具体应用的证明器位于独立仓库。自 2026 年 7 月底起,开发工作迁移至 starkware-libs/proving。
核心功能
- 01基于 M31 域的 Circle STARK 证明生成与验证。
- 02no_std 验证器,可在不包含证明器代码的情况下构建。
- 03支持 AVX2、AVX-512、NEON 和 WebAssembly 的 SIMD 后端,并提供 CPU 参考后端。
- 04支持 Blake2s、Blake3、Poseidon252、Keccak256 等多种 Fiat-Shamir 信道。
- 05提供 GKR 与 LogUp 查找论证,用于内存和表格检查。
- 06通过 `parallel` feature 可选启用基于 Rayon 的并行证明。
适用场景
- 在 STARK 后端之上构建 zkVM 或可验证计算系统。
- 将轻量 STARK 验证器嵌入 Solidity 或 Cairo 合约等链上环境。
- 研究 Circle STARK 构造以及圆域上的 FRI。
- 学习 Poseidon2、Blake 等参考电路在 STARK 证明中的实现方式。
快速上手
- 1
将 stwo 添加为 Rust 依赖(仅验证器或带 prover 功能)
- 2
以 release 模式构建完整证明器
cargo build --release --features prover - 3
运行标准测试套件
cargo test --features prover
使用前须知
- 需要 Rust nightly 版本,版本在 rust-toolchain.toml 中固定。
- 要获得完整的证明器性能需要支持 AVX2、AVX-512 或 NEON 的 CPU。
- 自 2026 年 7 月起,开发工作将迁移到新的代码仓库。
标签
常见问题
- stwo 是什么?
- 用 Rust 实现的 Circle STARK 证明生成与验证库,基于 M31 域,验证器支持 no_std。 Stwo 是用 Rust 编写的 Circle STARK 证明生成与验证库。它基于 Mersenne 素数域 M31(2^31 − 1)运行证明系统,M31 的 32 位模运算可以映射到 AVX2、AVX-512、NEON 和 WebAssembly SIMD 等向量指令上。库中实现了 M31、CM31、QM31 域扩展、circle FFT、适配圆域的 FRI,以及 lifted Merkle 承诺方案,并支持 Blake2s、Blake3、Poseidon252、Keccak256 等 Fiat-Shamir 信道。
- stwo 可以免费使用吗?用的什么许可证?
- stwo 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- stwo 还在维护吗?
- 活跃维护中。stwo 最近一次提交是在 2026年11月5日。
- stwo 适合用来做什么?
- 在 STARK 后端之上构建 zkVM 或可验证计算系统。 将轻量 STARK 验证器嵌入 Solidity 或 Cairo 合约等链上环境。 研究 Circle STARK 构造以及圆域上的 FRI。 学习 Poseidon2、Blake 等参考电路在 STARK 证明中的实现方式。
- stwo 怎么安装和运行?
- 将 stwo 添加为 Rust 依赖(仅验证器或带 prover 功能) 以 release 模式构建完整证明器: cargo build --release --features prover 运行标准测试套件: cargo test --features prover
- 在哪里获取 stwo?
- 源代码和安装说明在 GitHub 上:https://github.com/starkware-libs/stwo
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
Aleo 网络的去中心化节点软件,面向零知识应用的运行与共识。
基于 JavaScript 和 WebAssembly 的 zkSNARK 库,支持 Groth16、PLONK、FFLONK 证明生成与验证,配合 circom 电路使用。
用 Lean 编写、经过形式化验证的以太坊基础组件库,供 Lean 项目共享复用。
用 TypeScript 编写零知识电路和 zkApp 的框架,可在浏览器或 Node 中生成与验证证明。
可自托管的一次性加密密码与机密分享网页应用,无需复杂配置。