Boosting SNARKs and Rate-1 Barrier in Arguments of Knowledge
Abstract
We design a generic compiler to boost any non-trivial succinct non-interactive argument of knowledge (SNARK) to full succinctness. Our results come in two flavors:
-
1.
For any constant , any SNARK with proof size can be upgraded to a fully succinct SNARK, where all system parameters (such as proof/CRS sizes and setup/verifier run-times) grow as fixed polynomials in , independent of witness size.
-
2.
Under an additional assumption that the underlying SNARK has as an efficient knowledge extractor, we further improve our result to upgrade any non-trivial SNARK. For example, we show how to design fully succinct SNARKs from SNARKs with proofs of length , or , any constant .
Our result reduces the long-standing challenge of designing fully succinct SNARKs to designing arguments of knowledge that beat the trivial construction. It also establishes optimality of rate-1 arguments of knowledge (such as NIZKs [Gentry-Groth-Ishai-Peikert-Sahai-Smith; JoC’15] and BARGs [Devadas-Goyal-Kalai-Vaikuntanathan, Paneth-Pass; FOCS’22]), and suggests any further improvement is tantamount to designing fully succinct SNARKs, thus requires bypassing established black-box barriers [Gentry-Wichs; STOC’11].
Keywords and phrases:
SNARGs, RAM DelegationCategory:
Track A: Algorithms, Complexity and GamesFunding:
Rishab Goyal: Support for this research was provided by OVCRGE at UW-Madison with funding from the Wisconsin Alumni Research Foundation.Copyright and License:
![[Uncaptioned image]](x1.png)
2012 ACM Subject Classification:
Theory of computation Computational complexity and cryptographyEditors:
Keren Censor-Hillel, Fabrizio Grandoni, Joël Ouaknine, and Gabriele PuppisSeries and Publisher:

