Contributions and suggestions are always welcome; open issues or pull requests with any changes you want to be made.
[!NOTE]
Maintained by @0xpiapark and @alexanderlhicks. Some details may be outdated; feel free to open an issue or PR. For discussions on fair tracking methods, see the open issues.
n+1 includes the proving of segment n's verifier). How self-contained the proving of each segment is (no commitment passed from one segment to the other) and how efficiently parallelizatable it is (minimal inter-thread comm) differs from one implementation to another.| zkVM | ISA | Continuations | Parallelizable Proving | Precompiles | GPU | Frontend |
|---|---|---|---|---|---|---|
| cairo | Cairo | :x: | :x: | :white_check_mark: | Cairo | |
| cairo m | Cairo M | :white_check_mark: | :x: | :x: | Cairo M | |
| ceno | RISC-V | :x: | :x: | :white_check_mark: | Rust | |
| eigen zkvm | RISC-V | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | Circom, PIL |
| jolt | RISC-V | :x: | :x: | :x: | Rust | |
| miden | MASM(Miden Assembly) | :x: | :x: | :white_check_mark: | :white_check_mark: | Rust, Wasm |
| mozak vm | RISC-V | :x: | :x: | :x: | Rust | |
| nexus | RISC-V | :white_check_mark: | :white_check_mark: | :white_check_mark: | Rust | |
| o1vm | MIPS | :x: | :x: | :x: | Go | |
| olavm | Ola Assembly | :x: | :x: | :white_check_mark: | Ola Assembly | |
| openvm | RISC-V | :white_check_mark: | :white_check_mark: | :white_check_mark: | Rust | |
| pico | RISC-V | :white_check_mark: | :white_check_mark: | :white_check_mark: | Rust | |
| powdrVM | RISC-V | :white_check_mark: | :white_check_mark: | :white_check_mark: | ASM assembly | |
| risc0 | RISC-V | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | Rust |
| sp1 | RISC-V | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | Rust |
| sphinx | RISC-V | :white_check_mark: | :white_check_mark: | :white_check_mark: | Rust, Lurk | |
| triton vm | Triton Assembly | :x: | :x: | :x: | Triton Assembly | |
| valida | Valida | :x: | :x: | :x: | Rust, C | |
| zisk | RISC-V | :white_check_mark: | :white_check_mark: | :white_check_mark: | PIL | |
| zkm | MIPS | :white_check_mark: | :white_check_mark: | :white_check_mark: | Rust, Go | |
| zkWasm | Wasm | :white_check_mark: | :white_check_mark: | :white_check_mark: | C, C++, rust, etc (wasm compilable) |
| zkVM | Arithmetization | Optimizations | Backends | Verifiers |
|---|---|---|---|---|
| cairo | AIR | FRI | ||
| cairo m | AIR | Lookup | FRI | Rust |
| ceno | GKR | Lookup, Sumcheck | Brakedown | Rust |
| eigen zkvm | eAIR | FRI, Groth16 | Solidity | |
| jolt | R1CS | Lookup, Sumcheck, Offline Mem Check | Spartan | WASM |
| miden | AIR (winterfell) | Lookup, | Winterfell | Rust |
| mozak vm | AIR (Starky) | Lookup, | FRI | Rust |
| nexus | Folded Accumulated Relaxed R1CS | Accumulated Folding | Spartan + {Zeromorph, PSE-Halo2 (KZG)} | Rust |
| o1vm | Plonkish | Lookup | IPA | Rust |
| olavm | AIR (plonky2) | Lookup | FRI | Rust |
| openvm | AIR (plonky3), GKR | FRI | Rust | |
| pico | AIR (plonky3) | Lookup | FRI | Rust, Solidity |
| powdrVM | AIR -ish (PIL, plonky3) | - | PSE-Halo2 (KZG), Plonky3, FRI(eSTARK) | Solidity |
| risc0 | PLONK | Plookup | DEEP-FRI & ALI | Rust, Solidity |
| sp1 | AIR (plonky3) | Lookup | FRI | Rust, Solidity |
| sphinx | AIR (core), PLONK (wrap) | Lookup, | FRI | Rust |
| triton vm | AIR | Lookup, Contiguity | FRI | Rust |
| valida | AIR (plonky3) | FRI | ? | |
| zisk | ? | ? | ? | ? |
| zkm | AIR (plonky2) | Lookup, | FRI | Rust |
| zkWasm | PLONK | - | IPA? | Rust |
Contributions and suggestions are always welcome; open issues or pull requests with any changes you want to be made.
[!NOTE]
Maintained by @0xpiapark and @alexanderlhicks. Some details may be outdated; feel free to open an issue or PR. For discussions on fair tracking methods, see the open issues.
n+1 includes the proving of segment n's verifier). How self-contained the proving of each segment is (no commitment passed from one segment to the other) and how efficiently parallelizatable it is (minimal inter-thread comm) differs from one implementation to another.| zkVM | ISA | Continuations | Parallelizable Proving | Precompiles | GPU | Frontend |
|---|---|---|---|---|---|---|
| cairo | Cairo | :x: | :x: | :white_check_mark: | Cairo | |
| cairo m | Cairo M | :white_check_mark: | :x: | :x: | Cairo M | |
| ceno | RISC-V | :x: | :x: | :white_check_mark: | Rust | |
| eigen zkvm | RISC-V | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | Circom, PIL |
| jolt | RISC-V | :x: | :x: | :x: | Rust | |
| miden | MASM(Miden Assembly) | :x: | :x: | :white_check_mark: | :white_check_mark: | Rust, Wasm |
| mozak vm | RISC-V | :x: | :x: | :x: | Rust | |
| nexus | RISC-V | :white_check_mark: | :white_check_mark: | :white_check_mark: | Rust | |
| o1vm | MIPS | :x: | :x: | :x: | Go | |
| olavm | Ola Assembly | :x: | :x: | :white_check_mark: | Ola Assembly | |
| openvm | RISC-V | :white_check_mark: | :white_check_mark: | :white_check_mark: | Rust | |
| pico | RISC-V | :white_check_mark: | :white_check_mark: | :white_check_mark: | Rust | |
| powdrVM | RISC-V | :white_check_mark: | :white_check_mark: | :white_check_mark: | ASM assembly | |
| risc0 | RISC-V | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | Rust |
| sp1 | RISC-V | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | Rust |
| sphinx | RISC-V | :white_check_mark: | :white_check_mark: | :white_check_mark: | Rust, Lurk | |
| triton vm | Triton Assembly | :x: | :x: | :x: | Triton Assembly | |
| valida | Valida | :x: | :x: | :x: | Rust, C | |
| zisk | RISC-V | :white_check_mark: | :white_check_mark: | :white_check_mark: | PIL | |
| zkm | MIPS | :white_check_mark: | :white_check_mark: | :white_check_mark: | Rust, Go | |
| zkWasm | Wasm | :white_check_mark: | :white_check_mark: | :white_check_mark: | C, C++, rust, etc (wasm compilable) |
| zkVM | Arithmetization | Optimizations | Backends | Verifiers |
|---|---|---|---|---|
| cairo | AIR | FRI | ||
| cairo m | AIR | Lookup | FRI | Rust |
| ceno | GKR | Lookup, Sumcheck | Brakedown | Rust |
| eigen zkvm | eAIR | FRI, Groth16 | Solidity | |
| jolt | R1CS | Lookup, Sumcheck, Offline Mem Check | Spartan | WASM |
| miden | AIR (winterfell) | Lookup, | Winterfell | Rust |
| mozak vm | AIR (Starky) | Lookup, | FRI | Rust |
| nexus | Folded Accumulated Relaxed R1CS | Accumulated Folding | Spartan + {Zeromorph, PSE-Halo2 (KZG)} | Rust |
| o1vm | Plonkish | Lookup | IPA | Rust |
| olavm | AIR (plonky2) | Lookup | FRI | Rust |
| openvm | AIR (plonky3), GKR | FRI | Rust | |
| pico | AIR (plonky3) | Lookup | FRI | Rust, Solidity |
| powdrVM | AIR -ish (PIL, plonky3) | - | PSE-Halo2 (KZG), Plonky3, FRI(eSTARK) | Solidity |
| risc0 | PLONK | Plookup | DEEP-FRI & ALI | Rust, Solidity |
| sp1 | AIR (plonky3) | Lookup | FRI | Rust, Solidity |
| sphinx | AIR (core), PLONK (wrap) | Lookup, | FRI | Rust |
| triton vm | AIR | Lookup, Contiguity | FRI | Rust |
| valida | AIR (plonky3) | FRI | ? | |
| zisk | ? | ? | ? | ? |
| zkm | AIR (plonky2) | Lookup, | FRI | Rust |
| zkWasm | PLONK | - | IPA? | Rust |