0xEigenLabs / eigen-zkvm

A Rust zkVM with a Modular Proof System

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

  • zkit: universal command line for stark, plonk, and groth16.

  • Circom 2.x support;

  • Proof composition: proof aggregation and recursion on Stark;

  • Proof Recursion with Snark on Stark;

  • Solidity verifier generation;

  • GPU acceleration for proving, not open-sourced;

  • WASM friendly for single proving and verifying, NodeJS/Javascript prover and verifier, plonkjs;

  • Eigen zkVM: basing on RISCV ISA.

How the layered proof system works

mixed-proof-system

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

Applications

About

A Rust zkVM with a Modular Proof System

License:Apache License 2.0


Languages

Language:Rust 78.2%Language:Circom 20.4%Language:Solidity 0.5%Language:JavaScript 0.4%Language:Shell 0.3%Language:TypeScript 0.2%Language:Makefile 0.0%