In this blog-post, I will be taking a look at my recent work with Hossein Moghaddas and Ngoc Khanh Nguyen, full version . We extend the vector commitment scheme of [WW23]1 with an evaluation proof, and achieve a lattice-based polynomial commitment scheme with polylogarithmic proof size and verifier complexity. We further investigate the applicability of our techniques to the Polynomial IOP of [Marlin]2, show that our scheme is easily batchable and more!


Polynomial Commitments

A polynomial commitment scheme is a natural generalization of a vector commitment scheme, in which a party is able to commit to a polynomial ff, and later engage in a evaluation protocol to show that f(u)=zf(u) = z. In this work, we consider polynomials of bounded degree dd with coefficients over the polynomial ring Rq\mathcal{R}_q (we also show to adapt this construction for polynomials in Fd[X]\mathbb{F}^{\leq d}[X], but details are left for the full version).

The interface of a polynomial commitment scheme follows partially that of standard commitmentscheme:

  • Setup(1λ)(pk,vk)\mathsf{Setup}(1^\lambda) \to (\mathsf{pk}, \mathsf{vk}) takes a security parameter and outputs a proving and a verification key.
  • Com(pk,f)(σ,aux)\mathsf{Com}(\mathsf{pk}, f) \to (\sigma, \mathsf{aux}) takes a proving key and a polynomial ff and outputs a commitment σ\sigma and auxiliary decommitment information aux\mathsf{aux}.
  • Open(vk,f,σ,aux)\mathsf{Open}(\mathsf{vk}, f, \sigma, \mathsf{aux}) checks whether (σ,aux)(\sigma, \mathsf{aux}) are a valid commitment-opening pair for ff.

Furthermore, we extend the interface with an evaluation protocol between a prover and a verifier P,V\mathbf{P}, \mathbf{V}. We denote the protocol as P(pk,f,aux),V(vk)(σ,u,v)\langle \mathbf{P}(\mathsf{pk}, f, \mathsf{aux}), \mathbf{V}(\mathsf{vk}) \rangle(\sigma, u, v).

The properties that we require from a polynomial commitment scheme are:

  1. Completeness of the commitment scheme: If pk,vk,σ,aux\mathsf{pk}, \mathsf{vk}, \sigma, \mathsf{aux} are honestly generated (w.r.t to ff), then Open(vk,f,σ,aux)=1\mathsf{Open}(\mathsf{vk}, f, \sigma, \mathsf{aux}) = 1.
  2. Binding of the commitment scheme: The probability that an efficient adversary can find σ,f,g,auxf,auxg\sigma, f,g, \mathsf{aux}_f, \mathsf{aux_g} such that Open(vk,f,σ,auxf)=1=Open(vk,g,σ,auxg)\mathsf{Open}(\mathsf{vk}, f, \sigma, \mathsf{aux}_f) = 1 = \mathsf{Open}(\mathsf{vk}, g, \sigma, \mathsf{aux}_g) is negligible.
  3. Evaluation completeness: If f(u)=zf(u) = z, the evaluation protocol will accept.
  4. Evaluation knowledge-soundness: There exists an efficient extractor that, if a malicous prover is able to make the verifier accept with non-negligible probability, is able to extract a polynomial ff and an opening aux\mathsf{aux} such that f(u)=zf(u) = z and Open(vk,f,σ,auxf)=1\mathsf{Open}(\mathsf{vk}, f, \sigma, \mathsf{aux}_f) = 1.

In the paper, we also consider hiding, but in the interest of space we avoid this here.


WeeWu Commitments