1 Introduction
Succinct non-interactive arguments, commonly called SNARGs, are a central object in both theory and practice of numerous cryptographic systems today. Informally speaking, a SNARG for an language is an argument111In an argument system [11], soundness is only guaranteed against polynomial-time cheating provers. system that creates a short membership proof for any instance , given a corresponding witness . In the study of SNARGs, a highly desirable goal is to achieve full succinctness for non-trivial languages. That is, design membership proofs that are of fixed polynomial size and can be verified in fixed polynomial time, independent of witness size, , and the time taken to verify given . Applications of SNARGs are well spread across the literature [41] and even extend to popular systems such as blockchains [4].
Since early 90s, starting with seminal works of Kilian [32] and Micali [35], we have known that SNARGs are indeed realizable for although in the idealized random oracle model [3]. Over the last decade, many more succinct SNARG schemes have been designed [6, 7, 22, 39, 23, 8, 5], however these rely on non-falsifiable assumptions [36]222The SNARG construction by Sahai-Waters [39] relies on indistinguishability obfuscation [2], which is also a non-falsifiable assumption [21]. Although, obfuscation is known to be instantiable from -hardness of standard cryptographic hardness assumptions [25]. A longstanding open problem in this area has been to design SNARGs for in the standard model while reducing security to standard and falsifiable cryptographic assumptions. As it currently stands, only a handful constructions [10, 30, 1, 26, 16, 28, 9, 37, 27] for SNARGs have been designed from falsifiable assumptions in the standard model, despite over thirty years of research. All these constructions support proving membership only for a subclass of .
The reason for such a huge disparity between provable SNARG constructions from non-falsifiable and standard cryptographic assumptions was studied in the seminal work of Gentry-Wichs [20]. The Gentry-Wichs result states that we cannot design SNARGs for all of , while reducing their security to any falsifiable assumption via a polynomial-time “black-box reduction”.
In a black-box reduction, the reduction algorithm is only allowed to make “oracle” queries to a successful attacker, and it must break the underlying assumption without any additional description about the attacker. That is, a black-box reduction can not access the description of an attacker’s code, but only gets to see input/output behavior. In a non-black-box reduction, however, the reduction gets full access to the attacker, and can use the attacker’s code arbitrarily. Given most security proofs in modern cryptography typically only make black-box use of an attacker, thus this explains why SNARGs for have been such an elusive target.
Gentry-Wichs also proved that designing slightly-succinct333Briefly, slight succinctness states the proof size is sublinear in the statement and witness length (i.e., ). SNARGs also suffers from the same black-box reduction barriers. In this work, we study the following question:
Is bypassing this barrier for slightly-succinct SNARGs enough to bypass the barrier for fully-succinct SNARGs, the “gold-standard” succinctness?
In other words, we do not know whether designing fully-succinct SNARGs is much harder than designing slightly-succinct SNARGs. It is conceivable that there is a hierarchy of black-box barriers between SNARGs with differing levels of succinctness.
This work.
We answer the above question affirmatively. We design a new bootstrapping compiler to upgrade any slightly-succinct SNARG into a fully-succinct SNARG, as long as the SNARG satisfies knowledge soundness (i.e., it is a SNARK).
Throughout the sequel, when we write the SNARK proof system is -mild (for any ), then we mean that the proof size is factor smaller than the witness length (i.e., ). Moreover, we do not put any other succinctness/efficiency requirements on any other component of the proof system. For example, the CRS size could grow polynomially with the witness length or the circuit size of membership circuit. Concretely, we show:
Theorem 1 (Informal, see Corollary 16).
For any constant . Assuming RAM delegation, any -mild SNARK for can be turned into a fully-succinct SNARK for .
Moreover, if we additionally assume that the underlying SNARK has a fast extractor, then we can perform bootstrap even “milder” SNARKs. We say a -mild SNARK has a fast extractor, if the extractor’s running time is at most a multiplicative factor larger than the adversary’s running time. E.g., if is a constant, then the fast extractor’s running time is at most a constant times more than adversary’s running time. Concretely, we show.
Theorem 2 (Informal, see Corollary 17).
For any . Assuming RAM delegation, any -mild SNARK for with fast extractors can be turned into a fully-succinct SNARK for .
Combining above theorems with great recent progress on designing RAM delegation [15, 16, 24, 42, 28], we obtain:
Corollary 3 (Informal).
Assuming either , or , or sub-exponential , any -mild SNARK for can be boosted to a fully-succinct SNARK for , as long as , or it has a fast extractor.
Discussion and interpreting our results
The above suggests that designing any non-trivial SNARG for with knowledge soundness is sufficient to design a fully-succinct SNARG for with knowledge soundness. Thus, a natural interpretation is that overcoming the Gentry-Wichs barrier for just non-trivial succinctness is enough to settle the fully-succinct SNARK problem, and there are no further technical barriers beyond designing non-trivial SNARKs.
Our result can also be viewed as a mild strengthening of Gentry-Wichs. As, by combining our results with [20], we can rule out existence of non-trivial SNARKs with poly-time black-box reduction to falsifiable assumptions. Currently, [20] only rules out slightly-succinct arguments, i.e. , but we can rule out any with fast extractors.
Another interpretation is that known constructions for various rate-1 arguments of knowledge (such as zero-knowledge, or batch arguments) are essentially optimal, and any further improvement is tantamount to designing fully-succinct SNARKs, thus bypassing [20]. That is, rate-1 NIZK [19] and rate-1 (se)BARGs [18, 38] are best possible arguments of knowledge, with a polynomial-time black-box reduction to falsifiable assumptions.
Finally, we remark that while our approach relies on a careful recursive extraction technique, our security reduction is oblivious to black-box or non-black-box nature of mild SNARK extractor. Although Campanelli et al. [12] proved impossibility of black-box extraction for adaptive knowledge soundness in the standard model, black-box extraction is possible in non-standard models. Thus, if a mild SNARK extractor needs black-box/non-black-box access to the cheating prover in the standard/non-standard model, then so does our fully-succinct SNARK extractor.
2 Technical Overview
A SNARK is a non-interactive proof system that allows a prover to convince the validity of a statement to a verifier, by providing a proof whose length is shorter than the witness length, . They are typically defined in the common reference string model. Given the , a prover processes a pair of instance-witness pair to produce a short proof . The verifier, on input , and , outputs a bit to signal validity of proof. The standard notion of soundness states that a (polynomial-time) cheating prover, given , cannot find a instance-proof pair such that the verifier accepts, yet is invalid. In this work, we rely on the stronger knowledge soundness property. It states that there exists an efficient extractor that can extract a valid witness from a cheating prover, given the instance , proof , and the cheating prover’s algorithm .
Defining succintness in SNARKs
If we allow proof size to be as large as the witness, then a SNARK can be trivially designed. Simply, set the proof . Thus, succinctness is an essential property for SNARKs. To capture a meaningful notion of succinctness, we define the notion of -mildness to capture any non-trivial SNARK. We consider to be a function of security parameter , instance length , and witness length . In words, the proofs generated by a -mild SNARK are (aymptotically) -multiplicative-factor shorter than the witness length, . Formally, we say a SNARK is -mild, iff it satisfies the following:
Note that any non-trivial SNARK is a -mild SNARK, for some . Similarly, a fully-succinct SNARK corresponds to a -mild SNARK (i.e., )444Technically, a SNARK is fully-succinct if , and does not grow with . However, by the folklore hash-and-prove paradigm, a SNARK with can be easily turned into SNARK with . with an additional property that is also a fixed polynomial in , and does not scale with or .
In words, we define -mild SNARKs to capture the most general notion of non-trivial SNARKs, as we only require their proof size to be non-trivially smaller than witness length, but do not put any constraints on the CRS size or verification runtime, etc. The rest of the technical overview is divided into three parts, covering all our main results:
-
1.
Assuming RAM delegation, any -mild SNARK can be upgraded to have short CRS.
-
2.
Any -mild SNARK with short CRS can be boosted to a fully-succinct SNARK for RAM, for any constant .
-
3.
Any -mild SNARK with -fast extractors can be boosted to -mild SNARK, as long as and for some constant .
2.1 Shortening CRS in SNARKs via RAM Delegation
The first step of our generic compiler is to design a mild SNARK with a short CRS, where its size does not grow with the classical verification but only instance and witness lengths. As we will see in the next stages of our compiler, starting with mild SNARKs with short CRS is extremely useful for iterative compositions. Towards the goal of shortening CRS, our main observation is that it suffices to compose a mild SNARK (with an extremely long CRS) with a fully-succinct SNARG for .
A SNARG for , more commonly regarded as RAM delegation [29, 10, 16, 14], is a proof system that lets a prover generate short proofs of correctness for deterministic computation. Thus, syntactically, they are defined same as general SNARK(G)s, except the witness is always empty. That is, a prover only takes and as inputs, and to verify , a verifier needs both and . The special property of (fully-succinct) RAM delegation is that and verification time grows only poly-logarithmically with . Here is the time taken to run the RAM machine (i.e., the membership circuit) on . Clearly, knowledge soundness and standard soundness notions are the same for RAM delegation, since the witness is empty.
The idea for composing mild SNARKs with RAM delegation is very simple. Given any -mild SNARK that lacks a short CRS, rather than asking the prover to prove validity of by using as a witness, ask the prover to prove validity of by using and as a witness. That is, a prover first computes a RAM proof as . Next, it creates a mild SNARK proof for instance to prove that it knows such that . By relying on succinctness of RAM delegation, we can improve the CRS size for -mild SNARK from to , where is the membership circuit for language associated with . This is because the CRS size and verification time for RAM delegation only grows poly-logarithmically with . Moreover, this transformation preserves knowledge soundness as well as -mildness of underlying SNARKs. For completeness, we provide this formally in Section 5.
An exciting line of recent works [15, 16, 31, 24, 42, 18, 38, 28] have designed RAM delegation from a variety of standard falsifiable assumptions such as LWE, -LIN, or sub-exponential DDH. Morover, Kalai et al. [28] established a fantastic result about boosting any non-trivial RAM delegation (with fast verification) to fully-succinct RAM delegation, under the existence of rate-1 string OT (known under many standard assumptions). Thus, we view short CRS as a very mild assumption for non-trivial SNARKs.
2.2 Fully-succinct SNARKs from -mild SNARKs
The next step of our work is to design a generic compiler for boosting any -mild SNARK to a fully-succinct SNARK, for any constant . Given that a mild-SNARK can be viewed as a mechanism to compress a witness into a verifiable encoding , a natural idea is to iteratively compose -mild SNARKs many times until we reach desired compression.
Specifically, let be the circuit that verifies the language for which we want to design a SNARK, and be the corresponding instance-witness lengths. The process begins by initializing as the circuit for the language , and sampling as the CRS for the mild SNARK corresponding to the circuit . Next, we (iteratively) sample many CRS for the (iteratively) defined languages , where the circuit (corresponding to ) is set as the verification circuit for the mild SNARK corresponding to . That is, has hardwired, and it accepts an instance if there exists a mild SNARK proof such that is a valid proof-witness pair w.r.t. . Given , a prover can create a fully-succinct proof by iteratively running the mild SNARK prover as follows – first, generate as a SNARK proof for under using as witness; next, generate as a SNARK proof for under using as witness; and so on, until the proof size is below a fixed threshold.
Whenever , then after about iterative applications of a mild SNARK prover, we obtain a proof of size at most . This achieves the desired goal of full-succinctness. Unfortunately, the above template doesn’t work!
CRS generation takes too long!
Recall that a -mild SNARK only guarantees that the proof size, , is smaller than , but it does not say anything about other parameters or algorithms. Thus, it is possible that CRS size and/or the verifier’s running time is greater than , or the time taken to check . In such scenarios, we cannot efficiently generate the full CRS. This is because, under , the prover proves that it has a mild SNARK proof for w.r.t. . Thus, the language membership circuit (for ) is the verification circuit (w.r.t. to ), and hence would grow with and super-polynomially with .
A shorter CRS helps?
Recall that we already discussed how one can generically reduce the CRS size (as well as time needed to compute it) to only grow poly-logarithmically with . Isn’t that enough to ensure the above template works? Unfortunately, the answer is no! This is because RAM delegation only brings down CRS size from to . But, for full-succinctness, our goal is to have the CRS size (as well as verification time) to grow only poly-logarithmically with . Thus, the question is how can we compose mild SNARKs such that verification time and CRS size does not grow with or ?
Tree-based composition
Our idea is to switch an iterative straightline composition of SNARKs with an iterative, but tree-based, composition of SNARKs. Broadly speaking, the intuition is similar to how composing hash functions in a tree-based fashion [33] is more efficient than a straightline iterated hashing approach [34, 17].A similar issue was faced by Bitansky et al. [7] in the context of designing Proof Carrying Data (PCD) [13] and complexity-preserving SNARKs. Although Bitansky et al. assumed existence of a fully-succinct SNARK (which is what we want to design here), the underlying technical approach is more general. Our intuition is that a similar approach is quite meaningful for boosting non-trivial SNARKs.
In order to correctly implement such an idea, we need to break down the entire computation needed to verify , given , into smaller pieces. Otherwise, tree-based composition will not give desired amount of succinctness/compression. Basically, by interpreting the entire computation of as a step-by-step computation in the RAM model, we can ensure that the size of computation for which we will use mild SNARKs is of fixed size. That is, let be the configuration of the RAM machine, corresponding to , where is the total running time. (A RAM machine configuration corresponds to the RAM memory, program state, and machine head at given time step.)
A prover runs a mild SNARK prover, at the base level of the tree, to prove that each step of the computation is correctly performed, i.e. (here by “” we denote one RAM computation step). Further, it accumulates these proofs iteratively (as we go up the tree) by running a mild SNARK prover to prove that two configurations are consistent. By consistent, we mean that we can go from after RAM computation steps. The intuition is that base level (i.e., level 0) we prove the configurations to be adjacent (i.e., 1 step apart), while for next level (i.e., level 1) we prove are steps apart, and so on. Thus, at level , we prove the configurations to be steps apart. By continuously composing SNARKs for such step-by-step computations in a tree-based fashion, we can get around the succinctness problem. This is because the instance and witness size, for each mild SNARK proof computation, are always of fixed polynomial size, independent of as well as the level . Thus, the CRS size doesn’t grow anymore, and the resulting SNARK will be fully-succinct.
How to extract the witness in polynomial time?
Unfortunately, the above process brings up a major bottleneck. The problem is how to prove (knowledge) soundness of the above design? Soundness only states that (proof at the base level) is hard to compute if . But, it does not say any of the iteratively computed proofs are hard to compute! Thus, we cannot rely on standard soundness, but need to use knowledge soundness. But this would mean we have to recursively run the extractor many times. Unfortunately, such a recursive extractor would not run in polynomial time, since the depth of the tree is .
While the above feels a pretty big problem, this can be easily resolved by simply increasing the arity of the tree (from to ). That is, rather than proving the configurations to be steps apart (at level ), we will prove configurations to be steps apart. With this change, the depth of the SNARK tree will be constant, (for any polynomial time computation). Thus, we can perform recursive extraction from any accepting proof, given a poly-time cheating prover. With this modification, we provide a more detailed sketch.
Boosting via SNARK tree
From here on, we assume we have a description of a RAM program that verifies validity of instance-witness pair , rather than a fixed circuit . checks that validity of witness for an instance w.r.t. .
The prover starts by computing all configurations for every computation step, and hashing down just the RAM memory portion for each step using a Merkle hash tree [33]. At the bottom level, the instance at each node consists of two consecutive pseudo-configurations , where is the memory digest, is the program state, and is the index of the bit read during that step (i.e., machine head location). We call this pseudo-configuration, because it only contains the digest of the memory instead of full memory. The witness includes the local read/write bit and the write index , which can be used to verify the transition between the two configurations. It also includes the Merkle tree openings for the read/write bits w.r.t. memory digest. Given the above, the language for the nodes at bottom level is as follows:
Instance: , .
Witness: .
Check if the transition is valid, and the hash openings and , along with the memory hash values , the bits , and memory indexes are all consistent.
At all other levels, each node aggregates nodes from the lower level (see Figure 1). The instance contains just two pseudo-configurations: the initial and final pseudo-configuration out of the nodes. And, the witness includes all pseudo-configurations and their corresponding SNARK proofs of transitions. Basically, the prover proves that it knows a valid sequence of transitions between the two pseudo-configurations. Below, we describe the language for intermediate levels informally:
Instance: , .
Witness: , .
Check if the mild SNARK verifier accepts every pair of instance and proof for .
We highlight that all above languages have succinct description since the instance/witness sizes as well as size of the associated membership circuit for each language has a fixed polynomial size. Thus, this process can be iteratively carried out till the root of the tree. And, it ensures each individual CRS as well as the final proof size to be fully-succinct, i.e. independent of .
Lastly, we can design a recursive extractor efficiently to prove knowledge soundness. The extractor first extracts a valid witness for the root node, and then it considers the extraction procedure that computes a valid witness for the root node as an attacker, and continues the recursive extraction procedure. Overall, by combining all the witnesses at the bottom level (leaves of the tree), the extractor can reconstruct a valid witness that satisfies the RAM computation. (Technically, the security argument also relies on the fact that the Merkle tree is secure, but we ignore that detail for the sake of simplicity.) Clearly, the running time of extractor faces a polynomial blow-up across each level of the tree (as the level extractor is treated as an attacker for level). However, as we discussed earlier, by designing trees with arity-, the height of the SNARK tree remains constant, and as a result, the extractor’s runtime is polynomially bounded. Our compiler is formally presented in Section 3.
2.3 Boosting milder SNARKs
As a final step, we also show a generic compiler to boost any non-trivial SNARK, i.e., with any mildness parameter . However, unlike our previous compiler, we require an additional property from the underlying SNARK. To better understand this, let us first inspect what goes wrong if we simply use the previous compiler for such “milder” SNARKs.
Consider for some constant . To boost such a SNARK, we need a SNARK tree of depth around , where is the running time of the (non-deterministic) computation. Recall this is exactly the scenario where the recursive extraction strategy fails! This is precisely whe we considered trees of larger arity, to ensure the tree depth is constant. Unfortunately, if the underlying SNARKs mildness is lower than , then we can no longer guarantee that a constant number of iterative SNARK compositions will be enough for achieving full-succinctness.
Our intuition is that if the extractor runs “sufficiently fast”, then this issue goes away. Thus, to resolve this issue, we introduce a notion of -mild SNARKs with fast extractors. Roughly, it says that the ratio between the extractor’s running time and the cheating prover’s running time is asymptotically equal to . More formally, a -mild SNARK has a fast extractor if the extractor’s runtime is . For such mild SNARKs, we can use our boosting compiler to design a fully-succinct SNARK by relying on -depth SNARK tree.
Although one could simply the above approach, we provide an alternate approach. Basically, we show that any -mild SNARK, with a fast extractor , can be generically boosted to a -mild SNARK, with an extractor that runs in polynomial time. Very briefly, our approach is to compose such mild-SNARKs in a straightline iterated fashion. Note that this will be sufficient since our final goal is not to achieve a short CRS, but only a -mild SNARK. This can be further boosted to full-succinctness by using our previous compilers. We describe this formally in Section 4.
2.4 Related Work, Open Questions, and Roadmap
Related Work
Recently, Kalai et al. [28] designed a generic compiler to boost any non-trivial (flexible) RAM SNARGs to fully-succinct (flexible) RAM SNARGs, under a very mild assumption of rate-1 string OT. Moreover, they showed a near equivalence between such flexible RAM SNARGs and batch arguments (BARGs) for . One can view their result as a generic compiler for boosting any non-trivial SNARK for to a fully-succinct SNARK for 555Recall SNARKs and SNARGs are the same object for , since there is no witness.. Our work gives a matching boosting result for the non-deterministic class .
Proof Carrying Data (PCD) [13] generalizes SNARGs to distributed computation. Their goal is for a group of participants in a distributed computation to create proofs of integrity and legitimacy for their respective (local) computations that can be combined to create a global proof of integrity and legitimacy of the entire distributed computation. PCDs are a significant generalization of Incrementally Verifiable Computations (IVC) [40]. IVCs can be simply viewed as PCD for straightline incremental computations (i.e., path graphs).
In a beautiful work, Bitansky et al. [7] developed new approaches for recursively composing SNARKs, and provided new techniques for constructing and using PCD. One of their central results was development of a bootstrapping mechanism for fully-succinct SNARKs with “expensive” preprocessing to design fully-succinct complexity-preserving SNARKs. By complexity-preserving, they meant that the prover’s time/space complexity is essentially the same as that required for classical verification.
On a technical level, [7] relied on an elegant technique to recursively compose SNARKs over a tree-like structure. As discussed in the overview, our approach builds on their composition techniques. Apart from studying different problems, the key differences between our works are that we show that recursive composition works even for non-trivial SNARKs, while they relied on fully-succinct SNARKs. Moreover, a non-trivial SNARK verifier can be as large as some polynomial in the description of the classical verification circuit, thus we had to rely on additional techniques such as RAM delegation, while this was needed by Bitansky et al. since they assumed full-succinct SNARKs.
Interestingly, by combining our results with [7], we obtain that any -mild SNARK, with either a fast extractor or , is sufficient to design complexity-preserving SNARKs and PCDs.
Open questions
Our work leaves a lot of interesting questions for further research. We list out some of them below.
-
1.
Our appraoch crucially relies on knowledge soundness. A great problem is can we boost non-trivial SNARGs, without or with very weak extractability?
-
2.
We also need SNARKs to be adaptively sound. Another great question is to similar compilers assuming non-adapative soundness.
-
3.
To shorten the CRS size, we need to rely on efficient RAM delegation. Can this be avoided, or could we instead reduce to simpler assumptions such as CRHFs?
-
4.
Do there exist such boosting SNARK results for other classes, other than [28] and (this work)?
-
5.
Our fully-succinct SNARKs have “fixed” multiplicative overhead in the time/space needed for computing the proof, compared to classical verification. Can we make this optimal and only incur a “fixed” additive overhead?
Answering above questions will give us more insight in the study of SNARKs and related proof systems.
Roadmap
The rest of the paper is organized as follows. First, we describe our main boosting compiler for mild SNARKs (with short CRS) in Section 3. Later in Section 4, we show to boost even milder SNARKs, and finally, we describe how to use RAM delegation to shorten CRS in Section 5. Due to space constraints, preliminaries can be found in the full version.
3 Full Succinctness from Mild SNARKs with Short CRS
We start by establishing the concept of -mild SNARKs.
-Mild SNARK with succinct CRS
Consider the circuit satisfiability language. Let be any boolean circuit that takes as input and outputs a bit . We define the notion of -mild SNARKs for the circuit satisfiability language, where such SNARKs are defined identically to that as SNARKs for RAM, except the algorithm takes description of circuit , (in unary), and (in binary) as inputs. Next, we define -mildness and succinct CRS properties formally.
-mildness
Let be a function such that . A SNARK satisfies -mildness, if there exists a poly such that for every , polynomial , boolean circuit , , where , , it holds that
Succinct CRS
A SNARK has succinct CRS, if there exists a poly such that for every , polynomial , boolean circuit , , it holds that .
3.1 Fully-Succinct SNARKs from -Mild SNARKs
We discuss how to build fully-succinct SNARK for any RAM Machine with bounded running time from a -mild SNARK and hash tree systems. Later, we show how to generically improve these to RAM Machines with unbounded running time.
Special Notation: Composite Hash Tree
We rely on a specialized notation that we call Composite Hash Trees. One may consider Composite Hash Tree as a set of Hash Trees, each assigned a section of input. For example, the hash value consists a number of hash values where each value corresponds to one section of . As long as is a constant number, the efficiency and soundness properties all maintain from the original Hash Tree. The desired property from Composite Hash Tree is that the reading, opening, and writing at the -th section of string only depends on and affects . Composite Hash Tree overloads the syntax of Hash Tree, except for the following:
-
The setup algorithm is modified to accept multiple inputs . The size of hash input is . Input is considered as a number of continuous segments, where the -th segment is of size . It also sets hash key as a sequence of of independent hash keys: .
We define the additional property of completeness: For every , for all , , and ,
For the rest of this section, we only rely on such Composite Hash Trees.
Our Fully-Succinct SNARK Construction
We rely on -mild SNARK for , and composite hash tree . Below is our design.
-
The setup algorithm follows these steps:
-
1. RAM machine is as the following: takes as input , running time of is , and memory usage is capped at . Size of input is .
-
2. We then specify as . We also specify the state transformation circuit of as and the memory as . It sets
The intuition is that the memory is splitted into three sections where the first two sections are used to record the input and the last section is used as a working tape. Then under the hash key , hash value consists of three independent values .
-
3. It generates a number of common reference strings: For all ,
where is defined as the following, and is the instance size, is the witness size for .
-
4. It outputs .
Circuit Instance: , .
Witness: .
Hardwired: . Output: outputs if and only if the followings are satisfied: . . .For :
Circuit Instance: , .
Witness: , .
Hardwired: .
Output: outputs if and only if: , for all . -
-
. The prover algorithm follows these steps:
-
1.
It simulates step by step. Previously we specified the state transformation circuit of as and the memory as . Since has a maximum number of steps, the simulation process involves a total number of states. Recall definition of RAM machine where for each step of computation, the original local state transforms into a new state . Such transition involves an index to read , the bit at index . It sets where represents the whole memory at such state. When reading the bit at index , it simultaneously computes the opening . Then state transformation circuit takes and as input and outputs . It updates the bit at index , setting as , and as for all . It sets updated memory . Next, it obtains updated hash value as .
It records , for corresponding to the -th state. It records for as the parameters of writing while going from to .
-
2.
For all , it sets instance and witness as the following:
Then for all , it generates .
-
3.
It generates a tree of levels, as the following: The top level is set as level and the bottom level is set as level . Level contains a number of nodes, and level contains approximately nodes. Every node at levels is connected to a number of nodes at the lower level. Specifically, the -th node on level has child nodes: the -th node, the -th node, , and the -th node on level . Since , we assume without loss of generality that there is at most one node on level . Note that the graph has a tree structure, where each internal node has child nodes.
-
4.
For each node , it assigns of a pair of instance and proof to : . For the -th node at level (denoted as ), it assigns instance and proof to such node. Next, it assigns a pair of instance and proof to each node at level to .
-
5.
It starts from level . Each node at level has a sequence of child nodes: . It then takes instances and proofs for all . It parses instance as
Then for all , it sets as . It generates proof
It assigns as the instance and as the proof to such internal node:
-
6.
It repeats step for level .
-
7.
The root node is now assigned with the instances and , along with the proof . Recall that one may consider hash value as three independent values, such that and . The output is .
-
1.
-
. It first parses as and as . It sets as an all zeros string. Remark in the full version says that hash value of an all zeros string is also a string of all zeros. This is a straightforward property that can be added to to any collision-resistant hash function. Thus, is equivalent to , which allows the verifier to directly generate without evaluating the hash function. Next, it sets as , and as . It then sets as the starting state and as the accepting state, and as the reading bit’s index for the starting state, as such index for the accepting state. Without loss of generality, we take and as fixed according to the definition of machine . The verifier outputs
Completeness
The completeness of the above design directly follows from the completeness of composite hash tree and -mild SNARK .
Efficiency
For all , we denote as instance size, as witness size, and as proof size for each individual node at level .
Lemma 4.
For all , , .
Proof.
We prove the lemma using induction.
Base Case .
By -mildness (, we have . Thus the base case satisfies the lemma.
Inductive Step .
Suppose that the Lemma holds for and we proceed to . By inductive hypothesis, is at most . We note that due to the design of our tree-style SNARK, instance at each level consists of and , with uniform sizes across all levels. Therefore, are all equivalent. Given that the each witness at level consists of and which combines a number of proofs and instances from level , witness size is bounded by the following:
By succinctness of , is at most:
Putting the above together completes the proof for the lemma.
Lemma 5.
The prover’s running time is where is the running time of .
Proof.
Since instance and witness at level only contain local parameters, by Lemma 4, we have for some universal polynomial and for all . Instance size and is also upper bounded by for all . Thus, prover’s running time at each node is bounded by for some universal . The overall running time of the prover is at most since the total number of nodes in the data structure is linear in .
Lemma 6.
The Setup algorithm’s running time is .
Proof.
The Setup algorithm of our design includes setting up hash key and CRS . The setup is fast. To learn the setup time of , we must understand circuit size . Observe that , and for all . By Lemma 4, it holds that for all , for some universal polynomial . Thus, . By succinct CRS property of , it holds that for all , which implies that . Thus , for some universal polynomial . The overall Setup time is for .
Lemma 7.
Assume that is a -mild SNARK ( with short CRS, and is a Hash Tree, then the above design is a fully succinct SNARK.
Proof.
Following from our design, , where represents the hash key. Thus, by design of hash tree. Following from the analysis of Lemma 6, it holds that for some universal polynomial , and the overall CRS size satisfies for . By Lemma 4, proof size also satisfies full succinctness, such that .
Soundness
The soundness analysis is as below.
Theorem 8.
Assuming that the mildly succinct SNARK scheme satisfies the adaptive proof of knowledge property, and the Hash Tree satisfies soundness and collision-resistance, then the above SNARK scheme also satisfies the proof of knowledge property.
Proof.
Due to space constraints, the proof can be found in the full version.
Remark 9.
We remark that the above the bootstrapping process can be extended to a -mild SNARK of proof size for any constant . This immediately follows by composing a -mild SNARK a number of times: It gives us a -mild SNARK with proof size where .
Remark 10.
We remark that our design of fully succinct SNARK for RAM with bounded running time can be readily extended to unbounded RAM: For RAM machine of a maximum running time , we apply RAM delegation scheme to prove that : . Next, define RAM machine such that if and only if . By succinctness of RAM delegation, runs in time for a universal . By applying our SNARK for bounded RAM over , we obtain a fully succinct SNARK for RAM with unbounded running time.
4 Full Succinctness from Milder SNARKs with Fast Extractors
In this section, we show to build fully-succinct SNARKs from milder SNARKs. Towards that goal, we introduce the notion of fast extractors.
-Efficient Extractor
We say a SNARK has a -efficient extractor, if the extractor ’s running time grows as , for and some poly . That is, for an extractor is defined as the (asymptotic) ratio of the extractor’s running time to the running time of attacker .
4.1 Fullly Succinct SNARK from -Mild SNARK with -Efficient Extractor
Assuming the existence of -mild SNARK with a -efficient extractor (and succinct CRS) for any , we design a -mild SNARK for :
-
It sets . For , we set as the following boolean circuit and as the witness size for such circuit. It generates . It outputs .
Circuit Instance: .
Witness: .
Hardwired: . For , outputs . For , outputs . -
It parses as above. It sets as . Next for all , it computes as . It outputs .
-
It outputs .
Completeness
The recursive composition inherits the completeness of .
Lemma 11.
Assuming that satisfies -mildness, then the above SNARK satisfies -mildness.
Proof.
The proof size of -mild SNARK is given as . By composing this mild SNARK times in the above construction, the resulting proof size becomes .
Theorem 12.
Assuming that satisfies -mildness with a -efficient extractor , then the above SNARK also satisfies adaptive proof of knowledge property, as long as and are polynomially related such that where is a constant.
Proof.
Due to space constraints, the proof can be found in the full version.
Corollary 13.
Following from Lemma 7, Lemma 11, and Theorem 12, there exists a fully succinct SNARK assuming the existence of -mild SNARK with efficient extractor such that .
5 Mild SNARKs without Succinct CRS
Finally, we show how to use mild SNARK and RAM delegation to design a mild SNARK with succinct CRS.
Our construction
Let be a RAM delegation scheme, and be a -mild SNARK. Below we provide our construction:
-
Let be the following RAM machine – takes as input and accepts if and only if . Running time of is for some fixed polynomial , and input size is . The setup algorithms samples
Let denote the proof size generated by using and a valid instance-witness pair. Consider the following boolean circuit :
Circuit Instance: It takes as input instance .
Witness: It takes as input witness .
Hardwired: It has hardwired. It outputs .The setup algorithm samples as . And, it outputs as .
-
It parses as above. First, it computes a RAM proof as , and then it creates a mild SNARK proof as It outputs .
-
It outputs .
Completeness
The completeness of the above design follows from the completeness of RAM machine delegation scheme and mild SNARK scheme .
Efficiency
We analyze the efficiency of the above design:
Lemma 14.
Assume that is a mild SNARK for function with extractor . Then for every , polynomial , , boolean circuit , any , and such that , the following holds:
-
For , there exists a universal polynomial such that .
-
For , there exists a universal polynomial such that , where .
Proof.
Due to space constraints, the proof can be found in the full version. By Lemma 14, our design satisfies both -mildness and succinct CRS properties.
Theorem 15.
Assume that the mild SNARK scheme satisfies adaptive proof of knowledge, and the RAM delegation scheme is sound, then the above design of SNARK satisfies adaptive proof of knowledge.
Proof.
Due to space constraints, the proof can be found in the full version.
Corollary 16.
Based on recent results about RAM delegation ([15, 16, 31, 24, 42, 18, 38, 28, 14]) and our SNARKs design (Lemma 7, Theorem 8, Remark 9, Lemma 14, and Theorem 15), the following holds: Assuming the existence of -mild SNARKs without CRS succinctness requirement, and assuming either LWE, -LIN over pairing groups for any constant , or sub-exponential DDH over pairing-free groups, there exists fully succinct SNARKs.
Corollary 17.
By extending Corollary 16 using Corollary 13, we have: Assuming the existence of -mild SNARKs with efficient extractor for , and without CRS succinctness requirement, and assuming either LWE, -LIN over pairing groups for any constant , or sub-exponential DDH over pairing-free groups, there exists fully succinct SNARKs.
References
- [1] Saikrishna Badrinarayanan, Yael Tauman Kalai, Dakshita Khurana, Amit Sahai, and Daniel Wichs. Succinct delegation for low-space non-deterministic computation. In Ilias Diakonikolas, David Kempe, and Monika Henzinger, editors, 50th Annual ACM Symposium on Theory of Computing, pages 709–721. ACM Press, June 2018. doi:10.1145/3188745.3188924.
- [2] Boaz Barak, Oded Goldreich, Russell Impagliazzo, Steven Rudich, Amit Sahai, Salil P. Vadhan, and Ke Yang. On the (im)possibility of obfuscating programs. In Joe Kilian, editor, Advances in Cryptology – CRYPTO 2001, volume 2139 of Lecture Notes in Computer Science, pages 1–18, Santa Barbara, CA, USA, august 19–23 2001. Springer Berlin Heidelberg, Germany. doi:10.1007/3-540-44647-8_1.
- [3] Mihir Bellare and Phillip Rogaway. Random oracles are practical: A paradigm for designing efficient protocols. In Dorothy E. Denning, Raymond Pyle, Ravi Ganesan, Ravi S. Sandhu, and Victoria Ashby, editors, ACM CCS 93: 1st Conference on Computer and Communications Security, pages 62–73. ACM Press, November 1993. doi:10.1145/168588.168596.
- [4] Eli Ben-Sasson, Alessandro Chiesa, Christina Garman, Matthew Green, Ian Miers, Eran Tromer, and Madars Virza. Zerocash: Decentralized anonymous payments from bitcoin. In 2014 IEEE Symposium on Security and Privacy, pages 459–474. IEEE Computer Society Press, May 2014. doi:10.1109/SP.2014.36.
- [5] Nir Bitansky, Ran Canetti, Alessandro Chiesa, Shafi Goldwasser, Huijia Lin, Aviad Rubinstein, and Eran Tromer. The hunting of the SNARK. Journal of Cryptology, 30(4):989–1066, October 2017. doi:10.1007/s00145-016-9241-9.
- [6] Nir Bitansky, Ran Canetti, Alessandro Chiesa, and Eran Tromer. From extractable collision resistance to succinct non-interactive arguments of knowledge, and back again. In Shafi Goldwasser, editor, ITCS 2012: 3rd Innovations in Theoretical Computer Science, pages 326–349. Association for Computing Machinery, January 2012. doi:10.1145/2090236.2090263.
- [7] Nir Bitansky, Ran Canetti, Alessandro Chiesa, and Eran Tromer. Recursive composition and bootstrapping for SNARKS and proof-carrying data. In Dan Boneh, Tim Roughgarden, and Joan Feigenbaum, editors, 45th Annual ACM Symposium on Theory of Computing, pages 111–120. ACM Press, June 2013. doi:10.1145/2488608.2488623.
- [8] Nir Bitansky, Alessandro Chiesa, Yuval Ishai, Rafail Ostrovsky, and Omer Paneth. Succinct non-interactive arguments via linear interactive proofs. In Amit Sahai, editor, TCC 2013: 10th Theory of Cryptography Conference, volume 7785 of Lecture Notes in Computer Science, pages 315–333. Springer, Heidelberg, March 2013. doi:10.1007/978-3-642-36594-2_18.
- [9] Zvika Brakerski, Maya Farber Brodsky, Yael Tauman Kalai, Alex Lombardi, and Omer Paneth. SNARGs for monotone policy batch NP. In Helena Handschuh and Anna Lysyanskaya, editors, Advances in Cryptology – CRYPTO 2023, Part II, volume 14082 of Lecture Notes in Computer Science, pages 252–283. Springer, Heidelberg, August 2023. doi:10.1007/978-3-031-38545-2_9.
- [10] Zvika Brakerski, Justin Holmgren, and Yael Tauman Kalai. Non-interactive delegation and batch NP verification from standard computational assumptions. In Hamed Hatami, Pierre McKenzie, and Valerie King, editors, 49th Annual ACM Symposium on Theory of Computing, pages 474–482. ACM Press, June 2017. doi:10.1145/3055399.3055497.
- [11] Gilles Brassard, David Chaum, and Claude Crépeau. Minimum disclosure proofs of knowledge. Journal of computer and system sciences, 37(2):156–189, 1988. doi:10.1016/0022-0000(88)90005-0.
- [12] Matteo Campanelli, Chaya Ganesh, Hamidreza Khoshakhlagh, and Janno Siim. Impossibilities in succinct arguments: Black-box extraction and more. In Nadia El Mrabet, Luca De Feo, and Sylvain Duquesne, editors, AFRICACRYPT 23: 14th International Conference on Cryptology in Africa, volume 14064 of Lecture Notes in Computer Science, pages 465–489, Sousse, Tunisia, july 19–21 2023. Springer, Cham, Switzerland. doi:10.1007/978-3-031-37679-5_20.
- [13] Alessandro Chiesa and Eran Tromer. Proof-carrying data and hearsay arguments from signature cards. In ICS, volume 10, pages 310–331, 2010. URL: http://conference.iiis.tsinghua.edu.cn/ICS2010/content/papers/25.html.
- [14] Arka Rai Choudhuri, Sanjam Garg, Abhishek Jain, Zhengzhong Jin, and Jiaheng Zhang. Correlation intractability and SNARGs from sub-exponential DDH. In Helena Handschuh and Anna Lysyanskaya, editors, Advances in Cryptology – CRYPTO 2023, Part IV, volume 14084 of Lecture Notes in Computer Science, pages 635–668, Santa Barbara, CA, USA, august 20–24 2023. Springer, Cham, Switzerland. doi:10.1007/978-3-031-38551-3_20.
- [15] Arka Rai Choudhuri, Abhishek Jain, and Zhengzhong Jin. Non-interactive batch arguments for NP from standard assumptions. In Tal Malkin and Chris Peikert, editors, Advances in Cryptology – CRYPTO 2021, Part IV, volume 12828 of Lecture Notes in Computer Science, pages 394–423, Virtual Event, August 2021. Springer, Heidelberg. doi:10.1007/978-3-030-84259-8_14.
- [16] Arka Rai Choudhuri, Abhishek Jain, and Zhengzhong Jin. SNARGs for from LWE. In 62nd Annual Symposium on Foundations of Computer Science, pages 68–79. IEEE Computer Society Press, February 2022. doi:10.1109/FOCS52979.2021.00016.
- [17] Ivan Bjerre Damgård. A design principle for hash functions. In Conference on the Theory and Application of Cryptology, pages 416–427. Springer, 1989.
- [18] Lalita Devadas, Rishab Goyal, Yael Kalai, and Vinod Vaikuntanathan. Rate-1 non-interactive arguments for batch-NP and applications. In 63rd Annual Symposium on Foundations of Computer Science, pages 1057–1068. IEEE Computer Society Press, October / November 2022. doi:10.1109/FOCS54457.2022.00103.
- [19] Craig Gentry, Jens Groth, Yuval Ishai, Chris Peikert, Amit Sahai, and Adam D. Smith. Using fully homomorphic hybrid encryption to minimize non-interative zero-knowledge proofs. Journal of Cryptology, 28(4):820–843, October 2015. doi:10.1007/s00145-014-9184-y.
- [20] Craig Gentry and Daniel Wichs. Separating succinct non-interactive arguments from all falsifiable assumptions. In Lance Fortnow and Salil P. Vadhan, editors, 43rd Annual ACM Symposium on Theory of Computing, pages 99–108. ACM Press, June 2011. doi:10.1145/1993636.1993651.
- [21] Shafi Goldwasser and Yael Tauman Kalai. Cryptographic assumptions: A position paper. In Eyal Kushilevitz and Tal Malkin, editors, TCC 2016-A: 13th Theory of Cryptography Conference, Part I, volume 9562 of Lecture Notes in Computer Science, pages 505–522, Tel Aviv, Israel, january 10–13 2016. Springer Berlin Heidelberg, Germany. doi:10.1007/978-3-662-49096-9_21.
- [22] Jens Groth. Short pairing-based non-interactive zero-knowledge arguments. In Masayuki Abe, editor, Advances in Cryptology – ASIACRYPT 2010, volume 6477 of Lecture Notes in Computer Science, pages 321–340. Springer, Heidelberg, December 2010. doi:10.1007/978-3-642-17373-8_19.
- [23] Jens Groth. On the size of pairing-based non-interactive arguments. In Marc Fischlin and Jean-Sébastien Coron, editors, Advances in Cryptology – EUROCRYPT 2016, Part II, volume 9666 of Lecture Notes in Computer Science, pages 305–326. Springer, Heidelberg, May 2016. doi:10.1007/978-3-662-49896-5_11.
- [24] James Hulett, Ruta Jawale, Dakshita Khurana, and Akshayaram Srinivasan. SNARGs for P from sub-exponential DDH and QR. In Orr Dunkelman and Stefan Dziembowski, editors, Advances in Cryptology – EUROCRYPT 2022, Part II, volume 13276 of Lecture Notes in Computer Science, pages 520–549. Springer, Heidelberg, May / June 2022. doi:10.1007/978-3-031-07085-3_18.
- [25] Aayush Jain, Huijia Lin, and Amit Sahai. Indistinguishability obfuscation from well-founded assumptions. In Samir Khuller and Virginia Vassilevska Williams, editors, 53rd Annual ACM Symposium on Theory of Computing, pages 60–73. ACM Press, June 2021. doi:10.1145/3406325.3451093.
- [26] Ruta Jawale, Yael Tauman Kalai, Dakshita Khurana, and Rachel Yun Zhang. SNARGs for bounded depth computations and PPAD hardness from sub-exponential LWE. In Samir Khuller and Virginia Vassilevska Williams, editors, 53rd Annual ACM Symposium on Theory of Computing, pages 708–721. ACM Press, June 2021. doi:10.1145/3406325.3451055.
- [27] Zhengzhong Jin, Yael Kalai, Alex Lombardi, and Vinod Vaikuntanathan. SNARGs under LWE via propositional proofs. In 56th Annual ACM Symposium on Theory of Computing, pages 1750–1757. ACM Press, June 2024. doi:10.1145/3618260.3649770.
- [28] Yael Kalai, Alex Lombardi, Vinod Vaikuntanathan, and Daniel Wichs. Boosting batch arguments and ram delegation. In Proceedings of the 55th Annual ACM Symposium on Theory of Computing, pages 1545–1552, 2023. doi:10.1145/3564246.3585200.
- [29] Yael Tauman Kalai and Omer Paneth. Delegating RAM computations. In Martin Hirt and Adam D. Smith, editors, TCC 2016-B: 14th Theory of Cryptography Conference, Part II, volume 9986 of Lecture Notes in Computer Science, pages 91–118. Springer, Heidelberg, October / November 2016. doi:10.1007/978-3-662-53644-5_4.
- [30] Yael Tauman Kalai, Omer Paneth, and Lisa Yang. How to delegate computations publicly. In Moses Charikar and Edith Cohen, editors, 51st Annual ACM Symposium on Theory of Computing, pages 1115–1124. ACM Press, June 2019. doi:10.1145/3313276.3316411.
- [31] Yael Tauman Kalai, Vinod Vaikuntanathan, and Rachel Yun Zhang. Somewhere statistical soundness, post-quantum security, and SNARGs. In Kobbi Nissim and Brent Waters, editors, TCC 2021: 19th Theory of Cryptography Conference, Part I, volume 13042 of Lecture Notes in Computer Science, pages 330–368. Springer, Heidelberg, November 2021. doi:10.1007/978-3-030-90459-3_12.
- [32] Joe Kilian. A note on efficient zero-knowledge proofs and arguments (extended abstract). In 24th Annual ACM Symposium on Theory of Computing, pages 723–732. ACM Press, May 1992. doi:10.1145/129712.129782.
- [33] Ralph C. Merkle. A digital signature based on a conventional encryption function. In Carl Pomerance, editor, Advances in Cryptology – CRYPTO’87, volume 293 of Lecture Notes in Computer Science, pages 369–378. Springer, Heidelberg, August 1988. doi:10.1007/3-540-48184-2_32.
- [34] Ralph Charles Merkle. Secrecy, authentication, and public key systems. Stanford university, 1979.
- [35] Silvio Micali. Computationally sound proofs. SIAM Journal on Computing, 30(4):1253–1298, 2000. doi:10.1137/S0097539795284959.
- [36] Moni Naor. On cryptographic assumptions and challenges (invited talk). In Dan Boneh, editor, Advances in Cryptology – CRYPTO 2003, volume 2729 of Lecture Notes in Computer Science, pages 96–109. Springer, Heidelberg, August 2003. doi:10.1007/978-3-540-45146-4_6.
- [37] Shafik Nassar, Brent Waters, and David J Wu. Monotone policy bargs from bargs and additively homomorphic encryption. Cryptology ePrint Archive, 2023.
- [38] Omer Paneth and Rafael Pass. Incrementally verifiable computation via rate-1 batch arguments. In 63rd Annual Symposium on Foundations of Computer Science, pages 1045–1056. IEEE Computer Society Press, October / November 2022. doi:10.1109/FOCS54457.2022.00102.
- [39] Amit Sahai and Brent Waters. How to use indistinguishability obfuscation: deniable encryption, and more. In Symposium on Theory of Computing, STOC 2014, New York, NY, USA, May 31 - June 03, 2014, pages 475–484, 2014. doi:10.1145/2591796.2591825.
- [40] Paul Valiant. Incrementally verifiable computation or proofs of knowledge imply time/space efficiency. In Ran Canetti, editor, TCC 2008: 5th Theory of Cryptography Conference, volume 4948 of Lecture Notes in Computer Science, pages 1–18. Springer, Heidelberg, March 2008. doi:10.1007/978-3-540-78524-8_1.
- [41] Michael Walfish and Andrew J Blumberg. Verifying computations without reexecuting them. Communications of the ACM, 58(2):74–84, 2015. doi:10.1145/2641562.
- [42] Brent Waters and David J. Wu. Batch arguments for sfNP and more from standard bilinear group assumptions. In Yevgeniy Dodis and Thomas Shrimpton, editors, Advances in Cryptology – CRYPTO 2022, Part II, volume 13508 of Lecture Notes in Computer Science, pages 433–463. Springer, Heidelberg, August 2022. doi:10.1007/978-3-031-15979-4_15.