Skip to main content

Crate bench_mini_verifier

Crate bench_mini_verifier 

Source
Expand description

Plonky3 STARK-verifier-shaped workload — Fiat-Shamir transcript + FRI-fold linear combinations + AIR constraint evaluation, all in Goldilocks field with WIDTH=8 Poseidon2 hash. Mirrors what p3_uni_stark::verify does in its hot loop without dragging in the full uni-stark machinery.

The Goldilocks + Poseidon2 implementation lives in bench-goldilocks-poseidon2 and is hand-written rather than pulled from p3-goldilocks / p3-poseidon2 because Plonky3’s crates transitively depend on tracing, which requires atomic-pointer-width support — incompatible with javm’s max-atomic-width: 0 target. Bit-exact with default_goldilocks_poseidon2_8 (same constants, same MDS, same S-box).

§Workload proportions per mini_verifier_bench() call

  • 16 transcript Poseidon2 permutations (Fiat-Shamir derives)
  • 32 FRI queries × 12 fold steps = 384 permutations + 384 linear combs
  • 32 constraint-eval chains × 50 mul-add ops = 1600 Goldilocks ops

Total ≈ 400 permutations + ~2400 Goldilocks field ops per call — representative of one moderate STARK verify.

Functions§

mini_verifier_bench
One STARK-verifier-shaped pass. Returns low 32 bits of the accumulator for cross-VM correctness checking.