pub struct StarkProof {
    pub context: Context,
    pub commitments: Commitments,
    pub trace_queries: Vec<Queries, Global>,
    pub constraint_queries: Queries,
    pub ood_frame: OodFrame,
    pub fri_proof: FriProof,
    pub pow_nonce: u64,
}
Expand description

A proof generated by Winterfell prover.

A STARK proof contains information proving that a computation was executed correctly. A proof also contains basic metadata for the computation, but neither the definition of the computation itself, nor public inputs consumed by the computation are contained in a proof.

A proof can be serialized into a sequence of bytes using to_bytes() function, and deserialized from a sequence of bytes using from_bytes() function.

To estimate soundness of a proof (in bits), security_level() function can be used.

Fields

context: Context

Basic metadata about the execution of the computation described by this proof.

commitments: Commitments

Commitments made by the prover during the commit phase of the protocol.

trace_queries: Vec<Queries, Global>

Decommitments of extended execution trace values (for all trace segments) at position queried by the verifier.

constraint_queries: Queries

Decommitments of constraint composition polynomial evaluations at positions queried by the verifier.

ood_frame: OodFrame

Trace and constraint polynomial evaluations at an out-of-domain point.

fri_proof: FriProof

Low-degree proof for a DEEP composition polynomial.

pow_nonce: u64

Proof-of-work nonce for query seed grinding.

Implementations

Returns STARK protocol parameters used to generate this proof.

Returns a layout describing how columns of the execution trace described by this context are arranged into segments.

Returns trace length for the computation described by this proof.

Returns trace info for the computation described by this proof.

Returns the size of the LDE domain for the computation described by this proof.

Returns security level of this proof (in bits).

When conjectured is true, conjectured security level is returned; otherwise, provable security level is returned. Usually, the number of queries needed for provable security is 2x - 3x higher than the number of queries needed for conjectured security at the same security level.

Serializes this proof into a vector of bytes.

Returns a STARK proof read from the specified source.

Errors

Returns an error of a valid STARK proof could not be read from the specified source.

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.