Multivariate Sumcheck Protocol - Part 3

Share on

This work systematically explains how various common constraints can be reduced to the Multivariate Sumcheck Protocol. The core idea is to use random linear combinations and logarithmic-derivative techniques to transform “pointwise verification” of universal assertions into a “global summation” form, which can then be efficiently verified by sumcheck. The main methods include: ZeroCheck: Using equality kernels to reduce the assertion “vanishes everywhere on the Boolean hypercube” into a single summation check. Rational Sumcheck: Introducing auxiliary functions and zero checks to convert rational summations into polynomial summations. Multiset Equality Check: Using logarithmic-derivative identities to reduce multiset equality to rational summations. Permutation Check: By attaching indices to elements, reduce the problem to multiset equality, and then to Rational Sumcheck. LogUp Lookup Argument: Using rational-function representations to verify lookup constraints, avoiding expensive product expressions.

These methods are widely applied in modern zero-knowledge proof systems such as Plonk, HyperPlonk, and Halo2, for range checks, wiring checks, permutation arguments, and lookup validations.

1. ZeroCheck

We want to prove that a polynomial/function /function \( f(\overrightarrow{x}) \) vanishes on the Boolean hypercube \( \{0, 1\}^n \), i.e.
\[    \forall \overrightarrow{x} \in \{0, 1\}^n, \quad f(\overrightarrow{x}) = 0.    \]

The idea is to reduce this "pointwise vanishing" universal assertion to a single "global summation equals zero" check, so that Multivariate Sumcheck can be used in an interactive/non-interactive protocol:

  • Use the equality kernel \( \mathit{eq}(\overrightarrow{x}, \overrightarrow{r}) \) (Lagrange basis / multilinear equality polynomial on the Boolean hypercube) to collapse the universal assertion into one global sum.
  • Evaluate at a random point (random masking) to obtain a single summation value and run sumcheck, avoiding enumeration of all \( 2^n \) points.
  • Completeness is trivial (true statements make the sum identically 0); soundness follows from the Schwarz–Zippel lemma (a nonzero polynomial vanishes on a random point only with negligible probability).

Intuitively, the point-values of \( f \) on the cube act as "weights," and \( \mathit{eq}(\overrightarrow{x}, \overrightarrow{r}) \) serves as an "interpolation kernel" for sampling at random \( \overrightarrow{r} \). If \( f \) is nonzero, then its multilinear extension \( \tilde{f} \) is a nonzero polynomial, which with overwhelming probability does not vanish at a random \( \overrightarrow{r} \).

To verify that \( f(\overrightarrow{x}) = 0 \) holds for all \( \overrightarrow{x} \in \{0,1\}^n \):

  1. Sample \( r \leftarrow \mathbb{F}_m \), and construct \( \hat{f}(\overrightarrow{x}) := f(\overrightarrow{x}) \cdot \mathit{eq}(\overrightarrow{x}, \overrightarrow{r}) \), where \( \mathit{eq}(\overrightarrow{x}, \overrightarrow{r}) \) is the Lagrange basis polynomial that equals 1 iff \( \overrightarrow{x} = \overrightarrow{r} \), otherwise 0.
  2. Use multivariate sumcheck to verify the equality:            

\[            \sum_{\overrightarrow{x} \in \{0,1\}^n} \hat{f}(\overrightarrow{x}) = 0.            \]

Batch proof: verifying verifying \( f(\overrightarrow{x}) = 0 \land g(\overrightarrow{x}) = 0 \)

  1. Randomly choose \( \alpha \leftarrow \mathbb{F} \).
  2. Apply ZeroCheck to \( f(\overrightarrow{x}) + \alpha g(\overrightarrow{x}) \).

1.1 Reduction to Multivariate Sumcheck

  1. Random masking: Choose \( \overrightarrow{r} \leftarrow \mathbb{F}^n \), define \( \hat{f}(\overrightarrow{x}) = f(\overrightarrow{x}) \cdot \mathit{eq}(\overrightarrow{x}, \overrightarrow{r}) \).
  2. Single summation assertion: Reduce the universal check to        
    \[            S := \sum_{\overrightarrow{x} \in \{0,1\}^n} \hat{f}(\overrightarrow{x}) = 0.            \]
  3. Run sumcheck: The prover and verifier run the multivariate sumcheck protocol on \( S \) (for \( n \) rounds). Each round reduces dimension by one; finally, only a few low-degree consistency checks are needed at random points (with commitment/polynomial opening primitives).

Complexity: If \( f \) is multilinear, then \( \hat{f} \) has degree at most 2 per variable (or remains low-degree). Sumcheck requires \( O(n) \) rounds, each handling \( O(1) \)-degree polynomials, making the process efficient overall.

1.2 Typical Applications

  • Vanishing checks: Verify that circuit/constraint polynomials vanish everywhere on the Boolean domain (e.g., gate constraints, selector-gated equalities).
  • Subroutine for rational checks: In rational-function relations, ZeroCheck is used to ensure denominators are safe (if denominator = 0, numerator must also vanish).
  • Batch constraints: Many constraints can be combined via random linear combination into a single sumcheck, with essentially the same cost as one constraint.
  • Consistency/boundary conditions: For example, enforcing constraints at cube boundaries (\( x_i \in \{0,1\} \)) can also be encoded via ZeroCheck.

