Crate nova_snark
source ·Expand description
This library implements Nova, a high-speed recursive SNARK.
Modules§
- This module defines errors returned by the library.
- This module implements various gadgets necessary for Nova and applications built with Nova.
- This module implements Nova’s traits using the following several different combinations
- 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. - This module defines various traits required by the users of the library to implement.
Macros§
- This implementation behaves in ways specific to the halo2curves suite of curves in:
- Macros to give syntactic sugar for zipWith pattern and variants.
- Like
zip_with
but usefor_each
instead ofmap
.
Structs§
- A SNARK that proves the knowledge of a valid
RecursiveSNARK
- A type that holds the prover key for
CompressedSNARK
- A type that holds public parameters of Nova
- A SNARK that proves the correct execution of an incremental computation
- A type that holds the verifier key for
CompressedSNARK