https://github.com/argumentcomputer/multi-stark
Implementation of a multicircuit STARK in P3
https://github.com/argumentcomputer/multi-stark
Last synced: 2 months ago
JSON representation
Implementation of a multicircuit STARK in P3
- Host: GitHub
- URL: https://github.com/argumentcomputer/multi-stark
- Owner: argumentcomputer
- License: apache-2.0
- Created: 2025-07-05T13:11:18.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2026-03-30T14:05:28.000Z (2 months ago)
- Last Synced: 2026-03-30T16:08:01.546Z (2 months ago)
- Language: Rust
- Size: 188 KB
- Stars: 4
- Watchers: 0
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# multi-STARK
A multi-circuit STARK proving system built on [Plonky3](https://github.com/Plonky3/Plonky3).
Prove and verify multiple AIR circuits in a single proof, with cross-circuit
lookup arguments for shared state.
## Features
- **Multi-circuit proofs** — bundle multiple AIR circuits into one proof with
independent trace heights
- **Lookup arguments** — push/pull interactions of arbitrary length between
circuits, enforced via accumulator-based multiset checks
- **Preprocessed tables** — commit to fixed tables once, reuse across proofs
- **Serialization** — `Proof::to_bytes` / `Proof::from_bytes` via bincode
- **Parallel proving** — opt-in via the `parallel` feature flag
## Cryptographic setup
| Component | Choice |
|-----------|-----------------------------------------------|
| Field | Goldilocks (p = 2^64 - 2^32 + 1) |
| Extension | Degree-2 binomial extension (~2^128 elements) |
| Hash | Keccak-256 |
| PCS | FRI over Merkle trees |
Security level is configurable via `FriParameters`. With `log_blowup = 1` and
`num_queries = 100`, FRI provides ~2^(-100) soundness error. See the
[verifier module docs](src/verifier.rs) for the full soundness argument.
## Examples
**Minimal prove-and-verify** (no lookups):
```sh
cargo run --example simple_proof --release
```
**Preprocessed trace with lookups** (byte range-check table):
```sh
cargo run --example preprocessed_proof --release
```
**Multi-circuit with lookup arguments**:
```sh
cargo run --example lookup_proof --release
```
## Benchmarks
```sh
cargo bench --bench multi_stark --features parallel
```
Benchmarks cover `prove` and `verify` at 2^12, 2^13, and 2^14 trace rows
using a U32 addition circuit with lookups and a preprocessed byte table.
Use `--features parallel` for representative numbers. Native SIMD instructions
are enabled by default via `.cargo/config.toml`.
## License
MIT or Apache-2.0