2. Rational Sumcheck

In many proof systems, we need to verify global summation relations involving rational functions, e.g.,

\[    \begin{align*}    \sum_{\overrightarrow{x} \in \{0,1\}^n} \frac{p(\overrightarrow{x})}{q(\overrightarrow{x})} = v.    \end{align*}    \]

Such constraints arise in division gates, lookup arguments, and compressed polynomials. Since sumcheck natively works only on polynomials, we need a reduction strategy to handle rational functions. The idea is to reduce “rational summation” into a combination of polynomial summation and zero checks:

  • Represent the denominator's inverse as an auxiliary function \( f(\overrightarrow{x}) \), and ensure it is correct.
  • Run Sumcheck on \( p(\overrightarrow{x}) \cdot f(\overrightarrow{x}) \), verifying the sum equals \( v \).
  • Use ZeroCheck to verify consistency: \( f(\overrightarrow{x}) \cdot q(\overrightarrow{x}) - 1 \equiv 0 \), preventing forgery.

Thus, rational summations are safely reduced to "pure polynomial summation + vanishing check."

Target assertion:

\[    \begin{align*}    \sum_{\overrightarrow{x} \in \{0,1\}^n} \frac{p(\overrightarrow{x})}{q(\overrightarrow{x})} = v.    \end{align*}    \]

Reduction Steps:

  1. Introduce auxiliary function: Prover claims there exists \( f(\overrightarrow{x}) \) such that
    \[            f(\overrightarrow{x}) = \frac{1}{q(\overrightarrow{x})}, \quad \forall \overrightarrow{x} \in \{0, 1\}^n.            \]
  2. Core summation: Check
    \[            \sum_{\overrightarrow{x} \in \{0, 1\}^n} p(\overrightarrow{x}) \cdot f(\overrightarrow{x}) = v,            \]
  3. Consistency check: Verify with ZeroCheck:
    \[            f(\overrightarrow{x}) \cdot q(\overrightarrow{x}) - 1 \equiv 0, \quad \forall \overrightarrow{x} \in \{0, 1\}^n.            \]

If true, then \( f(\overrightarrow{x}) \) must indeed be the inverse of \( q(\overrightarrow{x}) \).

2.1 Reduction Method

  • Decompose the rational check into two parts:
    1. Sumcheck part: Verify the numerator times the denominator inverse.
    2. ZeroCheck part: Ensure correctness of the inverse.
  • For multiple fractions, batch them together via random linear combination.

2.2 Typical Applications

  • Division gates: Express constraints involving division by a selector polynomial.
  • Compression: Random linear combinations often introduce denominators; Rational Sumcheck handles these.
  • Lookup arguments: Lookup constraints naturally lead to rational expressions, reducible via this method.
  • Permutation / wiring checks: Some permutation constraints also reduce to rational forms.

3 Multiset Equality Check via Rational Sumcheck

We want to verify whether two function sets take equal values over the Boolean hypercube \( \{0, 1\}^n \): \(f_0(\overrightarrow{x}), f_1(\overrightarrow{x}), \ldots, f_k(\overrightarrow{x}) = g_0(\overrightarrow{x}), g_1(\overrightarrow{x}), \ldots, g_k(\overrightarrow{x})\)

Such constraints are common in proof systems, e.g., Plonk wiring check. The classical approach is to use ProdCheck (product check) to verify that the generated polynomials on both sides are the same. However, ProdCheck requires additional helper polynomials and interaction in distributed settings, which is inefficient.

Solution idea. By the logarithmic derivative identity:
\[    \prod_i(a_i + X) = \prod_i(b_i + X) \quad \Leftrightarrow \quad \sum_i \frac{1}{a_i + X} = \sum_i \frac{1}{b_i + X},    \]

product equality can be reduced to a rational function summation equality. This allows one to use the Rational Sumcheck Protocol directly, without introducing extra helper polynomials.

Key techniques

  1. Introduce a random weight \( \gamma \) to compress the multivariate sets into single polynomials \( F(\overrightarrow{x}), G(\overrightarrow{x}) \).
  2. Sample another random challenge \( \beta \) to transform the product equality into a fractional summation.
  3. Finally, derive a relation of the form \( \sum p(\overrightarrow{x})/q(\overrightarrow{x}) = 0 \), which can be directly verified via Rational Sumcheck.

Principle: Verify whether \( f_0(\overrightarrow{x}),\ldots,f_k(\overrightarrow{x}) = g_0(\overrightarrow{x}),\ldots,g_k(\overrightarrow{x}) \) for \( \overrightarrow{x} \in \{0,1\}^n \). Choose random \( \beta, \gamma \), and construct linear combinations:

