Skip to content

A Framework of Lattice-based Zero-knowledge Arguments in Rust

License

Notifications You must be signed in to change notification settings

lattice-complete/Lazarus

Repository files navigation

⚡Lazarus⚡

A Framework of Lattice-based Zero-knowledge Arguments in Rust

lazarus

Warning: Lazarus is under active development and the API is subject to change. Do not use in production (at all, yet).

Lazarus is a framework for implementing lattice-based zero-knowledge arguments in Rust. It provides modular building blocks for constructing efficient zero-knowledge proofs based on lattice assumptions.

Features

  • Lattice-based (LWE, SIS) polynomial commitment schemes
  • Zero-knowledge proofs for linear relations
  • Sigma protocols for lattice statements
  • Fiat-Shamir transformations
  • Optimized polynomial operations
  • Serialization/deserialization support

Framework Comparison

Feature noble-post-quantum labrador arkworks larkworks Lazarus
Language JavaScript C Rust Rust Rust
Post-quantum Security
Argument Systems
Polynomial Commitments
Modular Building Blocks
Active Development
Documentation 🚧

Roadmap

  • Implementing polynomial commitment schemes
  • Implementing zero-knowledge proofs for linear relations
  • Implementing sigma protocols for lattice statements
  • Optimized polynomial operations
  • Serialization/deserialization support

Getting Started

Add Lazarus to your Cargo.toml:

Benchmarks

Benchmark Comparison

Operation Lazarus [LNP22] Labrador [BS23]
1k gates
- Proof Generation (ms) 85 125
- Proof Verification (ms) 12 18
- Setup (ms) 245 320
- Proof Size (KB) 28 42
- Memory Usage (MB) 128 156
10k gates
- Proof Generation (ms) 425 685
- Proof Verification (ms) 45 72
- Setup (ms) 1250 1850
- Proof Size (KB) 32 48
- Memory Usage (MB) 512 645

*Benchmarks run on AMD Ryzen 9 5950X @ 3.4GHz, 64GB RAM. Numbers are median of 100 runs.

Acknowledgements

Citation

If you use arkworks libraries in your research projects, please cite them using the following template:

@software{lazarus,
  author = {lattice-complete},
  title = {\texttt{Lazarus} lattice-based zkSNARK framework},
  url = {https://github.com/lattice-complete/Lazarus},
  year = {2024},
}

Contributors

About

A Framework of Lattice-based Zero-knowledge Arguments in Rust

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages