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 usefor_each
instead ofmap
.