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 use for_each instead of map.

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