Expand description
Multi-degree sumcheck: runs multiple degree groups in lockstep with shared verifier randomness, producing a common evaluation point.
§Protocol
Given G degree groups each with (degree_g, mles_g, comb_fn_g):
- Absorb metadata: num_vars, num_groups, per-group degrees
- For each round
i = 1..num_vars:- Each group computes its round polynomial
P_g(parallelizable) - Absorb all round messages in deterministic order
- Sample ONE shared challenge
r_i - All groups fix variable
iatr_i
- Each group computes its round polynomial
- Each group produces a subclaim at the shared point r = (r_1, …, r_n)
Structs§
- Multi
Degree SubClaims - Sub-claims: shared evaluation point + per-group expected evaluation.
- Multi
Degree Sumcheck - Multi
Degree Sumcheck Group - A single degree group for the multi-degree sumcheck: (degree, mles, comb_fn).
- Multi
Degree Sumcheck Proof - Proof for a multi-degree sumcheck.
- Round1
Output - Output of a
Round1FastPath::round_1_messagecall. Carries the asserted sum and the round-1 polynomial tail (evaluations at1, 2, ..., degree, omitting the constant term) that the framework wraps into a regularSumcheckProverMsgand absorbs into the transcript.
Traits§
- Round1
Fast Path - Opt-in hook on a
MultiDegreeSumcheckGroupthat bypassesSumcheckProverState::prove_roundin the first round and replaces the full-size MLE fold by a closed-form half-size construction. Groups that don’t supply it are run as usual.