GreyhoundNguyen & Seiler, 2024 is a lattice-based polynomial commitment scheme (PCS). For a polynomial of degree N, the size of an evaluation proof is polylog(N), and the verification time for the proof is O(N).
The main purpose of this article is to help readers understand the methodology of the Greyhound polynomial commitment, the construction of its evaluation proof, and how to use Greyhound to prove the evaluation of a polynomial over Fq.
Before introducing the concepts of Greyhound, let’s introduce some notations.
Let d be a power of two, and let R=Z[X]/(Xd+1) be the ring of integers of the 2d-th cyclotomic field. For an odd prime q, we define the ring Rq=Zq[X]/(Xd+1). Let δ=⌊logq⌋. To avoid ambiguity, we will consistently use “vector” to denote a column vector of polynomials over R or Rq.
For an integer n≥1, we define a gadget matrix for composing integer values from binary representations: Gn=I⊗[124⋯2δ−1]∈Rqn×nδ. Correspondingly, its inverse transformation, the binary decomposition is denoted by the symbol Gn−1:Rqn→Rqδn.
For a vector t∈Rqn, the symbol Gn−1(t) represents the process of decomposing all coefficients of t into their binary representations and then packing them into a new vector.
The operations Gn and Gn−1 are inverses of each other, satisfying GnGn−1(t)=t.
Next, we introduce the Short Integer Solution (SIS) problem and the Ajtai commitment scheme. For a comprehensive treatment of the Ajtai commitment scheme, see Ajtai’s Hash Functions and Commitment Schemes.
For a binary message, which is packed into a vector m∈Rm via its coefficients, the Ajtai commitment process is as follows:
KeyGen: Given the security parameter λ, generate a commitment key A∈Rqn×m.
Com: Given the commitment key A∈Rqn×m and a binary message m∈Rm, compute the commitment t=Am.
There are three key points to discuss regarding the Ajtai commitment: 1. The security of the commitment, 2. The norm of the committed message, and 3. The compression property of the commitment.
The binding property of the commitment is based on the SIS problem. If a malicious attacker wants to open a commitment t to a different message m′ such that t=Am′, this is equivalent to finding a solution m−m′ to the SIS problem, satisfying A(m−m′)=0 with ∥m−m′∥∞≤1.
Note that we can find a solution to the SIS problem satisfying ∥m−m′∥∞≤1 because we require the committed messages to be binary. This requirement constrains the (infinity) norm of m to be small. In other scenarios, if m's norm is bounded by some value B, the binding property would be reduced to finding a solution with a bound of 2B: ∥m−m′∥∞≤2B.
The compression property of the commitment is evident in that the commitment value t∈Rqn is an n-dimensional vector over Rq, independent of the message length (an m-dimensional vector over Rq). Under the security assumptions of the SIS problem, the length of the commitment n is less than m.
The Greyhound commitment can be understood as a two-layer (inner and outer) Ajtai commitment.
Suppose we want to commit to a set of r arbitrary vectors f1,…,fr∈Rqm. Note that each fi is an m-dimensional vector over Rq, where each component is an element of Rq.
Inner Commitment: As mentioned in the previous section, the message for an Ajtai commitment is a binary string. Therefore, to commit to f1,…,fr using Ajtai, we first need to convert these vectors into binary vectors si∈Rqmδ using the gadget matrix G−1, i.e., si=Gm−1(fi). Now, we can perform an Ajtai commitment on the message si:
This gives us r commitment vectors t1,...,tr∈Rqn for the messages f1,...,fr.
Outer Commitment: After the inner commitment, we have r vectors t1,...,tr∈Rqn. The size of the current commitment is sub-linear in the message size (r vectors of length m), i.e., O(rn). To achieve a more compressed commitment value, i.e., O(1), we want to perform another Ajtai commitment on the inner commitment values t1,...,tr. This can be done by treating t1,...,tr as the new messages and repeating the process. First, we use G−1 to convert t1,...,tr into binary coefficient vectors t^i=Gn−1(ti), and then compute the outer commitment:
In the previous section, we discussed how to commit to a set of vectors f1,…,fr∈Rqm. However, our goal is to construct a PCS, so we need to discuss the relationship between this set of vectors and the polynomial f(X)=∑i=0N−1fiXi∈Rq[X] that we want to do evaluation at some point (for example, a point x∈Rq).
It is important to note that here X is the variant of the polynomial f, and it is not related to the X in R=Z[X]/(Xd+1).
Assume N=m⋅r. We want to prove that the polynomial f evaluated at a point x∈Rq is y, i.e., f(x)=∑i=0N−1fixi=y.
Similar to Mercury (Breakdown), we can represent the evaluation process using matrix and vector multiplication:
Therefore, if we define vectors fi=[f(i−1)m,f(i−1)m+1,…,fim−1]⊤∈Rqm for i=1,…,r, which are formed by the coefficients of the polynomial f, then the commitment to f1,…,fr∈Rqm is a commitment to the polynomial f.
Now, let’s define the vectors a(x)⊤=[1xx2⋯xm−1] and b(xm)⊤=[1xm…(xm)r−1]. The evaluation of polynomial f can be expressed as:
Greyhound’s approach is, let the prover compute the parts directly related to the polynomial coefficients fi, and let the verifier compute the rest.
Let’s first present the protocol and then discuss the reasoning behind it.
Assume the public parameters of the protocol are the commitment keys A,B, the commitment u, the evaluation point x, and the claimed value y. The entire protocol consists of a 2-round interaction:
The prover computes the first part of the evaluation, sending w to the verifier:
The verifier selects a random challenge vector c=(c1,…,cr)⊤∈Rqr and sends it to the prover.
The prover sends the intermediate commitment values (t^1,…,t^r) and uses c to compute a linear combination of the si: z:=∑i=1rsici=[s1⋯sr]c∈Rqmδ.
Finally, the verifier uses all the information sent by the prover, w,t^i,z, to check if the following equations hold:
The first equation essentially verifies the second half of the polynomial evaluation. If w is correct (which is guaranteed by the second equation), then:
The fourth equation verifies the outer commitment.
5. Proving Evaluations of Polynomials over Fq using Rq¶
The transformation from Fq to Rq is packing vectors over Fq into elements of Rq via coefficient embedding, and then performing operations over Fq using operations over Rq.
Define an automorphism σ:Rq→Rq that maps an element of Rq to its negative powers, σ(X)=X−1.
For example, for a=a0+∑i=1d−1aiXi∈Rq, we have σ(a)=a0+∑i=1d−1aiX−i∈Rq.
In Rq, the constant term of a⋅σ(a) is a0a0+∑i=1d−1aiai=∑i=0d−1aiai.
More generally, the constant term of a⋅σ(b) is ∑aibi.
Let’s clarify the following notations: a polynomial over Fq is denoted by F(U)=∑i=0N′−1FiUi=V∈Fq.
A polynomial over Rq is denoted by f(x)=∑i=0N−1fixi=y∈Rq.
We use f to represent the polynomial F after being packed into Rq.
To distinguish them, we use N−1 for the degree of f and N′−1 for the degree of F.
After coefficient packing, N and N′ are not equal.
Case 1: N′≤d. Without loss of generality, we can assume N′=d by padding F with zero coefficients. In this case, all coefficients of F can be stored in a single element of Rq, so we have a “polynomial” f of degree N−1=0.
We define the evaluation of the packed polynomial as y=f0⋅σ(x). Here, f0=∑i=0d−1FiXi∈Rq is obtained by packing all coefficients of F. The evaluation “point” x is formed by packing the powers of the original evaluation point U, i.e., x=∑i=0d−1UiXi∈Rq. And σ(x)=1+∑i=1d−1UiX−i∈Rq is the automorphism of x.
Then, using the property of the σ map discussed earlier, the constant term of the product f0⋅σ(x) is precisely:
This means a Greyhound verifier can check if F(U)=V holds by checking if the constant term of the Rq-evaluation y is equal to V.
Case 2: N′>d. Let’s assume N′=k⋅d for some integer k. The coefficients of F, (F0,…,FN′−1), will be packed into k elements of Rq, f0,f1,…,fk−1∈Rq. Let’s say N=k. The evaluation method for the polynomial f(x) is similar to the case when N′<d.
We pack the coefficients of F into (f0,f1,…,fN−1) and the powers of U into evaluation points (x0,x1,…,xN−1) as follows:
The multiplication fi⋅σ(xi) will store the partial sum ∑j=0d−1Fid+jUid+j in its constant term, similar to the previous discussion.
Since addition in Rq is coefficient-wise, the outer summation ∑i=0N−1fi⋅σ(xi) will sum up the constant terms. The constant term of the final result y will be:
Greyhound is a polynomial commitment scheme based on lattice assumptions, featuring a transparent setup and sublinear verification time.
It applies the inner and outer Ajtai commitment technique (as in Labrador) to achieve an O(1) polynomial commitment.
The authors proposes a method of using quadratic relations to prove polynomial evaluations, which achieves sublinear verification complexity.
Furthermore, by applying Labrador’s recursive proof techniques, the proof size can be further reduced, resulting in a final proof size of approximately 50KB. Compared to hash-based PCS, Greyhound demonstrates a significant advantage in commitment generation time, as can be seen in the table below.
Performance Comparison of Polynomial Commitment Schemes
Nguyen, N. K., & Seiler, G. (2024). Greyhound: Fast Polynomial Commitments from Lattices. Advances in Cryptology – CRYPTO 2024: 44th Annual International Cryptology Conference, Santa Barbara, CA, USA, August 18–22, 2024, Proceedings, Part X, 243–275. 10.1007/978-3-031-68403-6_8