Lova: Lattice-Based Folding Scheme from Unstructured Lattices
Lova is joint work with Duc Tu Pham (ENS Paris), Ngoc Khanh Nguyen (King’s College London), and Giacomo Fenzi (EPFL), and appears at Asiacrypt'24.
Our goal: IVC from lattices
Incrementally verifiable computation (IVC) is a cryptographic primitive that allows a long (possibly infinite) computation to be run, such that correctness of the state of the computation can be efficiently verified at any point. IVC and its generalisation, proof-carrying data (PCD), have found numerous applications in succinct blockchains, verifiable delay functions, SNARKs for machine computations, and more.
Originally, IVC and PCD were built on recursive SNARKs, but more recent constructions are built from so-called folding and (split-)accumulation schemes. Informally, a folding scheme “folds” several instances of a certain relation into a single instance, so that correctness of the folded instance implies correctness of all original instances. Until recently, folding (aka accumulation) schemes are instantiated using homomorphic commitments based on the discrete logarithm assumption.
Since we know that there exist homomorphic commitments from lattices, our goal is to construct a folding scheme from lattices. Specifically, we aim for a lattice equivalent of Nova (hence the name Lova 💕). 1
Lattice-based commitments
We start with the Ajtai commitment, which is secure under the Short Integer Solution (SIS) assumption. To commit to an integer vector
This follows from the SIS assumption, which posits that given a randomly generated matrix
A naïve attempt
Our goal is take two commitments
As a naïve attempt to fold these two commitments, we can try taking a random linear combination of two commitments and witnesses. For example, sampling
However, this immediately runs into a completeness issue. Even though
A folding scheme with relaxed extraction
Achieving perfect completeness
In order to circumvent this issue, we use decomposition, a standard trick in the lattice literature with which we can ensure that values remain small.
Specifically, consider a prover that holds the instances
The verifer first then samples random challenges
Finally, the prover takes a random linear combination of its witness as the folded witness
Note that
This is a perfectly complete scheme for a lattice commitment, and the norm of the folded witness does not grow when folding!
Extractability
Let’s analyze the knowledge soundness of this construction. We can run a malicous prover
By setting
and thus
However, this extracted witness has norm
Achieving perfect extractability
In order to get rid of this norm growth in the extracted witness, we will force the prover to provide additional information about the norm of its witness to the verifier.
We thus augment our instance to also contain an inner product matrix
Along with the commitment to the decomposed witness, the prover now also sends the inner product matrix
To fold this second part of the instance, the verifier computes
As before, the verifier needs to ensure consistency of this decomposed “instance” that the prover sends with the original instance, which it does by checking that
Intuitively, adding this information about the norm of the witness to the relation itself ensures that it is directly checkable after all folding steps have concluded, and we can argue that with a malicious prover cannot get the verifier to output the verifier to output a folded instance that does not correspond to the norm of the witness except with some probability. To see why, note that if
Is Lova concretely efficient?
Lova has some nice properties for concrete efficiency:
- Because we use plain SIS, we don’t need any special structure of the modulus, so we can choose the hardware-friendly modulus
, and we don’t need to do any modular reduction. - Almost all operations are also purely linear algebra, which can optimized very efficiently.
- Because the protocol is very algebraic and consists of a single round, it is also very recursion-friendly, as we only need to hash out a single matrix of ternary challenges.
However, because of the high soundness error (see section above), the security parameter we need to use is quite large (
Lova vs Latticefold
Concurrently to our work, Dan Boneh and Binyi Chen have proposed Latticefold, which is also a folding scheme from lattices. They use structured lattice assumptions, and focus much more on practical efficiency (for example, targeting CCS as their constraint system, and drilling down on an NTT-friendly variant of sumcheck). Because of this, it is to be expected that Latticefold will be more efficient in practice than Lova, from the additional structure of the R-SIS assumption.
However, Latticefold uses the sumcheck protocol to get around the relaxed extractability issue. Intuitively, this seems like a tool that is “too heavy” for the simple task of folding 4. For example, the folding approaches based on DLog are much more algebraic, and do little more than taking a random linear combination of the folding inputs.
Our goal with Lova was to provide a foundation for “algebraic” folding from lattices, and we believe that more efficient follow-ups to Lova, using similar techniques but more structured assumptions are very promising avenues for efficient post-quantum folding schemes.
Pronounced like “lover”, hence the hearts 💕. ↩︎
For example, when working over
, we can use , and set the commitment length to achieve an appropriate security level. ↩︎This is a simplification, and it is not guaranteed that this condition is satisfied, but we can argue that it happens sufficiently often such that we can efficiently find such challenges. ↩︎
I’ve overheard this being described as “taking a sledgehammer to a small nail”. ↩︎