Customizable Constraint Systems For Succinct Arguments
Customizable Constraint Systems For Succinct Arguments
Abstract
This paper introduces customizable constraint system (CCS), a generalization of R1CS that can
simultaneously capture R1CS, Plonkish, and AIR without overheads. Unlike existing descriptions of
Plonkish and AIR, CCS is not tied to any particular proof system. Furthermore, we observe that the
linear-time polynomial IOP for R1CS in Spartan (CRYPTO 20) extends easily to CCS, and when combined
with a polynomial commitment scheme, it yields a family of SNARKs for CCS, which we refer to as
SuperSpartan. SuperSpartan supports high-degree constraints without its prover incurring cryptographic
costs that scale with the degree of constraints (only field operations scale with the constraint degree).
Moreover, as in Spartan, it does not employ superlinear-time and hard-to-distribute operations such as
FFTs. Similar properties were achieved for Plonkish by HyperPlonk (EUROCRYPT 23) via a different
route. However, it is unclear how to prove CCS instances (or even R1CS instances) with HyperPlonk
(or Plonk itself), without overheads. Furthermore, unlike HyperPlonk, SuperSpartan can prove uniform
instances of CCS (including AIR) without requiring a linear-time preprocessing for the verifier, and for
those instances, SuperSpartan provides “free” addition gates.
SuperSpartan for AIR is the first SNARK for AIR with a linear-time prover, transparent and sublinear-
time pre-processing, polylogarithmic proof size, and plausible post-quantum security. In particular,
SuperSpartan for AIR provides a faster prover than existing transparent SNARKs for AIR (which are
sometimes referred to as STARKs).
1 Introduction
A succinct non-interactive argument of knowledge (SNARK) [Kil92, Mic94, GW11, BCCT12] allows an
untrusted prover P to prove the knowledge of a witness w satisfying some property. For example, w could be
a pre-image of a designated value y of a cryptographic hash function h, i.e., a w such that h(w) = y. A trivial
proof is for P to send w to the verifier V, who directly checks that w satisfies the claimed property. A SNARK
achieves the same, but with better verification costs (and proof sizes). Succinct means that verifying a proof
is exponentially faster than checking the witness directly (this also implies that proofs are exponentially
smaller than the size of the statement proven).
When SNARKs are used in practice, they are typically applied to prove the correct execution of programs
(e.g., verifiable computation), possibly in zero-knowledge. Furthermore, SNARKs are built using protocols
that perform certain probabilistic checks, so to apply SNARKs to program executions, one must express
the execution of a program in a specific form that is amenable to probabilistic checking (e.g., as arithmetic
circuits). Many deployed systems include circuits that are written and optimized by hand [bel]. There is also a
long line of academic research [SVP+ 12, SBV+ 13, PGHR13, BFR+ 13, WSR+ 15, SAGL18, LNS20, OWB20]
and industrial work (e.g., zokrates, circom, noir, zinc, cairo) to build automated tools that transform programs
expressed in a high level languages into circuits.
There are several generalizations of arithmetic circuits, which we refer to as intermediate representations (IRs),
that are in use today: rank-one constraint system (R1CS), algebraic intermediate representation (AIR), and
Plonkish.1 We provide more precise definitions of these generalizations of arithmetic circuits in Section 2. Of
∗ MicrosoftResearch
† a16z
crypto research and Georgetown University
‡ Carnegie Mellon University
1 Plonkish is sometimes also referred to as constraint systems with “custom gates” or as RAPs (short for randomized AIR
SNARKs for CCS. We describe SNARKs for CCS. Our technical contribution amounts to observing that
several polynomial IOPs for CCS are essentially already known from prior polynomial IOPs for R1CS, and when
combined with a polynomial commitment scheme, they yield SNARKs for R1CS. In particular, we describe
generalizations of existing polynomial IOPs for R1CS, namely Spartan [Set20] and Marlin [CHM+ 20]. We
refer to these generalizations as SuperSpartan and SuperMarlin respectively. Of these, we find SuperSpartan
to achieve a particularly compelling cost profile: the prover’s cryptographic costs do not scale with the degree
of constraints, and as in Spartan, it does not employ superlinear-time and hard-to-parallelize operations
such as FFTs. As noted above, a similar cost profile was recently achieved by HyperPlonk [CBBZ23] via a
different route.
Remark 1. While we show that known polynomial IOPs for R1CS (Spartan’s and Marlin’s) extend easily
to handle CCS, it is not clear how to extend—without asymptotic overheads—known polynomial IOPs for
Plonkish (Plonk’s and Hyperplonk’s) to handle CCS (or even R1CS!). The primary issue is that Plonk and
HyperPlonk are restricted to a specific type of linear constraints (which are sometimes referred to as “copy
constraints”) that can only enforce equality between a pair of values in the satisfying assignment. In contrast,
2
both Spartan and Marlin have machinery (via a so-called sparse polynomial commitment scheme, see, e.g.,
[Tha20, Sections 10.3.2 and 16.2] for an exposition) to handle general linear constraints. Furthermore, when
SuperSpartan is applied to uniform instances of CCS, including CCS instances arising from AIR and data-
parallel variants of CCS (see §5), SuperSpartan provides “free” addition gates (i.e., the prover’s cryptographic
work is independent of the number of addition operations in the CCS instance), a property analogous to that
enjoyed by prior SNARKs for R1CS that require a per-circuit trusted setup [GGPR13, Gro16].
Remark 2. Spartan’s and SuperSpartan’s polynomial IOP are interactive oracle protocols [BFL92], a proof
model that is a predecessor of and simpler than (polynomial) IOPs. In the interactive oracle protocol model
of Babai et al. [BFL92], the verifier has access to certain oracles from the prover, in the form of functions or
polynomials, that it can query, but otherwise the prover and the verifier engage in an interactive proof (a
closely related proof model is interactive PCPs [KR08] where the prover’s oracle is a PCP). In particular, in
an interactive oracle protocol, no oracles are sent during the interaction.
SNARKs for uniform CCS (including AIR). We also describe how SuperSpartan can prove “uniform”
circuits (in particular, all AIR instances) while providing a succinct verifier without requiring any preprocessing.
Achieving this relies on a more novel technical contribution: the verifier has to evaluate certain multilinear
polynomials that capture the “wiring” of the circuit (or more generally, CCS instance) under consideration.
Allowing a preprocessing phase would let the verifier commit to those polynomials in an offline phase and
then have the prover prove their evaluations during the online phase. We observe that for instances of CCS
arising from AIR, the verifier can accomplish this in logarithmic time without any preprocessing. Theorem 2
provides details. This ensures that SuperSpartan’s verifier runs in logarithmic time (plus the time necessary
to verify a single evaluation proof from the polynomial commitment scheme). We thereby achieve SNARKs
for AIR with a novel cost profile. Perhaps most notably, by instantiating SuperSpartan with the Orion’s
polynomial commitment scheme, we obtain the first SNARK for AIR with a polylogarithmic time verifier
and linear-time prover. If SuperSpartan uses the predecessor of Orion [XZS22], called Brakedown [GLS+ 21],
we obtain a field-agnostic SNARK with linear-time prover, but proofs that are of size square root in the size
of the witness to the AIR instance.
Although HyperPlonk [CBBZ23] provides a SNARK for AIR, it inherently requires a circuit-dependent
preprocessing phase of time linear in the circuit size, which is exponentially larger than the verifier time
of SuperSpartan for AIR. This preprocessing algorithm is referred to as the indexer in HyperPlonk and in
earlier works that make use of such preprocessing [CHM+ 20, COS20].
(A · z) ◦ (B · z) − C · z = 0, (1)
3
where z = (w, 1, x) ∈ Fn , · is a matrix-vector multiplication operation, ◦ is the Hadamard (i.e., entry-wise)
product between vectors, and 0 is an m-sized vector with entries equal to the the additive identity in F.
We now provide a generalization of R1CS, which we refer to as CCS.
Definition 2.2 (CCS). A CCS structure S consists of:
• size bounds m, n, N, `, t, q, d ∈ N where n > `;
• a sequence of matrices M0 , . . . , Mt−1 ∈ Fm×n with at most N = Ω(max(m, n)) non-zero entries in total;
• a sequence of q multisets [S0 , . . . , Sq−1 ], where an element in each multiset is from the domain
{0, . . . , t − 1}
where
z = (w, 1, x) ∈ Fn , (3)
Mj · z denotes matrix-vector multiplication, denotes the Hadamard product between vectors, and 0 is an
m-sized vector with entries equal to the the additive identity in F.
CCS+. We provide a natural extension of CCS, which we refer to as CCS+, that additionally allows
specifying lookup operations (in the constraint system) against read-only tables (Definition B.1).
Proof. Let SCCS = (m, n, N, `, t, q, d, [M0 , M1 , M2 ], [S1 , S2 ], [c1 , c2 ]), where m, n, N, ` are from SR1CS , and
t = 3, q = 2, d = 2, M0 = A, M1 = B, M2 = C, S1 = {0, 1}, S2 = {2}, and c0 = 1, c1 = −1. Here, A, B, C are
the constraint matrices from SR1CS . By inspection, it is easy to see that the tuple (SCCS , x) is satisfied by w
if and only if (SR1CS , x) is satisfied by w.
The asserted bounds on the NP checker’s time are immediate from the construction.
4
• size bounds m, n, `, t, q, d, e ∈ N;
• a multivariate polynomial g in t variables, where g is expressed as a sum of q monomials and each
monomial has a total degree at most d;
• a vector of constants called selectors s ∈ Fe ; and
• a set of m constraints. Each constraint i is specified via a vector Ti of length t, with entries in the
range {0, . . . , n + e − 1}. Ti is interpreted as specifying t entries of a purported satisfying assignment z
to feed into g.
A Plonkish instance consists of public input x ∈ F` . A Plonkish witness consists of a vector w ∈ Fn−` . A
Plonkish structure-instance tuple (S, x) is satisfied by a Plonkish witness w if:
where
z = (w, x, s) ∈ Fn+e . (5)
Remark 3. Plonkish is often specified with a combination of gate constraints and copy constraints, where a
copy constraint enforces that a particular pair of elements in the satisfying assignment hold the same value.
Our definition of Plonkish provided above eschews copy constraints by essentially using a “deduplicated”
version of the satisfying assignment whose length is shorter than a Plonkish satisfying assignment by the
number of copy constraints. This may entail a substantially faster prover in SNARKs for CCS than Plonkish,
because the prover bottleneck is often cryptographically committing to the the satisfying assignment.
Remark 4. A Plonkish instance typically consists of multiple multivariate polynomials g, say, g0 , . . . , gk−1 ,
rather than just one. However, in practice, by using a single polynomial g in conjunction with log k selectors
s to “turn on” or “turn off” terms of g, to emulate one of the different possible polynomials g0 , . . . , gk−1 . The
total degree of g is at most log k plus the maximum total degree amongst g0 , . . . , gk−1 .
Lemma 2 (Plonkish to CCS transformation). Given a Plonkish structure SPlonkish = (m, n, `, t, q, d, e,g, T, s)
there exists a CCS structure SCCS such that the following holds. For any instance IPlonkish = x and any
witness vector wPlonkish = w, the tuple (SCCS , x) is satisfied by w if and only if (SPlonkish , x) is satisfied by w.
The natural NP checker’s time to verify the tuple ((SCCS , x), w) is identical to the NP checker’s time to verify
the tuple ((SPlonkish , x), w) that evaluates g monomial-by-monomial when checking that Equation (4) holds.
5
of the ith monomial of g. For i ∈ {0, 1, . . . , q − 1}, if the ith monomial contains a variable j, where
j ∈ {0, 1, . . . , t − 1}, add j to multiset Si with multiplicity equal to the degree of the variable.
By inspection, the tuple (SCCS , ICCS ) is satisfied by wCCS if and only if (SPlonkish , IPlonkish ) is satisfied by
wPlonkish . Finally, the asserted bounds on the NP checker’s time are immediate from the construction.
Remark 5. When transforming Plonkish specified with gate constraints and copy constraints (see remark 3)
to CCS, the size of the CCS witness is shorter than the Plonkish witness by the number of copy constraints.
Remark 6. The NP-checker for Plonkish that evaluates g in O(qd) time by proceeding monomial-by-monomial
may be sub-optimal, as some polynomials g may have a faster evaluation procedure. Even in this situation, our
reduction from Plonkish to CCS may not introduce overheads that are relevant to SNARK prover time. This
is because while the number of field operations performed by our prover in our SNARK for CCS grows with
q, the amount of cryptographic operations (i.e., the number of field elements that must be cryptographically
committed) is independent of q. Often, it is the cryptographic work that is the runtime bottleneck for the
SNARK prover.
Remark 7. For CCS arising from Plonkish, certain sparse matrices in the CCS structure have the property
that for a sparse matrix M in the CCS structure, there exists a fixed vector v ∈ Fn such that M · z = v for any
satisfying assignment z ∈ Fn . Specifically, such matrices arise in our Plonkish to CCS transformation when
encoding “selectors” in Plonkish. For such matrices, SNARKs for CCS such as SuperSpartan can commit to
v instead of M in the preprocessing phase. Furthermore, at the time of proving, the prover can use v in place
of M · z (this minimizes the complexity and costs associated with sparse polynomial commitment schemes).
Remark 8. Plonkish instances often implement algorithms that use randomized fingerprinting techniques (e.g.,
to check that various vectors are permutations of each other). This requires the prover to cryptographically
commit to a witness vector before learning the randomness in the fingerprinting procedure used to check the
witness’ correctness. The Plonkish instance merely implements the randomized checking procedure. Our
formulation of CCS and SNARKs for it are easily adapted to handle such randomized procedures. See [Tha20,
§6.6.2] for discussion and how such constraint systems can be viewed as arising from interactive reductions to
circuit satisfiability problems.
and x[..t/2], x[t/2 + 1..] ∈ Ft/2 refer to the first half and second half of x. Let us index the m + 1 “rows” of z
as 0, 1, . . . , m. An AIR structure-instance tuple (S, x) is satisfied by an AIR witness w if:
for all i ∈ {1, . . . , m}, g(z[(i − 1) · t/2 + 1], . . . , z[i · t/2], z[i · t/2 + 1], . . . , z[(i + 1) · t/2]) = 0. (7)
6
Intuition for Definition 2.4 and comparison to prior definitions of AIR. Conceptually, the AIR
assignment z consists of m + 1 rows each with t/2 columns, and Definition 2.4 requires that the “constraint
polynomial” g evaluates to zero when evaluated on every pair of adjacent rows of z, i.e., rows i − 1 and i for
i = 1, . . . , m. The first row of z, namely the first t/2 entries of x, should be thought of as the public input to
the computation. The last row of z, namely the last t/2 entries of x, should be thought of as the claimed
public output of the computation.
Each of the t/2 columns of z are often viewed as the “execution trace” of a specific register when a CPU is
run for m steps. The constraint polynomial g then takes as input the state of the machine’s registers at two
adjacent steps i − 1 and i and checks that the value assigned to the registers at step i correctly follows by
applying the CPU for one step starting in the state given by row i − 1 of z.
Handling many AIR constraint polynomials rather than 1. To represent the constraints capturing
a single step of a CPU, typically many polynomials g will be needed, say g1 , . . . , gk . In practice, k may be
in the many dozens to hundreds [GPR21, BGtRZt23]. There is, however, a straightforward and standard
randomized reduction from AIR with k > 1 constraint polynomials to AIR with a single constraint polynomial
g: the verifier picks a random r ∈ F and sends it to the prover, and the prover replaces g1 , . . . , gk with the
single constraint polynomial
k−1
X
g := ri · gi . (8)
i=0
If Equation (7) holds for all g1 , . . . , gk in place of g, then with probability 1 over the choice of r the same
will hold for the random linear combination g. Meanwhile, if Equation (7) fails to hold for any gi then with
probability at least 1 − (k − 1)/|F|, it will fail to hold for the random linear combination g.2
Comparison to previous definitions of AIR. As discussed in the introduction, many prior works have
defined AIR instances in a manner tailored to the proof systems typically used to prove their satisfiability,
sometimes called STARKs [BBHR19b, Sta21, BSCKL23]. These definitions index rows of the witness vector
z by powers hi of a generator h of a cyclic subgroup G of F, with hi indexing the i’th row of z. Our
definition of AIR is essentially equivalent to these definitions, though we naturally index rows of z by integers
{0, . . . , m − 1}. One difference is that prior definitions of AIR allow each constraint polynomial to be coupled
with an associated subset of rows, such that the constraint is only required to hold for rows in that subset.
The subset must be a subgroup of G, which in practice limits one to “periodic” constraints, meaning the
constraint applies to every k’th row where k is a power of 2. Our SNARKs in this work are easily modified to
support such periodic constraints (see Remark 11).
Lemma 3 (AIR to CCS transformation). Given an AIR structure SAIR = (m, t, q, d,g), instance IAIR = x,
and witness wAIR = w, there exists a CCS structure SCCS such that the tuple (SCCS , x) is satisfied by w
if and only if (SAIR , x) is satisfied by w. The natural NP checker’s time to verify the tuple ((SCCS , x), w)
is identical to the runtime of the NP checker that evaluates g monomial-by-monomial when checking that
((SAIR , x), w) satisfies Equation (7).
7
• If i = 0 and j < t/2, we set Mj [i][j + |wAIR |] = 1.
• If i = m − 1 and j ≥ t/2, we set
Mj [i][j + |wAIR | + t/2] = 1.
As with Remark 6, the NP-checker for AIR that evaluates g in O(qd) time by proceeding monomial-by-
monomial may be sub-optimal, as some polynomials g may have a faster evaluation procedure. Even in this
situation, our reduction from AIR to CCS may not not introduce overheads that are relevant to SNARK
prover time, because the cryptographic work performed by the SNARK prover (i.e., number of field elements
that are cryptographically committed) does not grow with q, only the number of field operations do.
Remark 9. The CCS instances arising from the AIR → CCS of Lemma 3 have public input x ∈ Ft that is
much shorter than the witness w ∈ F(m−1)t/2 (unless m ≤ 3). As discussed later, in the proof of Theorem
1 and Section 5, it will eventually be convenient to treat x as having length (one less than) that of w by
padding x with zeros. This ensures that the length n of the CCS vector z (Equation (3)), as well as length of
the AIR witness w and vector (1, x), can all be powers of 2. This is important for avoiding pre-processing
costs for the verifier when our SNARK for AIR is applied to the CCS instances arising from the AIR → CCS
transformation of Lemma 3 (see Section 5). As discussed later (see the paragraph on having the verifier
evaluate ze efficiently in the proof of Theorem 1), this padding technique does not result in a verifier that runs
in time linear in m and n, and in fact does not increase the verifier’s time by more than an additive constant.
3 Preliminaries
3.1 Multilinear extensions
An `-variate polynomial p : F` → F is said to be multilinear if p has degree at most one in each variable. Let
f : {0, 1}` → F be any function mapping the `-dimensional Boolean hypercube to a field F. A polynomial
g : F` → F is said to extend f if g(x) = f (x) for all x ∈ {0, 1}` . It is well-known that for any f : {0, 1}` → F,
there is a unique multilinear polynomial fe: F → F that extends f . The polynomial fe is referred to as the
multilinear extension (MLE) of f .
A particular multilinear extension that arises frequently in the design of interactive proofs is the eq
e is the
MLE of the function eq : {0, 1}s × {0, 1}s → F defined as follows:
(
1 if x = e
eq(x, e) =
0 otherwise.
8
An explicit expression for eq
e is:
s
Y
eq(x,
e e) = (xi ei + (1 − xi )(1 − ei )) . (9)
i=1
Indeed, one can easily check that the right hand side of Equation (9) is a multilinear polynomial, and that if
evaluated at any input (x, e) ∈ {0, 1}s × {0, 1}s , it outputs 1 if x = e and 0 otherwise. Hence, the right hand
side of Equation (9) is the unique multilinear polynomial extending eq. Equation (9) implies that eq(r e 1 , r2 )
can be evaluated at any point (r1 , r2 ) ∈ Fs × Fs in O(s) time.3
Multilinear extensions of vectors. Given a vector u ∈ Fm , we will often refer to the multilinear
extension of u and denote this multilinear polynomial by u
e. u
e is obtained by viewing u as a function mapping
{0, 1}log m → F in the natural way4 : the function interprets its (log m)-bit input (i0 , . . . , ilog m−1 ) as the
binary representation of an integer i between 0 and m − 1, and outputs ui . u
e is defined to be the multilinear
extension of this function.
Lagrange interpolation. An explicit expression for the MLE of any function is given by the following
standard lemma (see [Tha20, Lemma 3.6]).
Lemma 4. Let f : {0, 1}` → F be any function. Then the following multilinear polynomial fe extends f :
X
fe(x0 , . . . , x`−1 ) = f (w) · χw (x0 , . . . , x`−1 ), (10)
w∈{0,1}`
Q`
where, for any w = (w0 , . . . , w`−1 ), χw (x0 , . . . , x`−1 ) := i=0 (xi wi + (1 − xi )(1 − wi )) . Equivalently, χw (x0 , . . . , x`−1 ) =
eq(x
e 0 , . . . , x`−1 , w0 , . . . , w`−1 ).
The polynomials {χw : w ∈ {0, 1}` } are called the Lagrange basis polynomials for `-variate multilinear
polynomials. The evaluations {fe(w) : w ∈ {0, 1}` } are sometimes called the coefficients of fe in the Lagrange
basis, terminology that is justified by Equation (10).
The sum-check protocol. Let g be some `-variate polynomial defined over a finite field F. The purpose
of the sum-check protocol is for prover to provide the verifier with the following sum:
X
H := g(b). (11)
b∈{0,1}`
To compute H unaided, the verifier would have to evaluate g at all 2` points in {0, 1}` and sum the results.
The sum-check protocol allows the verifier to offload this hard work to the prover. It consists of ` rounds,
one per variable of g. In round i, the prover sends a message consisting of di field elements, where di is the
degree of g in its i’th variable, and the verifier responds with a single (randomly chosen) field element. If the
prover is honest, this polynomia (in the single variable Xi ) is
X
g(r0 , . . . , ri−1 , Xi , bi+1 , . . . , b`−1 ). (12)
(bi+1 ,...,b`−1 )∈{0,1}`−i
Here, we are indexing both the rounds of the sum-check protocol and the variables of g starting from zero
(i.e., indexing them by {0, 1, . . . , ` − 1}), and r0 , . . . , ri−1 are random field elements chosen by the verifier
across rounds 0, . . . , i − 1 of the protocol.
3 Throughout this manuscript, we consider any field addition or multiplication to require constant time.
4 All logarithms in this paper are to base 2.
9
Scheme Commit Size Proof Size V time Commit time P time
√ √
Brakedown-PC 1 |H| O( N · λ) |F| O( N · λ) F O(N ) F O(N ) F
2 2
Orion-PC √1 |H| √ N ) |H| O(λ log
O(λ log √ N) H O(N ) F O(N ) F
Hyrax-PC O( N ) |G| O( N ) |G| O( N ) G O(N ) G O(N ) F
Dory-PC 1 |GT | O(log N ) |GT | O(log N ) GT O(N ) G1 O(N ) F
KZG + Gemini 1 G1 O(log N ) G1 O(log N ) G1 O(N ) G1 O(N ) G1
Figure 1: Costs of polynomial commitment schemes, for `-variate multilinear polynomials over F, with N = 2` . P
time refers to the time to compute evaluation proofs. PST [PST13, ZGK+ 17] achieves similar performance as the
costs depicted for “KZG + Gemini”. Orion-PC dominates Virgo [ZXZS20]. In addition to the reported O(N ) field
operations, Hyrax-PC and Dory-PC require roughly O(N 1/2 ) cryptographic work to compute evaluation proofs. F
refers to a finite field, H refers to a collision-resistant hash, G refers to a cryptographic group where DLOG is hard,
and (G1 , G2 , GT ) refer to pairing-friendly groups. Columns with a suffix of “size” depict to the number of elements of
a particular type, and columns with a suffix of “time” depict √ the number of operations (e.g., field multiplications or
the size of multi-exponentiations). Orion-PC also requires O( N ) (transparent) pre-processing time for the verifier;
the pre-processing phase depends only on the size of the `-variate multilinear polynomial being committed.
P
`
The verifier’s runtime is O i=1 di , plus the time required to evaluate g at a single point r ∈ F` . In the
typical case that di = O(1) for each round i, this means the total verifier time is O(`), plus the time required
to evaluate g at a single point r ∈ F` . This is exponentially faster than the 2` time that would generally be
required for the verifier to compute H. See [AB09, Chapter 8] or [Tha20, §4.1] for details.
pp ← G(1λ ),
(s, (u, w)) ← A(pp),
Pr
V(vk, u, π) = 1 (pp, s, u, w) ∈ R, = 1.
(pk , vk) ← K(pp, s),
π ← P(pk , u, w)
A non-interactive argument of knowledge satisfies knowledge soundness if for all PPT adversaries A there
exists a PPT extractor E such that for all randomness ρ
pp ← G(1λ ),
V(vk, u, π) = 1, (s, u, π) ← A(pp; ρ),
Pr
(pp, s, u, w) 6∈ R (pk , vk) ← K(pp, s), = negl(λ).
w ← E(pp, ρ)
A non-interactive argument of knowledge is succinct if the verifier’s time to check the proof π and the size of
the proof π are at most polylogarithmic in the size of the statement proven.
10
Polynomial commitment scheme We adapt the definition from [BFS20]. A polynomial commitment
scheme for multilinear polynomials is a tuple of four protocols PC = (Gen, Commit, Open, Eval):
• pp ← Gen(1λ , `): takes as input ` (the number of variables in a multilinear polynomial); produces public
parameters pp.
• C ← Commit(pp, g): takes as input a `-variate multilinear polynomial over a finite field g ∈ F[`]; produces
a commitment C.
• b ← Open(pp, C, g): verifies the opening of commitment C to the `-variate multilinear polynomial g ∈ F[`];
outputs b ∈ {0, 1}.
• b ← Eval(pp, C, r, v, `, g) is a protocol between a PPT prover P and verifier V. Both V and P hold a
commitment C, the number of variables `, a scalar v ∈ F, and r ∈ F` . P additionally knows a
ell-variate multilinear polynomial g ∈ F[`]. P attempts to convince V that g(r) = v. At the end of the
protocol, V outputs b ∈ {0, 1}.
Definition 3.2. A tuple of four protocols (Gen, Commit, Open, Eval) is an extractable polynomial commitment
scheme for multilinear polynomials over a finite field F if the following conditions hold.
• Completeness. For any `-variate multilinear polynomial g ∈ F[`],
• Knowledge soundness. Eval is a succinct argument of knowledge for the following NP relation given
pp ← Gen(1λ , `).
11
not require a trusted setup, neither does the resulting SNARK, and similarly if the polynomial commitment
scheme is plausibly binding against quantum adversaries, then the SNARK is plausibly post-quantum sound.
SuperSpartan can make use of any commitment schemes for multilinear polynomials g.5 Here an `-variate
multilinear polynomial g : F` → F is a polynomial of degree at most one in each variable. A brief summary of
the multilinear polynomial commitment schemes that are most relevant to this work is provided in Figure 3.1.
All of the schemes in the figure, except for KZG-based scheme, are transparent; Brakedown-PC and Orion-PC
are plausibly post-quantum secure.
For simplicity, we describe our protocol assuming m and n are powers of two (if this is not the case, we
can pad each matrix Mi and the witness vector z with zeros to extend m and n to a power of 2 without
increasing the prover or verifier’s time in the SNARKs resulting from the protocol below).
Interpret the matrices M0 , . . . , Mt−1 as functions mapping domain {0, 1}log m × {0, 1}log n to F in the natural
way. That is, an input in {0, 1}log m × {0, 1}log n is interpreted as the binary representation of an index
(i, j) ∈ {0, 1, . . . , m − 1} × {0, 1, . . . , n − 1}, and the function outputs the (i, j)’th entry of the matrix.
Theorem 1 (A generalization of [Set20] from R1CS to CCS). For any finite field F, there exists a polynomial
IOP for RCCS , with the following parameters, where m × n denotes the dimensionality of the CCS coefficient
matrices, and N denotes the total number of non-zero entries across all of the matrices:
– soundness error is O((t + d) log m)/|F|
– round complexity is O(log m + log n);
– communication complexity is O(d log m + log n) elements of F;
– at the start of the protocol, the prover sends a single (log m − 1)-variate multilinear polynomial W f , and
the verifier has a query access to t additional 2 log m-variate multilinear polynomials M0 , . . . , Mt−1 ;
f f
Remark 10. The O(qmd log2 d) field operations term in the prover’s runtime from Theorem 1 involves using
FFTs to multiply together d different degree-1 polynomials. FFTs are only practical over some finite fields.
Moreover, in CCS/AIR/Plonkish instances that arise in practice, d rarely, if ever, exceeds 100 and is often
as low as 5 or even 2 [GPR21, BGtRZt23]. Hence, these O(d log2 d)-time FFT algorithms will typically be
much slower than the naive O(d2 )-time algorithm for multiplying together d degree-1 polynomials. Using
Karatsuba’s algorithm in place of FFTs would also yield a sub-quadratic-in-d time algorithm that works over
any field.
Proof of Theorem 1. For a CCS structure and instance, I = (M0 , . . . , Mt−1 , s0 , . . . , sq−1 , x) and a purported
witness W , let Z = (W, 1, x). As explained prior to the theorem statement, we can interpret M0 , . . . , Mt−1
5 Anyunivariate polynomial commitment scheme can be transformed into a multilinear one, though the transformations
introduce some overhead (see, e.g., [CBBZ23, BCHO22, ZXZS20]).
12
as functions mapping {0, 1}log m × {0, 1}log n to F, and similarly we interpret Z and (1, x) as functions with
the following respective signatures in the same manner: {0, 1}log n → F and {0, 1}log(n)−1 → F.
Having the verifier evaluate Ze efficiently. Let us first assume that the CCS witness W and (1, x) both
have the same length n/2. Then it is easy to check that the MLE Z
e of Z satisfies
e 0 , . . . , Xlog n−1 ) = (1 − X0 ) · W
Z(X ]
f (X1 , . . . , Xlog n−1 ) + X0 · (1, x)(X1 , . . . , Xlog n−1 ) (13)
Indeed, the right hand side of Equation (13) is a multilinear polynomial, and it is easily checked that
e 0 , . . . , xlog n−1 ) = Z(x0 , . . . , xlog n−1 ) for all x0 , . . . , xlog n−1 ) ∈ {0, 1}log n (since the first n/2 of the
Z(x
evaluations of Z are given by W and the rest are given by the vector (1, x)). Hence, the right hand side of
Equation (13) must be the unique multilinear extension of Z.
If the length of (1, x) is less than that of W (as is the case in the CCS instances resulting from the AIR →
CCS transformation of Lemma 3), we replace x with a padded vector v that appends zeros to x until it has the
same length as W (and we henceforth use n to denote twice the length of this padded vector). Replacing (1, x)
]
with the padded vector does increase the time required for the verifier to compute (1, x)(X1 , . . . , Xlog n−1 ) by
more than an additive O(log n) field operations. For example, if the unpadded vector (1, x) has length 2` , it
is easy to check that the padded vector of length n/2 has multilinear extension equal to
]
(X1 , . . . , Xlog(n)−1 ) 7→ (1 − X`+1 ) · (1 − X`+2 ) · · · · · (1 − Xlog(n)−1 ) · (1, x)(X1 , . . . , X` ).
Indeed, this is a multilinear polynomial that agrees with the padded vector (1, x) at all inputs (x1 , . . . , xlog(n)−1 ) ∈
{0, 1}log(n)−1 , and hence must equal the unique multilinear polynomial extending the padded vector.
The protocol. Have the verifier pick τ ∈ Flog m at random. Similar to [Set20, Theorem 4.1], checking
if (I, W ) ∈ RCCS is equivalent, except for a soundness error of log m/|F| over the choice of τ ∈ Flog m , to
checking if the following identity holds:
q−1
?
X X Y X
0= eq(τ,
e a) · ci · fj (a, y) · Z(y)
M e (14)
j∈Si
a∈{0,1}log m i=0 y∈{0,1}log n
That is, if (I, W ) ∈ RCCS , then Equation (14) holds with probability 1 over the choice of τ , and if
(I, W ) 6∈ RCCS , then Equation (14) holds with probability at most O(log m/|F|) over the random choice of τ .
Consider computing the right hand side of Equation (14) by applying the sum-check protocol to the polynomial
q−1
X Y X
g(a) := eq(τ,
e a) · ci fj (a, y) · Z(y)
M e .
i=0 j∈Si y∈{0,1}log m
From the verifier’s perspective, this reduces the task of computing the right hand side of Equation (14) to the
task of evaluating g at a random input ra ∈ Flog m . Note that the verifier can evaluate eq(τ,
e ra ) unassisted in
O(log m) field operations, as it is easily checked (see Equation (9)) that
log
Ym
eq(τ,
e ra ) = (τi ra,i + (1 − τi )(1 − ra,i )) .
i=1
13
With eq(τ,
e ra ) in hand, g(ra ) can be computed in O(dq) time given the following t quantities for i ∈
{0, 1, . . . , t − 1}: X
Mfi (ra , y) · Z(y).
e
y∈{0,1}log n
These t quantities can be computed by applying the sum-check protocol t more times in parallel, once to
each of the following polynomials, where i ∈ {0, 1, . . . , t − 1} (to reduce communication costs by a factor of t,
pick a random γ ∈ F and take linear combination with weights given by [γ 0 , . . . , γ t−1 ]):6
fi (ra , y) · Z(y).
M e
To perform the verifier’s final check in this invocation of the sum-check protocol, it suffices for the verifier to
evaluate each of the above t polynomials at the random vector ry , which means it suffices for the verifier to
evaluate M
fi (ra , ry ). These evaluations can be obtained via the verifier’s assumed query access to M
f0 , . . . , M
ft−1 .
e f ]
Z(ry ) can be obtained from one query to W and one query to (1, x) via Equation (13).
In summary, we have the following polynomial IOP:
Completeness. Perfect completeness follows from perfect completeness of the sum-check protocol and the
fact that Equation (14) holds with probability 1 over the choice of τ if (I, W ) ∈ RCCS .
Soundness. Applying a standard union bound to the soundness error introduced by probabilistic check in
Equation (14) with the soundness error of the sum-check protocol [LFKN90], we conclude that the soundness
error for the depicted polynomial IOP as at most O ((d · log m + t + log n)) /|F|.7
Round and communication complexity. The sum-check protocol is applied twice. In the first invocation
of sum-check (Line 3a of Figure 2), the polynomial to which the sum-check protocol is applied has degree at
most d in each of its log m variables. In the remaining invocation of sum-check, the polynomial to which
sum-check is applied has degree at most 2 in each of its log n variables. Hence, the round complexity of the
polynomial IOP is log m + log n and the total communication is O(d log m + log n) field elements.8
Verifier time. The asserted bounds on the verifier’s runtime are immediate from the verifier’s runtime in
e can be evaluated at any input (τ, ra ) ∈ F2 log m in O(log m) field
the sum-check protocol, and the fact that eq
operations.
Prover Time. Straightforward adaption of the linear-time Spartan prover [Set20] (which uses prior
techniques for linear-time sum-checks [Tha13], see also [Tha20, Section 7.5.2] for an exposition), establishes
that the honest prover in the polynomial IOP for CCS can be implemented in O(N + tm + qmd log2 d)
F-ops . Here, recall that N denotes the number of non-zero entries in total across the constraint matrices
fi (ra , ry ) for all i ∈ {0, 1, . . . , t − 1} (i.e., to
M0 , . . . , Mt−1 . This includes the time required to compute M
compute answers to the verifier’s queries to the polynomials Mi , and Z).
f e
These costs can be summarized as follows. In the first invocation of sum-check, the prover devotes work to
the following tasks.
6 As with Footnote 2, using powers-of-γ as the coefficients of the random linear combination adds soundness error (t − 1)/|F|
to the polynomial IOP. One can instead choose t independent random coefficients from F, which would add soundness error just
1/|F|.
7 The additive term t/|F| can be removed from the soundness error by replacing the t powers of γ in Step (c) of the polynomial
IOP with t random field elements, see Footnote 6. This increases the communication cost from the verifier to the prover by t − 1
field elements.
8 When compiled into a SNARK, this communication can be independent of d by using a polynomial commitment scheme.
14
1. P → V: a (log(n) − 1)-variate multilinear polynomial W
f as an oracle.
log m
2. V → P: τ ∈R F
3. V ↔ P: run the sum-check reduction described in the prose above. This entails:
(a) V ↔ P: Apply the sum-check protocol to
q−1
X Y X
g(a) := eq(τ,
e a) · ci fj (a, y) · Z(y)
M e (15)
i=0 j∈Si y∈{0,1}log n
This reduces checking the task of computing the right hand side of Equation (14) to the task
of computing g(ra ) for a random input ra ∈ Fs .
(b) V → P: choose a random γ ∈ F and send γ to P.
(c) V ↔ P Apply the sum-check protocol a second time, to compute
t−1
X X
γi · M
fi (ra , y) · Z(y),
e
i=0 y∈{0,1}log n
and confirm that the result is consistent with the claimed value of g(ra ).
The above sum-check reduction reduces the check in Equation (14) to checking if the following
hold, where ra , ry are respectively vectors in Flog m and Flog n chosen at random by the verifier over
the course of the two invocations of the sum-check protocol above:
?
• ∀i ∈ {0, 1, . . . , t − 1}, M
fi (ra , ry ) = vi , and
?
• Z(r
e y) = vZ .
4. V:
?
• check if ∀i ∈ {0, 1, . . . , t − 1}, M fi (rx , ry ) = vi , with one query to M
fi ;
?
• check if Z(r
e y) = ]
vZ by checking if: vZ = (1 − ry [1]) · vW + ry [1] · (x, 1)(ry [2..]), where ry [2..]
refers to a slice of ry without the first element of ry , and vW ← W (ry [2..]) via an oracle query
f
(see Equation (13)).
Figure 2: Pseudocode for our polynomial IPCP for CCS (Definition 2.2).
15
• O(N ) time is devoted to the field operations required to compute Mi · Z for i = 0, 1, . . . , t − 1. Denote
the jth such vector by uj , and recall that the first invocation of the sum-check protocol is applied to
the polynomial
q−1 Y
X
g(a) := eq(τ,
e a) · u
es (a).
i=0 s∈Si
Per Equation (12), the prescribed prover message in round j of the sum-check protocol is the degree-(d+1)
univariate polynomial hj where
X q−1 Y
X
hj (c) = eq(τ,
e r0 , . . . , rj−1 , c, aj+1 , . . . , alog m ) u
es (r0 , . . . , rj−1 , c, aj+1 , . . . , alog(m)−1 ).
( j+1 j+2
a ,a ,...,alog(m)−1 )∈{0,1} log(m)−j−1 i=0 s∈Si
Here, r1 , . . . , rj−1 are random field elements chosen by the verifier in rounds 1, 2, . . . , j − 1.
Given the t vectors u0 , . . . , ut−1 , each of length m, linear-time sum-check techniques [CTY12, Tha13]
can implement the prover in the first invocation of sum-check in time O(tm + qd log m) as follows.
• O(tm) total time (following standard techniques [CTY12, Tha13]) suffices to compute the following set
of evaluations across all rounds j of this first invocation of the sum-check protocol:
n o
es (r0 , . . . , rj−1 , b) : s ∈ {0, . . . , t − 1}, b ∈ {0, 1}log(m)−j .
u
• O(m) total time (following standard techniques [CTY12, Tha13]) suffices to compute the following set
of evaluations across all rounds j of this first invocation of the sum-check protocol:
n o
eq(τ,
e r0 , . . . , rj−1 , b) : b ∈ {0, 1}log(m)−j .
• Given the evaluations computed in the two bullet points above, the task of computing hj amounts to
the task of repeatedly computing the product of at most (d + 1) degree-1 univariate polynomials over F,
and summing the results. Here, the relevant univariate polynomials in a single variable X are
u
es (r0 , . . . , rj−1 , X, aj+1 , . . . , alog(m)−1 )
and
eq(τ,
e r0 , . . . , rj−1 , X, b0 )
as (aj+1 , . . . , alog(m)−1 ) and b0 range over {0, 1}log(m)−j−1 .
This is because, in order to specify a degree−1 univariate polynomial, it suffices to evaluate that
polynomial at the inputs {0, 1} (or any two other elements from F for that matter), and for each of the
relevant degree-1 polynomials, the evaluations at inputs {0, 1} can be computed in O(1) time from the
quantities in the two bullet points above.
The number of such products to be computed is
log
Xm
O (m/2j ) · q = O(mq),
j=1
and multiset Si (i.e., there are (m/2j ) · q such products to compute in total in round j). The task
of multiplying d degree-1 polynomials is reducible to the well-known task in the computer algebra
16
literature of computing so-called sub-product trees, which can be done in O(d log2 d) field operations
if the field supports FFTs of length up to d.9 The claimed runtime bound for the prover in the first
sum-check instance follows.
The second sum-check invocation applies sum-check to the (log n)-variate polynomial
t−1
X
γi · M
fi (ra , y) · Z(y),
e
i=0
which has degree at most 2 in each variable. Standard linear-time-sum-check techniques [CTY12, Tha13]
can implement the prover in this protocol in O(N + t) time.
next(x
g 1 , . . . , xlog D , y1 , . . . , ylog D ) = h(x1 , . . . , xlog D , y1 , . . . , ylog D ) + g(x1 , . . . , xlog D , y1 , . . . , ylog D ) (16)
where
and
g(x1 , . . . , xlog D , y1 , . . . , ylog D )
9 See, for example, https://cstheory.stackexchange.com/questions/681/multiplying-n-polynomials-of-degree-1.
17
equals
logX
D−1 k−1
!
Y
xlog D−i (1 − ylog D−i ) · (1 − xlog D−k ) · ylog D−k · eq
e (x1 , . . . , xlog D−k−1 , y1 , . . . , ylog D−k−1 ) .
k=1 i=0
Indeed, both h and g are multilinear polynomials, so to confirm that h + g equals the unique multilinear
extension of next, it suffices to show that h(x, y) + g(x, y) = next(x, y) for all (x, y) ∈ {0, 1}log D × {0, 1}log D .
We break the analysis into three cases.
• If xlog D = 0 then g(x, y) = 0 because of the vector xlog D appearing in the first term of the product in
the definition of g. Meanwhile, h(x, y) = 1 if and only if ylog D = 1 and the first log D − 1 bits of x
and y match. In other words, if xlog D = 0 then g(x, y) + h(x, y) equals 1 if and only if y is the binary
representation of to-int(x) + 1.
• If xlog D = 1, then let k ≥ 1 be the smallest value such that xlog D−k = 0 assuming such a k exists.
Then h(x, y) = 0 because of the factor (1 − xlog D ) appearing in its definition. Moreover, in this case
y is the binary representation of to-int(x) + 1 if and only if ylog D = ylog D−1 = · · · = ylog D−(k−1) = 0,
ylog D−k = 1 and
(y1 , . . . , ylog D−(k+1) ) = (x1 , . . . , xlog D−(k+1) ).
For this y, g(x, y) = 1, because the k’th term of the sum in the definition of g evaluates to 1 while all
other terms evaluate to 0. Meanwhile, for all other y 0 ∈ {0, 1}log D , all terms of the sum defining g
evaluate to 0.
In other words, for all (x, y) ∈ {0, 1}log D × {0, 1}log D such that xlog D = 1,
(
0 + 1 if y is the binary representation of to-int(x) + 1
g(x, y) + h(x, y) =
0 + 0 otherwise.
• The final case is that xlog D is the all ones vector. In this case, it is easily checked that, regardless of
the value of y, h(x, y) = 0 and every term in the sum defining g(x, y) is also 0.
In each of the three cases above, we have shown that h(x, y) + g(x, y) equals 1 if y is the binary representation
of to-int(x) + 1, and equals 0 otherwise. Hence, h(x, y) + g(x, y) = next(x, y).
We now explain that Expression (16) can be evaluated at any point (rx , ry ) ∈ Flog D × Flog D in O(log D)
time. It is easy to see that h(rx , ry ) can be evaluated in O(log D) time. It is also clear that each term of
the sum defining g can be evaluated at (rx , ry ) in O(log D) time. Since there are O(log D) terms of the sum,
that immediately implies an upper bound of O(log D2 ) time in total.
However, using the fact that adjacent terms of the sum involve almost identical factors, the runtime can be
reduced to O(log m). For example, if v(k) denotes the value of the k’th term of the sum, then
−1
v(2) = v(1) · xlog D−1 (1 − ylog D−1 ) ((1 − xlog D−1 )ylog D−1 ) e log D−2 , ylog D−2 )−1 .
(1 − xlog D−2 )ylog D−2 eq(x
This ensures that v(i) can be computed in constant amortized time given v(i − 1) for each i ∈ {2, 3, . . . , log D}.
(A batch inversion algorithm is used to compute all necessary field inversions across all terms of the sum
with a single field inversion and O(log D) multiplications). This means O(log D) total total time suffices to
evaluate all terms.
18
(this padding does not increase prover or verifier time in SuperSpartan). This means that the number of rows
in the padded matrix will not be m, but rather 2(m − 1).
Let v = |wAIR | = (m − 1) · t/2. Recall that for CCS instances arising from Lemma 3 (after padding (1, x) to
have length v, so that z = (wAIR , 1, x) has length 2v = n, see Remark 9), the length of the witness vector
z is n = (m − 1) · t. Hence, we can think of z as itself a matrix, with 2(m − 1) rows and t/2 columns. We
consider m − 1 and t to be powers of 2 throughout this section. We also pad the matrices M0 , . . . , Mt−1 with
m − 1 all0-zeros rows to ensure that they have 2(m − 1) rows, which is a power of 2. Hence, the multilinear
extensions M
f0 , . . . , M
ft−1 are functions mapping the domain
jlog(t)−1 (1 − kh ) · next(i,
g (kr , 0))) · eq((j
e 0 , . . . , jlog(t)−2 ), kc ) (20)
(1 − jlog(t)−1 ) · kh · eq(i,
e bin(m − 1)) · eq(k
e r , bin(m − 1)) · eq(j
e 0 , . . . , jlog(t)−2 , kc )
+jlog(t)−1 · kh · eq(i,
e bin(m − 1)) · eq(k
e r , bin(1)) · eq(j
e 0 , . . . , jlog(t)−2 , kc ) (22)
In Equation (23) above, bin(0) refers to the all-zeros vector of length 1 + log(m − 1) or log(m − 1) as
appropriate.
19
Analyzing the sum of Expressions (20)-(23). To show that the sum of the above four expressions
equals Mfj (i, (kr , kh , kc )), we must establish that the sum of Expressions (20)-(23) is a multilinear polynomial
in (i, k) that agrees with Mj at all inputs in
This will establish that it equals the unique multilinear extension of Mj (i, k). Clearly, Expressions (20)-(23)
are multilinear in the variables i and k, so we turn to showing that Mj (i, k) equals the sum of the above four
expressions when (i, k) ∈ {0, 1}log m × {0, 1}log n .
For i ∈ {0, 1}log(m−1) × {0}, Expression (20) equals 1 if and only if the high-order bit of j is 1 (i.e., j ≥ t/2),
to-int(kr ) = to-int(i) + 1 and j 0 = to-int(kc ). This means that
This precisely matches Equation (17), unless i = 0 and j < t/2, which is a special case.
Expressions (22) and (23) “correct” the behavior of (the sum of) Equations (20) and (21) when to-int(i) = m−1
and when to-int(i) = 0.
Specifically, Equation (22) maps (i, k) ∈ {0, 1}1+log(m−1) × {0, 1}log n to 1 in the following two cases (otherwise
it maps (i, k) to 0):
• If to-int(i) = m − 1, j < t/2, and to-int(k) = (m − 1)t/2 + j.
• If to-int(i) = m − 1, j ≥ t/2, and to-int(k) = mt/2 + j.
This precisely matches the behavior of Equation (17) and (19) in these two cases.
Equation (23) maps (i, k) ∈ {0, 1}1+log(m−1) × {0, 1}log n to a non-zero value only in the following two cases:
• It maps (i, k) to −1 if to-int(i) = 0, j < t/2, and to-int(k) = j,
• It maps (i, k) to 1 if to-int(i) = 0, j < t/2, and to-int(k) = (m − 1)t/2 + j.
The first case “cancels” the +1 evaluation that Expression (21) takes when to-int(i) = 0, j < t/2 and
to-int(k) = j. The second case matches the behavior of Expression (18).
Evaluating Expressions (20)-(23) in logarithmic time. By Theorem 2 and Equation (9), the right
hand side of Equations (20)-(23) can be computed in time O(log(n) + log(m)) for any (i, (kr , kh , kc )) ∈
Flog(m) × Flog n .
Remark 11 (Handling periodic constraints). We sketch how SuperSpartan can support periodic AIR constraints
if desired. Suppose that an AIR constraint should be applied to rows i and i + 1 only if i is an integer multiple
of some designated power of 2, say 2η . One can still apply the AIR → CCS transformation of Lemma 3. In
the protocol for CCS of Figure 2, one can change Equation (15) to:
η−1
! q−1
Y XY X
g(a) := eq(τ,
e a) · (1 − a` ) fj (a, y) · Z(y)
M e (24)
`=0 i=0 j∈Si y∈{0,1}log n
Qη−1
Here, we have inserted the product `=0 (1 − a` ), which ensures that g(a) = 0 whenever a is the binary
representation of an integer that is not a multiple of 2η . The insertion of this product increases the proof size
and verifier time by at most η field elements and O(η) field operations.
20
Recall that the AIR → CCS transformation of Lemma 3 assumed there was only one AIR constraint, but that
any number of AIR constraints can be handled via the standard “random linear combination of constraints”
technique captured in Equation (8), which reduces k constraints g1 , . . . , gk to the following single constraint:
k−1
X
ri · gi .
i=0
If one or more AIR constraints are periodic, then we think of each AIR constraint gi as taking as input
log m extra variables (a1 , . . . , alog m ) corresponding to the “low-order” η bits of the “CCS row index”, and we
replace any periodic AIR constraint gi with period 2η with
η−1
!
Y
(1 − a` ) · gi .
`=0
The method described in Equation (24) above corresponds to this technique when there is just a single AIR
constraint (so no random linear combination of constraints is taken). An equivalent way to describe the
technique is to imagine that we apply the protocol of Figure 2 separately to each constraint g1 , . . . , gk (with
Equation (15) changed to (24) for any constraint with period η) but rather than applying the sum-check
protocol k separate times to k different polynomials, we apply the sum-check protocol just once, to a random
linear combination of the polynomials.
Costs of Phalanx. For β copies of R1CS with m × n matrices with at most N non-zero entries and ` public
inputs and outputs, the verifier’s work is O(N + log β) field operations plus the time to verify an evaluation
proof for a log (β · (n − ` − 1))-variate multilinear polynomial encoding β witnesses. If preprocessing is
allowed, which incurs O(N ) field and cryptographic operations, the verifier’s work drops to the cost of
verifying polynomial evaluation proofs for a constant number of O(log N )-variate committed multilinear
polynomials.
For proving input/output consistency checks, they describe an approach that either requires O(β · `) field
operations for the verifier, or the verifier incurs the cost of verifying a polynomial evaluation proof for a
committed O(log (β · `))-variate multilinear polynomial (the latter option requires a preprocessing work of
O(β · `) field and cryptographic operations).
SIMD CCS and SuperSpartan for SIMD CCS. There is a natural definition of SIMD CCS analogous
to SIMD R1CS. Furthermore, SuperSpartan can be extended to prove those instances. In addition, to
prove the input/output consistency checks, by using the fact that next g can be evaluated in logarithmic
time (Theorem 2), the verifier’s work is O(log (β · `)) without requiring any preprocessing—an exponential
improvement over Phalanx’s cost to verify input/output consistency without any preprocessing. We leave a
full description of these details to the near-term future work.
21
requires a polynomial commitment scheme that can efficiently handle sparse multilinear polynomials M fi ,
meaning that the time to commit to the polynomial and compute an evaluation proof is proportional to the
number of inputs x ∈ {0, 1}` for the appropriate value of `, such that M
fi (x) 6= 0. Here, we use the compiler
from Spartan [Set20], which transforms any of the multilinear polynomial commitment schemes listed in
Figure 3.1 into ones that meet this requirement.
The following theorem captures our result.
Theorem 3. Assuming that |F| = 2Θ(λ) there exists a family of preprocessing SNARKs for CCS with
efficiency characteristics depicted in Figures 3 and 4.
Proof. From applying [BFS20, Theorem 8] to the polynomial IOP for CCS in Theorem 1 using a sparse
polynomial commitment obtained by applying [GLS+ 21, Theorem 3] to polynomial commitment schemes
listed in Figure 3.1, there exists a public-coin interactive argument for RR1CS with witness-extended emulation.
Applying the Fiat-Shamir transform [FS86] to the public-coin interactive argument results in the claimed
SNARKs for CCS.
If the CCS instance is not uniform (Section 5) the verifier10 , in a preprocessing step, commits to t
(log(m) + log(n))-variate polynomials M
f0 , . . . , M
ft−1 that evaluate to a non-zero value at at most N lo-
log m+log(n)
cations over the Boolean hypercube {0, 1} .
The prover: (1) commits to a O(log n)-variate polynomial Z; e (2) participates in the sum-check protocol in the
polynomial IOP in Theorem 1 (which costs O(N + d · t · m + qtd log2 d) F-ops); (3) proves evaluations of the
(log n)-variate multilinear polynomial Z;e and (4) If the CCS instance is not uniform (Section 5) proves one
evaluation each of the t different (log m + log n)-variate multilinear polynomials M f0 , . . . , M
ft−1 committed
during the preprocessing step (each of these polynomials is evaluated at the same point (ra , ry ) ∈ Flog m ×Flog n
(see Figure 2). Note that many polynomial commitment schemes have effective batching procedures that
enable these t evaluations to be proven and verified with the same cost as a single evaluation to a single
committed polynomial.
The verifier to verify a proof: (1) participates in the sum-check protocol in the polynomial IOP in Theorem 1
(which costs O(d · q + d log m + log n) F-ops); (2) verifies the proofs of evaluations of one (log(n))-variate
committed multilinear polynomial; (3) If the CCS instance is uniform in the sense of Section 5, the verifier
evaluates M f0 , . . . , M
ft−1 on its on, each at a random point (ra , ry ), which by Section 5 can be done in
O(t · (log n + log m)) time. If the CCS instance is non-uniform, then the verifier checks the evaluation
proofs provided by the prover for each of M f0 (ra , ry ), . . . , M
ft−1 (ra , ry ) provided by the prover. Again, many
polynomial commitment schemes have effective batching procedures that enable these t evaluations to be
verified with the same cost as a single evaluation to a single committed polynomial.
Finally, the proof size is the sum of the proof sizes from the sum-check protocol in the polynomial IOP from
Theorem 1 and the evaluation proof sizes from polynomial commitment schemes.
22
commitment preprocessing time prover proof verifier
scheme time size time
√
Brakedown-PC O(N ) F O(N ) F √ O(tλ) H O(t N · λ) H
O(N ) H O(N ) H O( N · λ + d log m) F O(dq + d log m) F
Orion-PC O(N ) F O(N ) F O(tλ log2 N ) H O(tλ log2 N ) H
O(N ) H O(N ) H O(d log m) F O(dq + d log m) F
Dory-PC O(N ) G1 O(N ) G1 O(log N ) GT O(log N ) GT
O(d log m) F O(dq + d log m) F
KZG + Gemini O(N ) G1 O(N ) G1 O(log N ) G1 O(log N ) G1
O(d log m) F O(dq + d log m) F
Figure 3: SuperSpartan family of SNARKs for non-uniform instances of CCS. We obtain a separate SNARK for each
choice of the polynomial commitment scheme. The prover time listed is in addition to the O(N + tm + qmd log2 d) field
operations required to implement the two invocations of the sum-check protocol in SuperSpartan. The KZG+Gemini
commitment scheme also involves a trusted setup to produce an SRS of size O(N ). Recall that N denotes the number
of non-zero entries across all CCS matrices M0 , . . . , Mt−1 , m denotes the number of rows and n the number of columns
in each matrix, q denotes the number of multi-sets S0 , . . . , Sq−1 , and d denotes the maximum size of any multiset Si .
Figure 4: SuperSpartan family of SNARKs for uniform instances of CCS (e.g., those arising from the AIR → CCS
transformation of Lemma 3). We obtain a separate SNARK, one for each choice of the polynomial commitment
scheme. The prover time listed is in addition to the O(N + tm + qmd log2 d) field operations required to implement
the two invocations of the sum-check protocol in SuperSpartan. The KZG+Gemini commitment scheme also involves
a trusted setup to produce an SRS of size O(n). Recall that N denotes the number of non-zero entries across all CCS
matrices M0 , . . . , Mt−1 , m denotes the number of rows and n the number of columns in each matrix, q denotes the
number of multi-sets S0 , . . . , Sq−1 . and d denotes the maximum size of any multiset Si .
polynomial constraints). This is because SNARKs such as Marlin and Plonk have the prover commit to a
“quotient polynomial” whose degree grows with d, making it unattractive to use Plonk or SuperMarlin to
prove constraint systems with larger values of d (e.g., d > 5). Furthermore, the cryptographic costs for the
prover (and for pre-processing) in these SNARKs also grows with the number t of CCS constraint matrices
M0 , . . . , Mt−1 and the number of rows in these matrices.
The above prover cost profiles are in contrast to SuperSpartan (and Hyperplonk), where only the prover’s
finite field operations, and not the cryptographic operations, grows with the degree d. Moreover, in the case
of uniform CCS instances, SuperSpartan’s prover’s cryptographic work does not grow with the number of
constraint matrices t or the number of rows m, only with the number of columns n.
23
References
[AB09] Sanjeev Arora and Boaz Barak. Computational complexity: a modern approach. Cambridge
University Press, 2009.
[BBHR19a] Eli Ben-Sasson, Iddo Bentov, Yinon Horesh, and Michael Riabzev. Scalable zero knowledge with
no trusted setup. In Proceedings of the International Cryptology Conference (CRYPTO), 2019.
[BBHR19b] Eli Ben-Sasson, Iddo Bentov, Yinon Horesh, and Michael Riabzev. Scalable zero knowledge
with no trusted setup. In Alexandra Boldyreva and Daniele Micciancio, editors, Advances in
Cryptology - CRYPTO 2019 - 39th Annual International Cryptology Conference, Santa Barbara,
CA, USA, August 18-22, 2019, Proceedings, Part III, volume 11694 of Lecture Notes in Computer
Science, pages 701–732. Springer, 2019.
[BCCT12] Nir Bitansky, Ran Canetti, Alessandro Chiesa, and Eran Tromer. From extractable collision
resistance to succinct non-interactive arguments of knowledge, and back again. In Proceedings
of the Innovations in Theoretical Computer Science (ITCS), 2012.
[BCHO22] Jonathan Bootle, Alessandro Chiesa, Yuncong Hu, and Michele Orru. Gemini: Elastic snarks
for diverse environments. In Proceedings of the International Conference on the Theory and
Applications of Cryptographic Techniques (EUROCRYPT), 2022.
[BCR+ 19] Eli Ben-Sasson, Alessandro Chiesa, Michael Riabzev, Nicholas Spooner, Madars Virza, and
Nicholas P. Ward. Aurora: Transparent succinct arguments for R1CS. In Proceedings of
the International Conference on the Theory and Applications of Cryptographic Techniques
(EUROCRYPT), 2019.
[bel] bellman. https://crates.io/crates/bellman.
[BFL92] L. Babai, L. Fortnow, and C. Lund. Non-deterministic exponential time has two-prover interactive
protocols. 2(4), December 1992.
[BFR+ 13] Benjamin Braun, Ariel J. Feldman, Zuocheng Ren, Srinath Setty, Andrew J. Blumberg, and
Michael Walfish. Verifying computations with state. In Proceedings of the ACM Symposium on
Operating Systems Principles (SOSP), 2013.
[BFS20] Benedikt Bünz, Ben Fisch, and Alan Szepieniec. Transparent SNARKs from DARK compilers.
In Proceedings of the International Conference on the Theory and Applications of Cryptographic
Techniques (EUROCRYPT), 2020.
[BGtRZt23] Jeremy Bruestle, Paul Gafni, and the RISC Zero team. RISC Zero
zkVM: Scalable, Transparent Arguments of RISC-V. 2023. Available at
https://www.risczero.com/proof-system-in-detail.pdf.
[BSCKL23] Eli Ben-Sasson, Dan Carmon, Swastik Kopparty, and David Levit. Scalable and transparent
proofs over all large fields, via elliptic curves: (ECFFT Part II). In Theory of Cryptography: 20th
International Conference, TCC 2022, Chicago, IL, USA, November 7–10, 2022, Proceedings,
Part I, pages 467–496. Springer, 2023.
[BSS08] Eli Ben-Sasson and Madhu Sudan. Short PCPs with polylog query complexity. SIAM J. Comput.,
38(2):551–607, May 2008.
[CBBZ23] Binyi Chen, Benedikt Bünz, Dan Boneh, and Zhenfei Zhang. Hyperplonk: Plonk with linear-time
prover and high-degree custom gates. In Proceedings of the International Conference on the
Theory and Applications of Cryptographic Techniques (EUROCRYPT), 2023.
[CHM+ 20] Alessandro Chiesa, Yuncong Hu, Mary Maller, Pratyush Mishra, Noah Vesely, and Nicholas
Ward. Marlin: Preprocessing zkSNARKs with universal and updatable SRS. In Proceedings
of the International Conference on the Theory and Applications of Cryptographic Techniques
(EUROCRYPT), 2020.
24
[COS20] Alessandro Chiesa, Dev Ojha, and Nicholas Spooner. Fractal: Post-quantum and transparent
recursive proofs from holography. In Proceedings of the International Conference on the Theory
and Applications of Cryptographic Techniques (EUROCRYPT), 2020.
[CTY12] Graham Cormode, Justin Thaler, and Ke Yi. Verifying computations with streaming interactive
proofs. Proceedings of the VLDB Endowment, 5(1):25, 2012.
[FS86] Amos Fiat and Adi Shamir. How to prove yourself: Practical solutions to identification and
signature problems. In Proceedings of the International Cryptology Conference (CRYPTO),
pages 186–194, 1986.
[GGPR13] Rosario Gennaro, Craig Gentry, Bryan Parno, and Mariana Raykova. Quadratic span programs
and succinct NIZKs without PCPs. In Proceedings of the International Conference on the Theory
and Applications of Cryptographic Techniques (EUROCRYPT), 2013.
[GLS+ 21] Alexander Golovnev, Jonathan Lee, Srinath Setty, Justin Thaler, and Riad S. Wahby. Brakedown:
Linear-time and post-quantum snarks for r1cs, 2021.
[GPR21] Lior Goldberg, Shahar Papini, and Michael Riabzev. Cairo–a turing-complete stark-friendly cpu
architecture. Cryptology ePrint Archive, 2021.
[Gro16] Jens Groth. On the size of pairing-based non-interactive arguments. In Proceedings of the Interna-
tional Conference on the Theory and Applications of Cryptographic Techniques (EUROCRYPT),
2016.
[GW11] Craig Gentry and Daniel Wichs. Separating succinct non-interactive arguments from all falsifiable
assumptions. In Proceedings of the ACM Symposium on Theory of Computing (STOC), pages
99–108, 2011.
[GW20] Ariel Gabizon and Zachary J Williamson. plookup: A simplified polynomial protocol for lookup
tables. 2020.
[GWC19] Ariel Gabizon, Zachary J. Williamson, and Oana Ciobotaru. PLONK: Permutations over
Lagrange-bases for oecumenical noninteractive arguments of knowledge. ePrint Report 2019/953,
2019.
[Kil92] Joe Kilian. A note on efficient zero-knowledge proofs and arguments (extended abstract). In
Proceedings of the ACM Symposium on Theory of Computing (STOC), 1992.
[KR08] Yael Tauman Kalai and Ran Raz. Interactive PCP. In Proceedings of the International
Colloquium on Automata, Languages and Programming (ICALP), pages 536–547, 2008.
[KST22] Abhiram Kothapalli, Srinath Setty, and Ioanna Tzialla. Nova: Recursive Zero-Knowledge
Arguments from Folding Schemes. In Proceedings of the International Cryptology Conference
(CRYPTO), 2022.
[KZG10] Aniket Kate, Gregory M. Zaverucha, and Ian Goldberg. Constant-size commitments to polyno-
mials and their applications. In Proceedings of the International Conference on the Theory and
Application of Cryptology and Information Security (ASIACRYPT), pages 177–194, 2010.
[LFKN90] Carsten Lund, Lance Fortnow, Howard Karloff, and Noam Nisan. Algebraic methods for
interactive proof systems. In Proceedings of the IEEE Symposium on Foundations of Computer
Science (FOCS), October 1990.
[LNS20] Jonathan Lee, Kirill Nikitin, and Srinath Setty. Replicated state machines without replicated
execution. In Proceedings of the IEEE Symposium on Security and Privacy (S&P), 2020.
[Mic94] Silvio Micali. CS proofs. In Proceedings of the IEEE Symposium on Foundations of Computer
Science (FOCS), 1994.
[OWB20] Alex Ozdemir, Riad S. Wahby, and Dan Boneh. Scaling verifiable computation using efficient
set accumulators, 2020.
25
[PGHR13] Bryan Parno, Craig Gentry, Jon Howell, and Mariana Raykova. Pinocchio: Nearly practical
verifiable computation. In Proceedings of the IEEE Symposium on Security and Privacy (S&P),
May 2013.
[PST13] Charalampos Papamanthou, Elaine Shi, and Roberto Tamassia. Signatures of correct computa-
tion. In Theory of Cryptography Conference (TCC), 2013.
[SAGL18] Srinath Setty, Sebastian Angel, Trinabh Gupta, and Jonathan Lee. Proving the correct execution
of concurrent services in zero-knowledge. In Proceedings of the USENIX Symposium on Operating
Systems Design and Implementation (OSDI), October 2018.
[SBV+ 13] Srinath Setty, Benjamin Braun, Victor Vu, Andrew J. Blumberg, Bryan Parno, and Michael
Walfish. Resolving the conflict between generality and plausibility in verified computation. In
Proceedings of the ACM European Conference on Computer Systems (EuroSys), April 2013.
[Set20] Srinath Setty. Spartan: Efficient and general-purpose zkSNARKs without trusted setup. In
Proceedings of the International Cryptology Conference (CRYPTO), 2020.
[SL20] Srinath Setty and Jonathan Lee. Quarks: Quadruple-efficient transparent zkSNARKs. Cryptology
ePrint Archive, Report 2020/1275, 2020.
[Sta21] StarkWare. ethSTARK Documentation. Cryptology ePrint Archive, Paper 2021/582, 2021.
https://eprint.iacr.org/2021/582.
[SVP+ 12] Srinath Setty, Victor Vu, Nikhil Panpalia, Benjamin Braun, Andrew J. Blumberg, and Michael
Walfish. Taking proof-based verified computation a few steps closer to practicality. In Proceedings
of the USENIX Security Symposium, August 2012.
[Tha13] Justin Thaler. Time-optimal interactive proofs for circuit evaluation. In Proceedings of the
International Cryptology Conference (CRYPTO), 2013.
[Tha20] Justin Thaler. Proofs, arguments, and zero-knowledge. http://people.cs.georgetown.edu/
jthaler/ProofsArgsAndZK.html, 2020.
[TKPS22] Ioanna Tzialla, Abhiram Kothapalli, Bryan Parno, and Srinath Setty. Transparency dictionaries
with succinct proofs of correct operation. In Proceedings of the Network and Distributed System
Security Symposium (NDSS), 2022.
[WJB+ 17] Riad S. Wahby, Ye Ji, Andrew J. Blumberg, Abhi Shelat, Justin Thaler, Michael Walfish, and
Thomas Wies. Full accounting for verifiable outsourcing. In Proceedings of the ACM Conference
on Computer and Communications Security (CCS), 2017.
[WSR+ 15] Riad S. Wahby, Srinath Setty, Zuocheng Ren, Andrew J. Blumberg, and Michael Walfish.
Efficient RAM and control flow in verifiable outsourced computation. In Proceedings of the
Network and Distributed System Security Symposium (NDSS), 2015.
[WTS+ 18] Riad S. Wahby, Ioanna Tzialla, Abhi Shelat, Justin Thaler, and Michael Walfish. Doubly-efficient
zkSNARKs without trusted setup. In Proceedings of the IEEE Symposium on Security and
Privacy (S&P), 2018.
[XZS22] Tiancheng Xie, Yupeng Zhang, and Dawn Song. Orion: Zero knowledge proof with linear prover
time. In Proceedings of the International Cryptology Conference (CRYPTO), 2022.
[ZGK+ 17] Yupeng Zhang, Daniel Genkin, Jonathan Katz, Dimitrios Papadopoulos, and Charalampos
Papamanthou. vSQL: Verifying arbitrary SQL queries over dynamic outsourced databases. In
Proceedings of the IEEE Symposium on Security and Privacy (S&P), 2017.
[ZXZS20] Jiaheng Zhang, Tiancheng Xie, Yupeng Zhang, and Dawn Song. Transparent polynomial
delegation and its applications to zero knowledge proof. In Proceedings of the IEEE Symposium
on Security and Privacy (S&P), 2020.
26
A SuperMarlin
In this section, we sketch a variant of Marlin [CHM+ 20] that applies to CCS. Our presentation borrows
substantially from the presentation of Marlin for R1CS in [Tha20, Chapter 10].
For simplicity, we assume that the number of rows m and columns n in the CCS matrices M0 , . . . , Mt−1 are
equal. We also assume that there is a multiplicative subgroup H of F of size exactly n (say, H is the set of
all n’th roots of unity, so that the so-called vanishing polynomial for H is ZH (x) = xn − 1. This polynomial
maps all entries of H to 0 and no other entries of F to 0.
For M0 , . . . , Mt let zMi denote Mi · z, which is a vector in Fn , and let ẑMi be the associated univariate
low-degree extension polynomial. That is, indexing the n entries of ẑMi by the n elements of H using any
natural bijection, ẑMi is the unique polynomial of degree at most n − 1 such that ẑMi (h) = (zMi )h for all
h ∈ H.
We describe the protocol as a polynomial IOP, whereby each message from prover to verifier specifies a
univariate polynomial of degree at most O(n). In the associated SNARK, the prover will commit to each such
polynomial with a polynomial commitment scheme, and each time the verifier needs to evaluate a committed
polynomial at a point, the prover will provide the evaluation along with a proof that the returned evaluation
is consistent with the committed polynomial.
q−1
X
ci · j∈Si Mj · z = 0, (25)
i=0
Second: X
for all h ∈ H, and i = 0, . . . , t − 1, ẑMi (h) = Mh,j · ẑ(j). (27)
j∈H
Equation (27) ensures that for each i = 0, . . . , t − 1, zMi = Mi · z. Assuming this to be so, Equation (26)
confirms that Equation (25) holds.
The prover sends t degree-n polynomials ẑ, ẑM0 , . . . , ẑMt−1 , the (univariate) low-degree extensions of z and
zM0 , . . . , zMt−1 .
Checking Equation (26). A standard fact (see [BSS08], or [Tha20, Lemma 9.3] for an exposition) implies
that the first check is equivalent to the existence of a polynomial h∗ of degree at most d · n such that
q−1
X Y
ci · ẑMi (X) = h∗ (X) · ZH (X). (28)
i=0 j∈Si
The prover sends the quotient polynomial h∗ . The verifier probabilistically checks that Equation (28) holds
by choosing a random r ∈ F and confirming that
q−1
X Y
ci · ẑMi (r) = h∗ (r) · ZH (r). (29)
i=0 j∈Si
27
This requires querying the committed polynomials ẑM0 , . . . , ẑMt−1 and h∗ at r; the verifier can evaluate ZH (r)
on its own in logarithmic time because ZH (r) is sparse. Since all of the messages sent by the prover are
polynomials of degree at most n − 1, up to soundness error 2n/|F| over the choice of r, if Equation (29) holds
at r then it is safe for the verifier to believe that Equation (28) holds, and hence also Equation (26).
Checking Equation (27). The check that Expression (27) holds leverages interaction. Fix Mi for some
i = 0, . . . , t = 1 for the remainder of the paragraph. Let M̂i (X, Y ) denote the bivariate low-degree extension
of the matrix M , interpreted in the natural manner as a function Mi (x, y) : H × H → F via Mi (x, y) = Mx,y .
That is, M̂i (x, y) is the unique bivariate polynomial of degree at most n in each variable that extends Mi .
Since ẑMi is the unique extension of zMi of degree less than n, it is easily seen that Equation (27) holds for
all h ∈ H if and only if the following equality holds as formal polynomials:
X
ẑMi (X) = M̂i (X, j)ẑ(j). (30)
j∈H
Since any two distinct polynomials of degree at most n can agree on at most n inputs, if the verifier chooses
r0 at random from F, then up to soundness error n/|F| over the choice of r0 , Equation (27) holds if and only if
X
ẑMi (r0 ) = M̂ (r0 , j)ẑ(j). (31)
j∈H
The verifier checks Equation (31) by sending r0 to the prover and proceeding as follows. Let
q(Y ) = M̂i (r0 , Y )ẑ(Y ) − ẑMi (r0 ) · |H|−1 ,
P
so that the validity of Equation (31) is equivalent to j∈H q(Y ) = 0. The verifier requests that the prover
establish that j∈H q(Y ) = 0 by applying the so-called univariate sum-check protocol [BCR+ 19] (see [Tha20,
P
Chapter 10] for an exposition).
At the end of the univariate sum-check protocol applied to q, the verifier needs to evaluate q at a randomly
chosen point r00 . Clearly this can be done in a constant number of field operations if the verifier is given
ẑ(r00 ), ẑMi (r0 ), and M̂i (r0 , r00 ). The first two evaluations, ẑ(r00 ) and ẑMi (r0 ), can be obtained with one query
each to the polynomials ẑ and ẑMi .
Our description above omits two details: how the univariate sum-check protocol works, and how the bivariate
polynomials M̂i (X, Y ) can be committed by an honest party in pre-processing, and evaluation proofs computed,
in time proportional to the number of non-zero entries rather than the total number of entries (i.e., a sparse
polynomial commitment scheme for bivariate polynomials under the assumption that the commitment
is computed honestly). We direct the interested reader to Marlin [CHM+ 20] or [Tha20, Chapter 10] for
details of both. Various concrete optimizations are also possible, using, e.g., efficient batching properties of
evaluation queries to polynomials committed with homomorphic polynomial commitment schemes such as
KZG commitments [KZG10].
28
Definition B.1 (CCS+). A CCS+ structure S consists of:
• size bounds m, n, N, `, t, q, d ∈ N where n > `;
• a sequence of matrices M0 , . . . , Mt−1 ∈ Fm×n with at most N = Ω(max(m, n)) non-zero entries in total;
• a sequence of q multisets [S0 , . . . , Sq−1 ], where an element in each multiset is from the domain
{0, . . . , t − 1}
We now discuss modifications to SuperSpartan’s polynomial IOP. In the first message sent by the prover in
SuperSpartan’s polynomial IOP, in addition to the witness polynomial w, e the prover sends a polynomial e a
claimed to be the MLE of the vector ML · z, where z = (w, 1, x). The prover and the verifier use an invocation
of the sum-check protocol to check that the claimed relationship ML · z = a indeed holds. SuperSpartan+’s
polynomial IOP then invokes the polynomial IOP for lookup operations to confirm that entries in a are
contained in the table T . Completeness and soundness follow from the completeness and soundness of the
sum-check protocol and of the polynomial IOP for lookup operations.
29