Struct winter_prover::StarkProof
source · 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
sourceimpl StarkProof
impl StarkProof
sourcepub fn options(&self) -> &ProofOptions
pub fn options(&self) -> &ProofOptions
Returns STARK protocol parameters used to generate this proof.
sourcepub fn trace_layout(&self) -> &TraceLayout
pub fn trace_layout(&self) -> &TraceLayout
Returns a layout describing how columns of the execution trace described by this context are arranged into segments.
sourcepub fn trace_length(&self) -> usize
pub fn trace_length(&self) -> usize
Returns trace length for the computation described by this proof.
sourcepub fn get_trace_info(&self) -> TraceInfo
pub fn get_trace_info(&self) -> TraceInfo
Returns trace info for the computation described by this proof.
sourcepub fn lde_domain_size(&self) -> usize
pub fn lde_domain_size(&self) -> usize
Returns the size of the LDE domain for the computation described by this proof.
sourcepub fn security_level(&self, conjectured: bool) -> u32
pub fn security_level(&self, conjectured: bool) -> u32
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.
sourcepub fn from_bytes(source: &[u8]) -> Result<StarkProof, DeserializationError>
pub fn from_bytes(source: &[u8]) -> Result<StarkProof, DeserializationError>
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
sourceimpl Clone for StarkProof
impl Clone for StarkProof
sourcefn clone(&self) -> StarkProof
fn clone(&self) -> StarkProof
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more