Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/0xEigenLabs/eigen-zkvm
A Rust zkVM with a Modular Proof System
https://github.com/0xEigenLabs/eigen-zkvm
circom plonk rust snarkjs stark zkp zkvm
Last synced: 3 months ago
JSON representation
A Rust zkVM with a Modular Proof System
- Host: GitHub
- URL: https://github.com/0xEigenLabs/eigen-zkvm
- Owner: 0xEigenLabs
- License: apache-2.0
- Created: 2022-04-08T06:34:01.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-31T16:43:56.000Z (4 months ago)
- Last Synced: 2024-07-31T20:44:22.766Z (4 months ago)
- Topics: circom, plonk, rust, snarkjs, stark, zkp, zkvm
- Language: Rust
- Homepage:
- Size: 75.3 MB
- Stars: 124
- Watchers: 7
- Forks: 35
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-zkvm - eigen zkvm
- awesome-zkvm - eigen zkvm
README
# 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](https://github.com/0xEigenLabs/plonkjs);
- [x] Eigen zkVM: basing on RISCV ISA.
## How the layered proof system works
![mixed-proof-system](./docs/mixed-proof-system.png)
## 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](https://universal-setup.ams3.digitaloceanspaces.com).* Single proof
> [test_plonk_verifier.sh](./test/test_plonk_verifier.sh)
> [test_plonk_verifier.sh poseidon](./test/test_plonk_verifier.sh)
* Snark aggregation proof
> [test_aggregation.sh](./test/test_aggregation.sh)
* Stark aggregation proof
> [stark_aggregation.sh yes BN128](./test/stark_aggregation.sh)
> [stark_aggregation.sh yes BLS12381](./test/stark_aggregation.sh)
* Stark proof and recursive stark prove
> [starky](./starky)* Layered proof
> [starkjs](./starkjs)
## Applications
* [Rust zkVM/Risc V/REVM)](https://docs.powdr.org/backends/estark.html)
* [REVM](https://github.com/powdr-labs/powdr/tree/main/riscv/tests/riscv_data/evm)
* [zkml-rust](https://github.com/eigmax/zkml-rust)
* [eigen-secret](https://github.com/0xEigenLabs/eigen-secret)
* [zk-mixer](https://github.com/0xEigenLabs/zk-mixer)