Expand description
This library implements Nova, a high-speed recursive SNARK.
Modules§
- constants
- Global Nova constants
- errors
- This module defines errors returned by the library.
- gadgets
- This module implements various gadgets necessary for Nova and applications built with Nova.
- provider
- This module implements Nova’s traits using the following several different combinations
- r1cs
- This module defines R1CS related types and a folding scheme for Relaxed R1CS
- spartan
- This module implements
RelaxedR1CSSNARKTraitusing 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. - supernova
- SuperNova Description
- traits
- This module defines various traits required by the users of the library to implement.
Macros§
- impl_
traits - This implementation behaves in ways specific to the halo2curves suite of curves in:
- zip_
with - Macros to give syntactic sugar for zipWith pattern and variatns.
- zip_
with_ for_ each - Like
zip_withbut usefor_eachinstead ofmap.
Structs§
- Circuit
Shape - A type that holds parameters for the primary and secondary circuits of Nova and SuperNova
- CompressedSNARK
- A SNARK that proves the knowledge of a valid
RecursiveSNARK - Prover
Key - A type that holds the prover key for
CompressedSNARK - Public
Params - A type that holds public parameters of Nova
- RecursiveSNARK
- A SNARK that proves the correct execution of an incremental computation
- Resource
Buffer - A resource buffer for
RecursiveSNARKfor storing scratch values that are computed byprove_step, which allows the reuse of memory allocations and avoids unnecessary new allocations in the critical section. - Verifier
Key - A type that holds the verifier key for
CompressedSNARK
Functions§
- circuit_
digest - Compute the circuit digest of a StepCircuit.