Our starting point is the commitment scheme introduced in [WW23]1. Their commitments relies on the BASIS assumption (Basis-Augmented Short Integer Solution). It roughly states that an adversary that is given access to a random matrix A\mathbf{A}, should not be able to find a short vector v\mathbf{v} such that Av=0\mathbf{A}\mathbf{v} = 0 even when given access to a trapdoor to sample short preimages of a matrix B\mathbf{B} related to A\mathbf{A}. In their work, the matrix B\mathbf{B} is defined as [A0GAdG]\begin{bmatrix}\mathbf{A}_0 &&& - \mathbf{G}\\ & \ddots & & \\ & & \mathbf{A}_d & - \mathbf{G} \end{bmatrix} where Ai=WiA\mathbf{A}_i = \mathbf{W}_i \mathbf{A} for Wi\mathbf{W_i} random invertible matrices and G\mathbf{G} the gadget matrix of [MP12]3. We extend this to two new assumptions, the powerBASIS and PRISIS assumptions. Roughly, we introduce more structure in the Wi\mathbf{W}_i. In powerBASIS, we let Wi=Wi\mathbf{W}_i = \mathbf{W}^{i}, while in PRISIS we set Wi=wiI\mathbf{W}_i = w^{i} \mathbf{I}. With this added structure, the commitment scheme that we construct is exactly as in [WW23] (here we present the powerBASIS version). Namely:

  • Setup(1λ)(pk,vk)\mathsf{Setup}(1^\lambda) \to (\mathsf{pk}, \mathsf{vk}) samples A,W\mathbf{A}, \mathbf{W} and uses [MP12]3 sampling to construct a trapdoor T\mathbf{T} of B\mathbf{B}. The verification key consists of A,W\mathbf{A}, \mathbf{W} and the proving key additionally contains T\mathbf{T}.
  • Com(pk,f)(σ,aux)\mathsf{Com}(\mathsf{pk}, f) \to (\sigma, \mathsf{aux}) uses T\mathbf{T} to sample short zi\mathbf{z_i} and c^\hat{\mathbf{c}} such that B[z0,,zd,c^]=[f0W0e1,,fdWde1]\mathbf{B}[\mathbf{z}_0, \dots, \mathbf{z}_d, \hat{\mathbf{c}}]^\top = [-f_0 \mathbf{W}^0 \mathbf{e}_1, \dots, - f_d \mathbf{W}^d \mathbf{e}_1]^\top, it then outputs c:=Gc^\mathbf{c} := \mathbf{G}\hat{\mathbf{c}} and (zi)(\mathbf{z}_i) as decommitment.
  • Open(vk,f,σ,aux)\mathsf{Open}(\mathsf{vk}, f, \sigma, \mathsf{aux}) checks that the openings are indeed short, and that the equations are all satisfied: namely it checks that Azi+fie1=Wic.\mathbf{A}\mathbf{z}_i + f_i \mathbf{e}_1 = \mathbf{W}^{-i}\mathbf{c} \enspace.

We then show that this commitment scheme is binding (even with respect to relaxed openings, as customary in the lattice-world).


Evaluation Proofs

Now, our evaluation protocols are inspired partly by FRI (even though the setting and analysis are completely different). Suppose we aim to show that f(u)=zf(u) = z. We take our polynomial ff and write it as an odd an even part i.e.: f(X)=f0(X2)+Xf1(X2)f(X) = f_0(X^2) + Xf_1(X^2) The prover then sends evaluations z0,z1z_0, z_1 of f0,f1f_0, f_1 on u2u^2. The verifier checks that z0+uz1=zz_0 + u z_1 = z and sends a random challenge α\alpha to the prover, and computes an updated commitment c=(1+αW1)c\mathbf{c}’ = (1 + \alpha \mathbf{W}^{-1}) \mathbf{c} and a new verification key where W=W2\mathbf{W}’ = \mathbf{W}^2. The prover computes a new folded polynomial gg and updated opening as follows: g(X)=f0(X)+αf1(X),si=z2i+αz2i+1.g(X) = f_0(X) + \alpha f_1(X), \mathbf{s}_i = \mathbf{z}_{2i} + \alpha \mathbf{z}_{2i+1}\enspace. The crucial observation is that the parties now can recurse on the claim that g(u2)=z0+αz1g(u^2) = z_0 + \alpha z_1, which is about a polynomial of degree d/2d/2. We recurse thus logd\log d times, until the prover can just send a constant sized opening. Note in particular that the additional structure of the powerBASIS construction allowed the verifier to efficiently construct a commitment to gg from one to ff. In particular, note that Asi+gie1=Az2i+f2ie1+α(Az2i+1+f2i+1e1)\mathbf{A}\mathbf{s}_i + g_i \mathbf{e}_1 = \mathbf{A}\mathbf{z}_{2i} + f_{2i}\mathbf{e}_1 + \alpha \cdot ( \mathbf{A}\mathbf{z}_{2i+1} + f_{2i+1}\mathbf{e}_1) =W2ic+αW2i1c=(W2)i(1+αW1)c = \mathbf{W}^{-2i}\mathbf{c} + \alpha \mathbf{W}^{-2i - 1}\mathbf{c} = (\mathbf{W}^2)^{-i} (1 + \alpha \mathbf{W}^{-1})\mathbf{c}

