Crate nova_snark

Source
Expand description

This library implements Nova, a high-speed recursive SNARK.

Modules§

errors
This module defines errors returned by the library.
frontend
Support for generating R1CS
gadgets
This module implements various gadgets necessary for Nova and applications built with Nova.
nova
This module implements Nova’s IVC scheme including its folding scheme.
provider
This module implements Nova’s traits using the following several different combinations
spartan
This module implements RelaxedR1CSSNARKTrait using Spartan that is generic over the polynomial commitment and evaluation argument (i.e., a PCS) We provide two implementations, one in snark.rs (which does not use any preprocessing) and another in ppsnark.rs (which uses preprocessing to keep the verifier’s state small if the PCS provides a succinct verifier) We also provide direct.rs that allows proving a step circuit directly with either of the two SNARKs.
traits
This module defines various traits required by the users of the library to implement.

Macros§

impl_traits
Implements Nova’s traits
impl_traits_no_dlog_ext
Implements Nova’s traits except DlogGroupExt so that the MSM can be implemented differently
zip_with
Macros to give syntactic sugar for zipWith pattern and variants.
zip_with_for_each
Like zip_with but use for_each instead of map.