protocol.verifier#
STARK proof verification.
Attributes#
Functions#
|
Verify a STARK proof. Returns True if valid. |
Module Contents#
- protocol.verifier.stark_verify(proof: protocol.proof.STARKProof, air_config: protocol.air_config.AirConfig, verkey: primitives.merkle_tree.MerkleRoot, global_challenge: primitives.field.InterleavedFF3 | None = None, publics: primitives.field.FFArray | None = None, proof_values: primitives.field.FFArray | None = None) bool[source]#
Verify a STARK proof. Returns True if valid.
- Args:
proof: Deserialized STARK proof air_config: AIR configuration with stark_info verkey: Merkle root of constant polynomial tree global_challenge: The 3-element transcript seed from proof[‘global_challenge’].
Always provided for per-AIR VADCOP proofs. None only for VadcopFinal (outer coordinator verifier).
publics: Public input values (if any) proof_values: Cross-AIR proof values (if any)
Verification phases: 1. Parse proof components (evals, air values, trace values) 2. Reconstruct Fiat-Shamir transcript to derive challenges 3. Run verification checks:
Q(xi) = C(xi): quotient matches constraint evaluation
FRI consistency: polynomial evaluations match commitments
Merkle proofs: all commitment openings are valid
Degree bound: final FRI polynomial has correct degree