zorch.logup_gkr.verifier¶
Dense LogUp-GKR verifier -- the dual of the prover chain.
A GkrLayerRound replays one layer's per-variable sumcheck (the agnostic
zorch.verify driver over zorch.sumcheck.verifier.SumcheckRound), checks the
LogUp oracle at the bound point via the shared logup_combine, then reduces the
claim across the child selector. The whole GKR verifier is
verify_rounds([GkrLayerRound() for _ in layer_proofs]), threading the same
(num_eval, den_eval, eval_point) carry the prover does and ANDing every layer's
check. The eq factor of the oracle is evaluated with the O(n) eval_eq, so
verification stays succinct (no 2**n weight vector).
It stops at the reduced point-claim. The final claim == leaf_mle(point) check
needs a PCS opening of the input trace and is the consumer's, keeping this block
PCS-agnostic; the roundtrip tests close it directly against the dense leaf MLE.
GkrLayerRound ¶
Bases: VerifierRound
Verify one GKR layer; the chain of these is the GKR verifier.
Source code in zorch/logup_gkr/verifier.py
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | |