Crate arrabbiata

Source

Modules§

challenge
cli
column
constraint
curve
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.
decider
The final decider, i.e. the SNARK used on the accumulation scheme.
interpreter
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.
logup
This file will implement a logup argument to allow users performing lookup in their circuits.
poseidon_3_60_0_5_5_fp
poseidon_3_60_0_5_5_fq
setup
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.
witness

Constants§

MAXIMUM_FIELD_SIZE_IN_BITS
The maximum number of bits the fields can be. It is critical as we have some assumptions for the gadgets describing the verifier circuit.
MAX_DEGREE
The maximum degree of the polynomial that can be represented by the polynomial-time function the library supports.
MIN_SRS_LOG2_SIZE
The minimum SRS size required to use Nova, in base 2.
MV_POLYNOMIAL_ARITY
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.
NUMBER_OF_COLUMNS
The maximum number of columns that can be used in the circuit.
NUMBER_OF_GADGETS
The number of gadgets supported by the program
NUMBER_OF_VALUES_TO_ABSORB_PUBLIC_IO
Define the number of values we must absorb when computating the hash to the public IO.
VERIFIER_CIRCUIT_SIZE
The number of rows the verifier circuit requires.