eigen-zkvm
eigen-zkvm copied to clipboard
A Rust zkVM with a Modular Proof System
eigen-zkvm
eigen-zkvm is a zkVM on a layered proof system, allowing the developers to write Zero-knowledge applications, proving with the layered proof system to achieve no trusted setup, constant on-chain proof size and low gas cost, and finally generating the solidity verifier.
-
[x] zkit: universal command line for stark, plonk, and groth16.
-
[x] Circom 2.x support;
-
[x] Proof composition: proof aggregation and recursion on Stark;
-
[X] Proof Recursion with Snark on Stark;
-
[x] Solidity verifier generation;
-
[x] GPU acceleration for proving, not open-sourced;
-
[x] WASM friendly for single proving and verifying, NodeJS/Javascript prover and verifier, plonkjs;
-
[x] Eigen zkVM: basing on RISCV ISA.
How the layered proof system works
Tutorial
- Generate universal setup key
zkit setup -p 13 -s setup_2^13.key
For the power from 20 to 26, you can download directly from universal-setup hub.
- Single proof
test_plonk_verifier.sh
test_plonk_verifier.sh poseidon
- Snark aggregation proof
test_aggregation.sh
- Stark aggregation proof
stark_aggregation.sh yes BN128
stark_aggregation.sh yes BLS12381
- Stark proof and recursive stark prove
starky
- Layered proof
starkjs