Crate arrabbiata
source ·Modules
- This file defines a trait similar to kimchi::curve::KimchiCurve for Pallas and Vesta. It aims to define all the parameters that are needed by a curve to be used in Arrabbiata. For instance, the sponge parameters, the endomorphism coefficients, etc. The goal of this trait is to parametrize the whole library with the different curves.
- The final decider, i.e. the SNARK used on the accumulation scheme.
- This module contains the implementation of the IVC scheme in addition to running an arbitrary function that can use up to crate::NUMBER_OF_COLUMNS columns. At the moment, all constraints must be of maximum degree crate::MAX_DEGREE, but it might change in the future.
- This file will implement a logup argument to allow users performing lookup in their circuits.
- This module defines methods and structures for setting up the circuit, or in a more theoretical language, the “NP relation” that the circuit will be related to. Note that when mentioning “circuit” in this context, we are referring to a specific user application in addition to the circuit used to encode the verifier.
Constants
- The maximum number of bits the fields can be. It is critical as we have some assumptions for the gadgets describing the verifier circuit.
- The maximum degree of the polynomial that can be represented by the polynomial-time function the library supports.
- The minimum SRS size required to use Nova, in base 2.
- The arity of the multivariate polynomials describing the constraints. We consider, erroneously, that a public input can be considered as a column and fit an entire polynomial. This is subject to change, as most values considered as public inputs at the moment are fixed for the relation. We also suppose that the private inputs on the next row can be used, hence the multiplication by two.
- The maximum number of columns that can be used in the circuit.
- The number of gadgets supported by the program
- Define the number of values we must absorb when computating the hash to the public IO.
- The number of rows the verifier circuit requires.