\[    F(\overrightarrow{x}) = \sum_j \gamma^j \cdot f_j(\overrightarrow{x}), \quad G(\overrightarrow{x}) = \sum_j \gamma^j \cdot g_j(\overrightarrow{x}).    \]

Since ProdCheck is not well-suited for distributed scenarios (where multiple parties would need to interact to generate helper polynomials), we transform it into rational sumcheck, based on the following theorem:

Theorem (Logarithmic Derivative): Let two sets \( a_i, b_i \) both have size \( n \). Then the following equivalence holds:
\[    \prod_i(a_i + X) = \prod_i(b_i + X) \iff \sum_i \frac{1}{a_i + X} = \sum_i \frac{1}{b_i + X}.    \]

By setting \( X = \beta \) as a random challenge, define:
\[    v_1 = \sum_{\overrightarrow{x} \in \{0,1\}^n} \frac{1}{\beta + F(\overrightarrow{x})}, \quad v_2 = \sum_{\overrightarrow{x} \in \{0,1\}^n} \frac{1}{\beta + G(\overrightarrow{x})}.    \]

We require \( v_1 = v_2 \), i.e.,
\[    \sum_{\overrightarrow{x} \in \{0,1\}^n} \left( \frac{1}{\beta + F(\overrightarrow{x})} - \frac{1}{\beta + G(\overrightarrow{x})} \right) = 0.    \]

After combining terms, this becomes:

\[    \sum_{\overrightarrow{x} \in \{0,1\}^n} \frac{F(\overrightarrow{x}) - G(\overrightarrow{x})}{(\beta + F(\overrightarrow{x})) \cdot (\beta + G(\overrightarrow{x}))} = 0.    \]

Let \( p(\overrightarrow{x}) = F(\overrightarrow{x}) - G(\overrightarrow{x}) \), \( q(\overrightarrow{x}) = (\beta + F(\overrightarrow{x})) \cdot (\beta + G(\overrightarrow{x})) \). Then Rational Sumcheck can be used to verify:
\[    \begin{align*}    \sum_{\overrightarrow{x} \in \{0,1\}^n} \frac{p(\overrightarrow{x})}{q(\overrightarrow{x})} = 0.    \end{align*}    \]

3.1 Reduction Method

  • Use random linear combination () to compress set polynomials into a single function.
  • Apply the logarithmic derivative theorem and a random challenge () to convert “product equality” into “fractional summation equality.”
  • Invoke Rational Sumcheck, avoiding the helper polynomial overhead of ProdCheck.

3.2 Typical Applications

  • Plonk wiring check: verifying multiset consistency of wiring constraints.
  • A sub-step of permutation check: proving one set of values is a permutation of another.
  • Lookup argument internal checks: verifying consistency between query sets and lookup tables.
  • General-purpose multiset equality verification: whenever multiset consistency needs to be proven.

4. Permutation Check via Multiset Equality

The core goal of Permutation Check via Multiset Equality is to verify that two lists \( f(\overrightarrow{x}) \) and \( g(\overrightarrow{x}) \) are permutations of each other (same elements, possibly different order).

Direct comparison is inefficient, so this is achieved through Multiset Equality. The idea is to attach an index tag to each element so that elements from different positions can be distinguished.

Construct two multisets: one consisting of \( f(\overrightarrow{x}) \) paired with its index under the identity permutation \( s_{id}(\overrightarrow{x}) \); the other consisting of \( g(\overrightarrow{x}) \) paired with its index under some permutation \( \sigma \), denoted \( s_{\sigma}(\overrightarrow{x}) \). If these two multisets are equal, then \( g \) is indeed a permutation of \( f \).

Formally, with input space \( \{0,1\}^n \):
\[    F = \{ (s_{id}(\overrightarrow{x}), f(\overrightarrow{x})) \mid \overrightarrow{x} \in \{0,1\}^n \},    \]
\[    G = \{ (s_{\sigma}(\overrightarrow{x}), g(\overrightarrow{x})) \mid \overrightarrow{x} \in \{0,1\}^{n} \}.    \]

Here, \( s_{id}(\overrightarrow{x}) \) is the index under the identity permutation, and \( s_{\sigma}(\overrightarrow{x}) \) is the index under permutation \(\sigma\).

Permutation Check condition:
\[    F = G.    \]

4.1 Reduction Method

To efficiently check multiset equality, use the Random Linear Combination (RLC) technique: sample a random \(\beta \in \mathbb{F}\), and define
\[    p(\overrightarrow{x}) = s_{id}(\overrightarrow{x}) + \beta \cdot f(\overrightarrow{x}), \quad q(\overrightarrow{x}) = s_{\sigma}(\overrightarrow{x}) + \beta \cdot g(\overrightarrow{x}).    \]

Check whether \( \{p(\overrightarrow{x})\} = \{q(\overrightarrow{x})\} \). Thanks to the randomness of \(\beta\), the probability of equality holding without \( F = G \) is negligible.

4.2 Typical Applications

