Expand description
This crate contains Winterfell STARK verifier.
This verifier can be used to verify STARK proofs generated by the Winterfell STARK prover.
§Usage
To verify a proof that a computation was executed correctly, you’ll need to do the following:
- Define an algebraic intermediate representation (AIR) for you computation. This can be done by implementing Air trait.
- Execute verify() function and supply the AIR of your computation together with the Proof and related public inputs as parameters.
§Performance
Proof verification is extremely fast and is nearly independent of the complexity of the computation being verified. In vast majority of cases proofs can be verified in 3 - 5 ms on a modern mid-range laptop CPU (using a single core).
There is one exception, however: if a computation requires a lot of sequence assertions
(see Assertion for more info), the verification time will grow linearly in the number of
asserted values. But for the impact to be noticeable, the number of asserted values would
need to be in tens of thousands. And even for hundreds of thousands of asserted values, the
verification time should not exceed 50 ms.
Re-exports§
Structs§
- AirContext
- STARK parameters and trace properties for a specific execution of a computation.
- Assertion
- An assertion made against an execution trace.
- Boundary
Constraint - The numerator portion of a boundary constraint.
- Boundary
Constraint Group - A group of boundary constraints all having the same divisor.
- Constraint
Composition Coefficients - Coefficients used in construction of constraint composition polynomial.
- Constraint
Divisor - The denominator portion of boundary and transition constraints.
- Deep
Composition Coefficients - Coefficients used in construction of DEEP composition polynomial.
- Evaluation
Frame - A set of execution trace rows required for evaluation of transition constraints.
- Proof
- A proof generated by Winterfell prover.
- Proof
Options - STARK protocol parameters.
- Slice
Reader - Implements ByteReader trait for a slice of bytes.
- Trace
Info - Information about a specific execution trace.
- Transition
Constraint Degree - Degree descriptor of a transition constraint.
Enums§
- Acceptable
Options - Deserialization
Error - Defines errors which can occur during deserialization.
- Field
Extension - Defines an extension field for the composition polynomial.
- Verifier
Error - Represents an error returned by the verifier during an execution of the protocol.
Traits§
- Air
- Describes algebraic intermediate representation of a computation.
- Byte
Reader - Defines how primitive values are to be read from
Self. - Byte
Writer - Defines how primitive values are to be written into
Self. - Deserializable
- Defines how to deserialize
Selffrom bytes. - Serializable
- Defines how to serialize
Selfinto bytes.
Functions§
- verify
- Verifies that the specified computation was executed correctly against the specified inputs.