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.