Permutation Check via Multiset Equality is widely used in zero-knowledge proofs and polynomial interactive protocols, including:

  • Permutation Argument: proving two polynomials’ evaluations are permutations of each other (e.g., PLONK permutation check).
  • Consistency verification: ensuring that data across tables/columns are re-orderings of the same set.
  • Cross-checks: ensuring different parts of the witness satisfy permutation constraints, e.g., cross-column permutation checks.

5 LogUp Lookup Argument (Logarithmic-Derivative Based)

The goal of the LogUp Lookup Argument is to verify subset inclusion \( S \subseteq T \), i.e., that all queried elements \( S \) indeed come from the lookup table \( T \).

Unlike direct comparison via polynomial commitments, LogUp relies on a <strong>rational function identity

\[    \sum_{i \in [P]} \frac{1}{x + s_i} = \sum_{j \in [N]} \frac{m_j}{x + r_j},    \]

where \( m_j \) is a nonnegative integer indicating the multiplicity of element \( T_j \). This amounts to comparing the logarithmic derivatives of two polynomials, avoiding large product constraints.

amounts to comparing the logarithmic derivatives of two polynomials, avoiding large product constraints.

Formally, for query set \( S = (S_1, \ldots, S_p) \in \mathbb{F}^P \) and table \( T = (T_1, \ldots, T_N) \in \mathbb{F}^N \):

If \( S \subseteq T \), then there exists \( \overrightarrow{m} \in \mathbb{F}^N \) such that:
\[    \sum_{i \in [P]} \frac{1}{x + S_i} = \sum_{j \in [N]} m_j \cdot \frac{1}{x + T_j}    \]

To handle multi-dimensional lookups, introduce a random linear combination parameter \( \alpha \in \mathbb{F} \) to merge multiple lookup relations into one:
\[    X + \alpha \cdot Y \subseteq T_x + \alpha \cdot T_y.    \]

Define:
\[    A_i := \prod_{j=1}^t \frac{1}{\beta + s_j(i)}, \quad B_j := \prod_{j=1}^t \frac{1}{\beta + T_j(i)},    \]

with \( \beta \in \mathbb{F} \) a random challenge.

The final core constraint to verify is:
\[    \sum_{i \in [P]} A_i = \sum_{j \in [N]} m_j \cdot B_j. \tag{1}    \]

Additionally, correctness of the denominators must be ensured:
\[    A(i) \cdot (SC(i) + \beta) = 1, \tag{2}    \]    \[    B(j) \cdot (CT(j) + \beta) = 1. \tag{3}    \]

Here’s the English translation of your text, keeping the Markdown format intact:

5.1 Reduction Method

  • Merge constraints (1), (2), and (3) into a single constraint using a random linear combination:
    \[            (1) + \alpha \cdot (2) + \alpha^2 \cdot (3).            \]
  • Then reduce it to the sumcheck protocol: verify that a polynomial identity holds over the Boolean hypercube \( \{0, 1\}^n \).
  • In this way, the entire lookup verification problem is efficiently reduced to an interactive, polynomial-level sumcheck.

5.2 Typical Applications

The LogUp Lookup Argument has become the mainstream technique for lookup constraints in modern zero-knowledge proof systems. Typical applications include:

  1. General lookup constraints: efficiently verify whether certain witness columns come from a given table (e.g., range check, boolean check, custom gates).
  2. Cross-column lookup: support joint lookups across multiple columns using random linear combinations.
  3. Circuit optimization: reduce the number of multiplication gates in circuits, since lookups can replace complex constraint expressions.
  4. Applications in modern protocols: used in Halo 2 and Plonkish lookup implementations; efficient range checks and constraint expressions in Starkware and zkVM frameworks.

6. Comparison

Similar to HyperPlonk, HyperPianist reduces the following relations to the Multivariate Sumcheck Protocol. However, to achieve non-interactive distributed proofs, it adopts a different reduction strategy to convert them into the Sumcheck Protocol.

Conclusion

The Multivariate Sumcheck Protocol serves as a unified reduction framework that can accommodate various relation checks, including zero checks, rational constraints, set consistency, permutation, and lookup. Its advantages are:

  • Expressiveness: covers a wide range of scenarios from pointwise constraints to complex rational relations.
  • Efficiency: avoids exponential pointwise enumeration; verification complexity scales linearly with polynomial degree and number of variables.
  • Modularity: different constraints can all be transformed into the standard sumcheck form, enabling composition and extension.
  • Practicality: has already become a core component in Plonkish systems, STARK systems, and zkVM frameworks.

Overall, the Multivariate Sumcheck Protocol has become the most versatile reduction tool in modern zero-knowledge proofs, providing a solid foundation for designing efficient and secure proof systems.

Subscribe to the ZKM Blog to stay updated with the latest research by ZKM.

