arkworks
is a Rust ecosystem for zkSNARK programming. Libraries in the arkworks
ecosystem provide efficient implementations of all components required to implement zkSNARK applications, from generic finite fields to R1CS constraints for common functionalities.
Below are some resources for getting started working with arkworks
crates:
- Talk at Real World Crypto providing an overview of the
arkworks
ecosystem. - Tutorial for R1CS programming using the
ark-relations
,ark-r1cs-std
, andark-crypto-primitives
crates. - Quick introduction to using
arkworks
' algebra infrastructure:
We have a Discord community where folks can ask questions and learn about zkSNARK programming. We also have a Twitter where we (infrequently) post updates.
- snark - defines interfaces for a SNARK, for your application to generically use them
- relations - defines interfaces for relations, e.g. r1cs, AIR
Fully packaged SNARK crates
- groth16
- marlin - universal setup SNARK for r1cs
- gm17
- gemini - an elastic proof system for streaming inputs
- ripp -inner pairing product argument system
If you use arkworks
libraries in your research projects, please cite them using the following template:
@software{arkworks,
author = {arkworks contributors},
title = {\texttt{arkworks} zkSNARK ecosystem},
url = {https://arkworks.rs},
year = {2022},
}