Crucially, compared to other protocols like lattice-bulletproofs, the extraction keeps the norm growth more manageable (at the cost of trusted setup), which should lead to more concretely efficient protocols. The details are in the paper, due to the requirement of a flurry of notation.

Now, what is left to do is to manage the norm growth. We do this in two ways, which leads to two different protocols (with different tradeoff).

  • By selecting the challenge α\alpha to be a (signed) monomial, we can ensure that the norm (here and in extraction) remains polynomial throught the logd\log d rounds of the protocol. This achieves a protocol with polylogarithmic communication and verifier complexity. However, since the challenge set is of size poly(λ)\mathrm{poly}(\lambda), we obtain a non-negligible soundness error, which needs to be mitigated by parallel repetition, making the protocol unsuitable to be made non-interactive via Fiat-Shamir.
  • Instead of folding the polynomial halfway, we can aim to fold it in kk-parts, and sample from an exponentially sized set. The norm growth is then much higher, only making it affordable to run the protocol loglogd\log \log d iterations. Choosing kk appropriately, we are able to obtain a protocol with negligible knowledge soundness error and verifier and communication complexity “quasi-polylogarithmic” d1/loglogdd^{1/\log \log d}4.

Instantiations

We then looked at how the scheme could perform concretely. The repetition needed to achieve 128 bits of security in the monomial protocol yields very large proof sizes, in the order of hundred of MBs. The other protocol strikes much closer to concrete efficiency, achieving proof sizes around 6 MBs. We also looked at applying the two protocols in Marlin, making also use of some natural ways to aggregate our protocols. With this, we obtain a post-quantum zkSNARK for R1CS with proof size roughly 26 MBs. While this is still rather large, we are confident that further work will follow the asymptotic improvement to yield concretely efficient zkSNARKs from lattices.


Drawbacks

We inherit many of the drawbacks of [WW23]1, namely:

  • The size of the proving key is quadratic in dd.
  • We could not reduce powerBASIS (or original BASIS) to standard assumptions.
  • We require a trusted setup.

Furthermore, we our evaluations proof come with their own drawbacks:

  • The concrete proof sizes are rather large.
  • We could not achieve a fully polylogarithmic protocol with negligible soundness error.

We are confident that these drawbacks can be overcome in future work (wink 😉 ).


Conclusion

Find the full version for the gory details!


Citation

G. Fenzi, H. Moghaddas, N. K. Nguyen. “Lattice-Based Polynomial Commitments: Towards Concrete and Asymptotical Efficiency”. Cryptology ePrint Archive, Paper 2023/846. Available at: https://ia.cr/2023/846 .

@misc{FenziMN23,
	author       = {Giacomo Fenzi and Hossein Moghaddas and Ngoc Khanh Nguyen},
	title        = {Lattice-Based Polynomial Commitments: Towards Asymptotic and Concrete Efficiency},
	howpublished = {Cryptology ePrint Archive, Paper 2023/846},
	year         = {2023},
	note         = {\url{https://eprint.iacr.org/2023/846}},
	url          = {https://eprint.iacr.org/2023/846}
}


  1. H. Wee and D. J. Wu. “Succinct Vector, Polynomial, and Functional Commitments from Lattices”. In: EUROCRYPT (3). Vol. 14006. Lecture Notes in Computer Science. Full version: https://eprint.iacr.org/2022/1515 . Springer, 2023, pp. 385–416. ↩︎ ↩︎ ↩︎

  2. A. Chiesa, Y. Hu, M. Maller, P. Mishra, N. Vesely, and N. Ward. “Marlin: Preprocessing zkSNARKs with Universal and Updatable SRS”. In: Proceedings of the 39th Annual International Conference on the Theory and Applications of Cryptographic Techniques. EUROCRYPT ’20. 2020, pp. 738–768. ↩︎

  3. D. Micciancio and C. Peikert. “Trapdoors for Lattices: Simpler, Tighter, Faster, Smaller”. In: EUROCRYPT. 2012, pp. 700–718. ↩︎ ↩︎

  4. We called this quasi-polylogarithmic because it roughly sits between sublinear (d1/td^{1/t} for tt a constant) and polylogarithmic polylog(d)\mathrm{polylog}(d)↩︎