More articles
Hello World - November Newsletter
zkGM and welcome to our latest edition of the ZKM Newsletter, where we bring you all the key updates, highlights, and behind-the-scenes insights from our activities from the past month.‍
Lookup Argument in Zero-Knowledge Proofs
Lookup Argument is an important cryptographic primitive used to prove that elements of one set (or structured objects like polynomials) belong to another precomputed set or structure. It plays a crucial role in zero-knowledge proof systems by enforcing data consistency and constraints without revealing sensitive information.In the context of zkVM applications, the Lookup Argument is used for efficiently verifying the inclusion relationship between inputs and precomputed tables. This is particularly important in the following scenarios:
Multivariate Sumcheck Protocol - Part 3

This work systematically explains how various common constraints can be reduced to the Multivariate Sumcheck Protocol. The core idea is to use random linear combinations and logarithmic-derivative techniques to transform “pointwise verification” of universal assertions into a “global summation” form, which can then be efficiently verified by sumcheck. The main methods include: ZeroCheck: Using equality kernels to reduce the assertion “vanishes everywhere on the Boolean hypercube” into a single summation check. Rational Sumcheck: Introducing auxiliary functions and zero checks to convert rational summations into polynomial summations. Multiset Equality Check: Using logarithmic-derivative identities to reduce multiset equality to rational summations. Permutation Check: By attaching indices to elements, reduce the problem to multiset equality, and then to Rational Sumcheck. LogUp Lookup Argument: Using rational-function representations to verify lookup constraints, avoiding expensive product expressions.

These methods are widely applied in modern zero-knowledge proof systems such as Plonk, HyperPlonk, and Halo2, for range checks, wiring checks, permutation arguments, and lookup validations.

1. ZeroCheck

We want to prove that a polynomial/function /function \( f(\overrightarrow{x}) \) vanishes on the Boolean hypercube \( \{0, 1\}^n \), i.e.
\[    \forall \overrightarrow{x} \in \{0, 1\}^n, \quad f(\overrightarrow{x}) = 0.    \]

The idea is to reduce this "pointwise vanishing" universal assertion to a single "global summation equals zero" check, so that Multivariate Sumcheck can be used in an interactive/non-interactive protocol:

  • Use the equality kernel \( \mathit{eq}(\overrightarrow{x}, \overrightarrow{r}) \) (Lagrange basis / multilinear equality polynomial on the Boolean hypercube) to collapse the universal assertion into one global sum.
  • Evaluate at a random point (random masking) to obtain a single summation value and run sumcheck, avoiding enumeration of all \( 2^n \) points.
  • Completeness is trivial (true statements make the sum identically 0); soundness follows from the Schwarz–Zippel lemma (a nonzero polynomial vanishes on a random point only with negligible probability).

Intuitively, the point-values of \( f \) on the cube act as "weights," and \( \mathit{eq}(\overrightarrow{x}, \overrightarrow{r}) \) serves as an "interpolation kernel" for sampling at random \( \overrightarrow{r} \). If \( f \) is nonzero, then its multilinear extension \( \tilde{f} \) is a nonzero polynomial, which with overwhelming probability does not vanish at a random \( \overrightarrow{r} \).

To verify that \( f(\overrightarrow{x}) = 0 \) holds for all \( \overrightarrow{x} \in \{0,1\}^n \):

  1. Sample \( r \leftarrow \mathbb{F}_m \), and construct \( \hat{f}(\overrightarrow{x}) := f(\overrightarrow{x}) \cdot \mathit{eq}(\overrightarrow{x}, \overrightarrow{r}) \), where \( \mathit{eq}(\overrightarrow{x}, \overrightarrow{r}) \) is the Lagrange basis polynomial that equals 1 iff \( \overrightarrow{x} = \overrightarrow{r} \), otherwise 0.
  2. Use multivariate sumcheck to verify the equality:            

\[            \sum_{\overrightarrow{x} \in \{0,1\}^n} \hat{f}(\overrightarrow{x}) = 0.            \]

Batch proof: verifying verifying \( f(\overrightarrow{x}) = 0 \land g(\overrightarrow{x}) = 0 \)

  1. Randomly choose \( \alpha \leftarrow \mathbb{F} \).
  2. Apply ZeroCheck to \( f(\overrightarrow{x}) + \alpha g(\overrightarrow{x}) \).

1.1 Reduction to Multivariate Sumcheck

  1. Random masking: Choose \( \overrightarrow{r} \leftarrow \mathbb{F}^n \), define \( \hat{f}(\overrightarrow{x}) = f(\overrightarrow{x}) \cdot \mathit{eq}(\overrightarrow{x}, \overrightarrow{r}) \).
  2. Single summation assertion: Reduce the universal check to        
    \[            S := \sum_{\overrightarrow{x} \in \{0,1\}^n} \hat{f}(\overrightarrow{x}) = 0.            \]
  3. Run sumcheck: The prover and verifier run the multivariate sumcheck protocol on \( S \) (for \( n \) rounds). Each round reduces dimension by one; finally, only a few low-degree consistency checks are needed at random points (with commitment/polynomial opening primitives).

Complexity: If \( f \) is multilinear, then \( \hat{f} \) has degree at most 2 per variable (or remains low-degree). Sumcheck requires \( O(n) \) rounds, each handling \( O(1) \)-degree polynomials, making the process efficient overall.

