pub struct StarkProof {
pub trace_commitment: Hash256,
pub constraint_commitment: Hash256,
pub query_indices: Vec<usize>,
pub fri_proof: FriProof,
pub config: StarkConfig,
pub trace_length: usize,
pub public_input_hash: Hash256,
pub constraints: Vec<StarkConstraint>,
pub public_input_authentication_path: Vec<Hash256>,
pub trace_query_proofs: Vec<TraceQueryProof>,
pub trace_rows: Vec<Vec<u64>>,
}Expand description
A complete STARK proof.
Fields§
§trace_commitment: Hash256Commitment to the execution trace.
constraint_commitment: Hash256Commitment to the constraint polynomial.
query_indices: Vec<usize>Query indices (deterministic, derived from commitments).
fri_proof: FriProofFRI proof of low degree.
config: StarkConfigConfiguration used.
trace_length: usizeNumber of rows in the trace (needed for verification).
public_input_hash: Hash256Hash of the public inputs (first row of trace) for verification.
constraints: Vec<StarkConstraint>Public transition constraints for the statement being proven.
public_input_authentication_path: Vec<Hash256>Merkle authentication path from the public input row to trace root.
trace_query_proofs: Vec<TraceQueryProof>Merkle-authenticated trace openings for every Fiat-Shamir query.
trace_rows: Vec<Vec<u64>>Complete committed trace rows.
This keeps the unaudited pedagogical verifier fail-closed: it can recompute the trace root, recompute the constraint commitment, and evaluate every transition instead of trusting sampled openings as a production STARK soundness argument.
Trait Implementations§
Source§impl Clone for StarkProof
impl Clone for StarkProof
Source§fn clone(&self) -> StarkProof
fn clone(&self) -> StarkProof
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for StarkProof
impl Debug for StarkProof
Source§impl<'de> Deserialize<'de> for StarkProof
impl<'de> Deserialize<'de> for StarkProof
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for StarkProof
Source§impl PartialEq for StarkProof
impl PartialEq for StarkProof
Source§fn eq(&self, other: &StarkProof) -> bool
fn eq(&self, other: &StarkProof) -> bool
self and other values to be equal, and is used by ==.