Skip to content
@arkworks-rs

arkworks

An ecosystem for developing and programming with zkSNARKs

arkworks

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.

Getting started

Below are some resources for getting started working with arkworks crates:

Repo index

Working with SNARKs

  • snark - defines interfaces for a SNARK, for your application to generically use them
  • relations - defines interfaces for relations, e.g. r1cs, AIR

SNARK proving systems

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

Circuit building

Algebra

Citation

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},
}

Pinned

  1. algebra Public

    Libraries for finite field, elliptic curve, and polynomial arithmetic

    Rust 315 101

  2. groth16 Public

    A Rust implementation of the Groth16 zkSNARK

    Rust 84 25

  3. r1cs-std Public

    R1CS constraints for bits, fields, and elliptic curves

    Rust 54 17

  4. curves Public

    Implementations of popular elliptic curves

    Rust 147 57

  5. marlin Public

    A Rust library for the Marlin preprocessing zkSNARK

    Rust 201 43

  6. Interfaces and implementations of cryptographic primitives, along with R1CS constraints for them

    Rust 59 21

Repositories

Top languages

Rust Python

Most used topics

Loading…