1.2 Typical Applications

  • Vanishing checks: Verify that circuit/constraint polynomials vanish everywhere on the Boolean domain (e.g., gate constraints, selector-gated equalities).
  • Subroutine for rational checks: In rational-function relations, ZeroCheck is used to ensure denominators are safe (if denominator = 0, numerator must also vanish).
  • Batch constraints: Many constraints can be combined via random linear combination into a single sumcheck, with essentially the same cost as one constraint.
  • Consistency/boundary conditions: For example, enforcing constraints at cube boundaries (\( x_i \in \{0,1\} \)) can also be encoded via ZeroCheck.

2. Rational Sumcheck

In many proof systems, we need to verify global summation relations involving rational functions, e.g.,

\[    \begin{align*}    \sum_{\overrightarrow{x} \in \{0,1\}^n} \frac{p(\overrightarrow{x})}{q(\overrightarrow{x})} = v.    \end{align*}    \]

Such constraints arise in division gates, lookup arguments, and compressed polynomials. Since sumcheck natively works only on polynomials, we need a reduction strategy to handle rational functions. The idea is to reduce “rational summation” into a combination of polynomial summation and zero checks:

  • Represent the denominator's inverse as an auxiliary function \( f(\overrightarrow{x}) \), and ensure it is correct.
  • Run Sumcheck on \( p(\overrightarrow{x}) \cdot f(\overrightarrow{x}) \), verifying the sum equals \( v \).
  • Use ZeroCheck to verify consistency: \( f(\overrightarrow{x}) \cdot q(\overrightarrow{x}) - 1 \equiv 0 \), preventing forgery.

Thus, rational summations are safely reduced to "pure polynomial summation + vanishing check."

Target assertion:

\[    \begin{align*}    \sum_{\overrightarrow{x} \in \{0,1\}^n} \frac{p(\overrightarrow{x})}{q(\overrightarrow{x})} = v.    \end{align*}    \]

Reduction Steps:

  1. Introduce auxiliary function: Prover claims there exists \( f(\overrightarrow{x}) \) such that
    \[            f(\overrightarrow{x}) = \frac{1}{q(\overrightarrow{x})}, \quad \forall \overrightarrow{x} \in \{0, 1\}^n.            \]
  2. Core summation: Check
    \[            \sum_{\overrightarrow{x} \in \{0, 1\}^n} p(\overrightarrow{x}) \cdot f(\overrightarrow{x}) = v,            \]
  3. Consistency check: Verify with ZeroCheck:
    \[            f(\overrightarrow{x}) \cdot q(\overrightarrow{x}) - 1 \equiv 0, \quad \forall \overrightarrow{x} \in \{0, 1\}^n.            \]

If true, then \( f(\overrightarrow{x}) \) must indeed be the inverse of \( q(\overrightarrow{x}) \).

2.1 Reduction Method

  • Decompose the rational check into two parts:
    1. Sumcheck part: Verify the numerator times the denominator inverse.
    2. ZeroCheck part: Ensure correctness of the inverse.
  • For multiple fractions, batch them together via random linear combination.

2.2 Typical Applications

  • Division gates: Express constraints involving division by a selector polynomial.
  • Compression: Random linear combinations often introduce denominators; Rational Sumcheck handles these.
  • Lookup arguments: Lookup constraints naturally lead to rational expressions, reducible via this method.
  • Permutation / wiring checks: Some permutation constraints also reduce to rational forms.

3 Multiset Equality Check via Rational Sumcheck

We want to verify whether two function sets take equal values over the Boolean hypercube \( \{0, 1\}^n \): \(f_0(\overrightarrow{x}), f_1(\overrightarrow{x}), \ldots, f_k(\overrightarrow{x}) = g_0(\overrightarrow{x}), g_1(\overrightarrow{x}), \ldots, g_k(\overrightarrow{x})\)

Such constraints are common in proof systems, e.g., Plonk wiring check. The classical approach is to use ProdCheck (product check) to verify that the generated polynomials on both sides are the same. However, ProdCheck requires additional helper polynomials and interaction in distributed settings, which is inefficient.

Solution idea. By the logarithmic derivative identity:
\[    \prod_i(a_i + X) = \prod_i(b_i + X) \quad \Leftrightarrow \quad \sum_i \frac{1}{a_i + X} = \sum_i \frac{1}{b_i + X},    \]

product equality can be reduced to a rational function summation equality. This allows one to use the Rational Sumcheck Protocol directly, without introducing extra helper polynomials.

Key techniques

  1. Introduce a random weight \( \gamma \) to compress the multivariate sets into single polynomials \( F(\overrightarrow{x}), G(\overrightarrow{x}) \).
  2. Sample another random challenge \( \beta \) to transform the product equality into a fractional summation.
  3. Finally, derive a relation of the form \( \sum p(\overrightarrow{x})/q(\overrightarrow{x}) = 0 \), which can be directly verified via Rational Sumcheck.

