Crate winter_prover[−][src]
Expand description
This crate contains Winterfell STARK prover.
This prover can be used to generate proofs of computational integrity using the STARK (Scalable Transparent ARguments of Knowledge) protocol.
When the crate is compiled with concurrent feature enabled, proof generation will be
performed in multiple threads (usually, as many threads as there are logical cores on the
machine). The number of threads can be configured via RAYON_NUM_THREADS environment
variable.
Usage
To generate a proof that a computation was executed correctly, you’ll need to do the following:
- Define an algebraic intermediate representation (AIR) for your computation. This can be done by implementing Air trait.
- Execute your computation and record its execution trace in ExecutionTrace struct.
- Execute prove() function and supply the AIR of your computation together with its execution trace as input parameters. The function will produce a instance of StarkProof as an output.
This StarkProof can be serialized and sent to a STARK verifier for verification. The size
of proof depends on the specifics of a given computation, but for most computations it should
be in the range between 15 KB (for very small computations) and 300 KB (for very large
computations).
Proof generation time is also highly dependent on the specifics of a given computation, but also depends on the capabilities of the machine used to generate the proofs (i.e. on number of CPU cores and memory bandwidth).
Re-exports
Modules
Components needed for parallel iterators.
Structs
STARK parameters and trace properties for a specific execution of a computation.
An assertion made against an execution trace.
The numerator portion of a boundary constraint.
A group of boundary constraints all having the same divisor.
Coefficients used in construction of constraint composition polynomial.
The denominator portion of boundary and transition constraints.
Coefficients used in construction of DEEP composition polynomial.
A set of execution trace rows required for evaluation of transition constraints.
An execution trace of a computation.
A set of consecutive rows of an execution trace.
STARK protocol parameters.
A proof generated by Winterfell prover.
Degree descriptor of a transition constraint.
A group of transition constraints all having the same degree.
Enums
Defines errors which can occur during deserialization.
Defines an extension field for the composition polynomial.
Defines a set of available hash function for STARK protocol.
Represents an error returned by the prover during an execution of the protocol.
Traits
Describes algebraic intermediate representation of a computation.
Defines how primitive values are to be read from Self.
Defines how primitive values are to be written into Self.
Defines how to deserialize Self from bytes.
Defines how to serialize Self into bytes.
Functions
Returns a STARK proof attesting to a correct execution of a computation.