Principle: Verify whether \( f_0(\overrightarrow{x}),\ldots,f_k(\overrightarrow{x}) = g_0(\overrightarrow{x}),\ldots,g_k(\overrightarrow{x}) \) for \( \overrightarrow{x} \in \{0,1\}^n \). Choose random \( \beta, \gamma \), and construct linear combinations:

\[    F(\overrightarrow{x}) = \sum_j \gamma^j \cdot f_j(\overrightarrow{x}), \quad G(\overrightarrow{x}) = \sum_j \gamma^j \cdot g_j(\overrightarrow{x}).    \]

Since ProdCheck is not well-suited for distributed scenarios (where multiple parties would need to interact to generate helper polynomials), we transform it into rational sumcheck, based on the following theorem:

Theorem (Logarithmic Derivative): Let two sets \( a_i, b_i \) both have size \( n \). Then the following equivalence holds:
\[    \prod_i(a_i + X) = \prod_i(b_i + X) \iff \sum_i \frac{1}{a_i + X} = \sum_i \frac{1}{b_i + X}.    \]

By setting \( X = \beta \) as a random challenge, define:
\[    v_1 = \sum_{\overrightarrow{x} \in \{0,1\}^n} \frac{1}{\beta + F(\overrightarrow{x})}, \quad v_2 = \sum_{\overrightarrow{x} \in \{0,1\}^n} \frac{1}{\beta + G(\overrightarrow{x})}.    \]

We require \( v_1 = v_2 \), i.e.,
\[    \sum_{\overrightarrow{x} \in \{0,1\}^n} \left( \frac{1}{\beta + F(\overrightarrow{x})} - \frac{1}{\beta + G(\overrightarrow{x})} \right) = 0.    \]

After combining terms, this becomes:

\[    \sum_{\overrightarrow{x} \in \{0,1\}^n} \frac{F(\overrightarrow{x}) - G(\overrightarrow{x})}{(\beta + F(\overrightarrow{x})) \cdot (\beta + G(\overrightarrow{x}))} = 0.    \]

Let \( p(\overrightarrow{x}) = F(\overrightarrow{x}) - G(\overrightarrow{x}) \), \( q(\overrightarrow{x}) = (\beta + F(\overrightarrow{x})) \cdot (\beta + G(\overrightarrow{x})) \). Then Rational Sumcheck can be used to verify:
\[    \begin{align*}    \sum_{\overrightarrow{x} \in \{0,1\}^n} \frac{p(\overrightarrow{x})}{q(\overrightarrow{x})} = 0.    \end{align*}    \]

3.1 Reduction Method

  • Use random linear combination () to compress set polynomials into a single function.
  • Apply the logarithmic derivative theorem and a random challenge () to convert “product equality” into “fractional summation equality.”
  • Invoke Rational Sumcheck, avoiding the helper polynomial overhead of ProdCheck.

3.2 Typical Applications

  • Plonk wiring check: verifying multiset consistency of wiring constraints.
  • A sub-step of permutation check: proving one set of values is a permutation of another.
  • Lookup argument internal checks: verifying consistency between query sets and lookup tables.
  • General-purpose multiset equality verification: whenever multiset consistency needs to be proven.

4. Permutation Check via Multiset Equality

The core goal of Permutation Check via Multiset Equality is to verify that two lists \( f(\overrightarrow{x}) \) and \( g(\overrightarrow{x}) \) are permutations of each other (same elements, possibly different order).

Direct comparison is inefficient, so this is achieved through Multiset Equality. The idea is to attach an index tag to each element so that elements from different positions can be distinguished.

Construct two multisets: one consisting of \( f(\overrightarrow{x}) \) paired with its index under the identity permutation \( s_{id}(\overrightarrow{x}) \); the other consisting of \( g(\overrightarrow{x}) \) paired with its index under some permutation \( \sigma \), denoted \( s_{\sigma}(\overrightarrow{x}) \). If these two multisets are equal, then \( g \) is indeed a permutation of \( f \).

Formally, with input space \( \{0,1\}^n \):
\[    F = \{ (s_{id}(\overrightarrow{x}), f(\overrightarrow{x})) \mid \overrightarrow{x} \in \{0,1\}^n \},    \]
\[    G = \{ (s_{\sigma}(\overrightarrow{x}), g(\overrightarrow{x})) \mid \overrightarrow{x} \in \{0,1\}^{n} \}.    \]

Here, \( s_{id}(\overrightarrow{x}) \) is the index under the identity permutation, and \( s_{\sigma}(\overrightarrow{x}) \) is the index under permutation \(\sigma\).

Permutation Check condition:
\[    F = G.    \]

4.1 Reduction Method

To efficiently check multiset equality, use the Random Linear Combination (RLC) technique: sample a random \(\beta \in \mathbb{F}\), and define
\[    p(\overrightarrow{x}) = s_{id}(\overrightarrow{x}) + \beta \cdot f(\overrightarrow{x}), \quad q(\overrightarrow{x}) = s_{\sigma}(\overrightarrow{x}) + \beta \cdot g(\overrightarrow{x}).    \]

Check whether \( \{p(\overrightarrow{x})\} = \{q(\overrightarrow{x})\} \). Thanks to the randomness of \(\beta\), the probability of equality holding without \( F = G \) is negligible.

4.2 Typical Applications

Permutation Check via Multiset Equality is widely used in zero-knowledge proofs and polynomial interactive protocols, including:

  • Permutation Argument: proving two polynomials’ evaluations are permutations of each other (e.g., PLONK permutation check).
  • Consistency verification: ensuring that data across tables/columns are re-orderings of the same set.
  • Cross-checks: ensuring different parts of the witness satisfy permutation constraints, e.g., cross-column permutation checks.

5 LogUp Lookup Argument (Logarithmic-Derivative Based)

The goal of the LogUp Lookup Argument is to verify subset inclusion \( S \subseteq T \), i.e., that all queried elements \( S \) indeed come from the lookup table \( T \).

Unlike direct comparison via polynomial commitments, LogUp relies on a <strong>rational function identity

\[    \sum_{i \in [P]} \frac{1}{x + s_i} = \sum_{j \in [N]} \frac{m_j}{x + r_j},    \]

where \( m_j \) is a nonnegative integer indicating the multiplicity of element \( T_j \). This amounts to comparing the logarithmic derivatives of two polynomials, avoiding large product constraints.

amounts to comparing the logarithmic derivatives of two polynomials, avoiding large product constraints.

Formally, for query set \( S = (S_1, \ldots, S_p) \in \mathbb{F}^P \) and table \( T = (T_1, \ldots, T_N) \in \mathbb{F}^N \):

If \( S \subseteq T \), then there exists \( \overrightarrow{m} \in \mathbb{F}^N \) such that:
\[    \sum_{i \in [P]} \frac{1}{x + S_i} = \sum_{j \in [N]} m_j \cdot \frac{1}{x + T_j}    \]

To handle multi-dimensional lookups, introduce a random linear combination parameter \( \alpha \in \mathbb{F} \) to merge multiple lookup relations into one:
\[    X + \alpha \cdot Y \subseteq T_x + \alpha \cdot T_y.    \]

Define:
\[    A_i := \prod_{j=1}^t \frac{1}{\beta + s_j(i)}, \quad B_j := \prod_{j=1}^t \frac{1}{\beta + T_j(i)},    \]

with \( \beta \in \mathbb{F} \) a random challenge.

The final core constraint to verify is:
\[    \sum_{i \in [P]} A_i = \sum_{j \in [N]} m_j \cdot B_j. \tag{1}    \]

Additionally, correctness of the denominators must be ensured:
\[    A(i) \cdot (SC(i) + \beta) = 1, \tag{2}    \]    \[    B(j) \cdot (CT(j) + \beta) = 1. \tag{3}    \]

Here’s the English translation of your text, keeping the Markdown format intact:

5.1 Reduction Method

  • Merge constraints (1), (2), and (3) into a single constraint using a random linear combination:
    \[            (1) + \alpha \cdot (2) + \alpha^2 \cdot (3).            \]
  • Then reduce it to the sumcheck protocol: verify that a polynomial identity holds over the Boolean hypercube \( \{0, 1\}^n \).
  • In this way, the entire lookup verification problem is efficiently reduced to an interactive, polynomial-level sumcheck.

5.2 Typical Applications

The LogUp Lookup Argument has become the mainstream technique for lookup constraints in modern zero-knowledge proof systems. Typical applications include:

  1. General lookup constraints: efficiently verify whether certain witness columns come from a given table (e.g., range check, boolean check, custom gates).
  2. Cross-column lookup: support joint lookups across multiple columns using random linear combinations.
  3. Circuit optimization: reduce the number of multiplication gates in circuits, since lookups can replace complex constraint expressions.
  4. Applications in modern protocols: used in Halo 2 and Plonkish lookup implementations; efficient range checks and constraint expressions in Starkware and zkVM frameworks.

6. Comparison

Similar to HyperPlonk, HyperPianist reduces the following relations to the Multivariate Sumcheck Protocol. However, to achieve non-interactive distributed proofs, it adopts a different reduction strategy to convert them into the Sumcheck Protocol.

Conclusion

The Multivariate Sumcheck Protocol serves as a unified reduction framework that can accommodate various relation checks, including zero checks, rational constraints, set consistency, permutation, and lookup. Its advantages are:

  • Expressiveness: covers a wide range of scenarios from pointwise constraints to complex rational relations.
  • Efficiency: avoids exponential pointwise enumeration; verification complexity scales linearly with polynomial degree and number of variables.
  • Modularity: different constraints can all be transformed into the standard sumcheck form, enabling composition and extension.
  • Practicality: has already become a core component in Plonkish systems, STARK systems, and zkVM frameworks.

Overall, the Multivariate Sumcheck Protocol has become the most versatile reduction tool in modern zero-knowledge proofs, providing a solid foundation for designing efficient and secure proof systems.

Subscribe to the ZKM Blog to stay updated with the latest research by ZKM.