Skip to article frontmatterSkip to article content

Greyhound

Greyhound Nguyen & Seiler, 2024 is a lattice-based polynomial commitment scheme (PCS). For a polynomial of degree NN, the size of an evaluation proof is polylog(N)poly\log(N), and the verification time for the proof is O(N)O(\sqrt{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\mathbb{F}_q.

1. Notations and Background

1.1 Notations

Before introducing the concepts of Greyhound, let’s introduce some notations.

Let dd be a power of two, and let R=Z[X]/(Xd+1)\mathcal{R} = \mathbb{Z}[X]/(X^d + 1) be the ring of integers of the 2d2d-th cyclotomic field. For an odd prime qq, we define the ring Rq=Zq[X]/(Xd+1)\mathcal{R}_q = \mathbb{Z}_q[X]/(X^d + 1). Let δ=logq\delta = \lfloor \log q \rfloor. To avoid ambiguity, we will consistently use “vector” to denote a column vector of polynomials over R\mathcal{R} or Rq\mathcal{R}_q.

For an integer n1n \geq 1, we define a gadget matrix for composing integer values from binary representations: Gn=I[1 2 4  2δ1]Rqn×nδ\mathbf{G}_n = \mathbf{I} \otimes [1 ~2~ 4~ \cdots~ 2^{\delta-1}] \in \mathcal{R}_q^{n \times n\delta}. Correspondingly, its inverse transformation, the binary decomposition is denoted by the symbol Gn1:RqnRqδn\mathbf{G}_n^{-1} : \mathcal{R}_q^n \to \mathcal{R}_q^{\delta n}.

For a vector tRqn\mathbf{t} \in \mathcal{R}_q^n, the symbol Gn1(t)\mathbf{G}_n^{-1}(\mathbf{t}) represents the process of decomposing all coefficients of t\mathbf{t} into their binary representations and then packing them into a new vector. The operations Gn\mathbf{G}_n and Gn1\mathbf{G}_n^{-1} are inverses of each other, satisfying GnGn1(t)=t\mathbf{G}_n \mathbf{G}_n^{-1}(\mathbf{t}) = \mathbf{t}.

1.2 Ajtai Commitment

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 mRm\mathbf{m} \in \mathcal{R}^m via its coefficients, the Ajtai commitment process is as follows:

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.

  1. The binding property of the commitment is based on the SIS problem. If a malicious attacker wants to open a commitment t\mathbf{t} to a different message m\mathbf{m}' such that t=Am\mathbf{t} = \mathbf{Am}', this is equivalent to finding a solution mm\mathbf{m-m'} to the SIS problem, satisfying A(mm)=0\mathbf{A(m-m')}=\mathbf{0} with mm1\|\mathbf{m-m'}\|_\infty \leq 1.

  2. Note that we can find a solution to the SIS problem satisfying mm1\|\mathbf{m-m'}\|_\infty \leq 1 because we require the committed messages to be binary. This requirement constrains the (infinity) norm of m\mathbf{m} to be small. In other scenarios, if m\mathbf{m}'s norm is bounded by some value BB, the binding property would be reduced to finding a solution with a bound of 2B2B: mm2B\|\mathbf{m-m'}\|_\infty \leq 2B.

  3. The compression property of the commitment is evident in that the commitment value tRqn\mathbf{t} \in \mathcal{R}_q^n is an nn-dimensional vector over Rq\mathcal{R}_q, independent of the message length (an mm-dimensional vector over Rq\mathcal{R}_q). Under the security assumptions of the SIS problem, the length of the commitment nn is less than mm.

2. Greyhound’s Commitment Scheme

The Greyhound commitment can be understood as a two-layer (inner and outer) Ajtai commitment.

Suppose we want to commit to a set of rr arbitrary vectors f1,,frRqm\mathbf{f}_1, \dots, \mathbf{f}_r \in \mathcal{R}_q^m. Note that each fi\mathbf{f}_i is an mm-dimensional vector over Rq\mathcal{R}_q, where each component is an element of Rq\mathcal{R}_q.

3. Polynomial Evaluation

In the previous section, we discussed how to commit to a set of vectors f1,,frRqm\mathbf{f}_1, \dots, \mathbf{f}_r \in \mathcal{R}_q^m. 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=0N1fiXiRq[X]f(\mathsf{X}) = \sum_{i=0}^{N-1} f_i \mathsf{X}^i \in \mathcal{R}_q[\mathsf{X}] that we want to do evaluation at some point (for example, a point xRqx \in \mathcal{R}_q).

It is important to note that here X\mathsf{X} is the variant of the polynomial ff, and it is not related to the XX in R=Z[X]/(Xd+1)\mathcal{R} = \mathbb{Z}[X]/(X^d + 1).

Assume N=mrN=m \cdot r. We want to prove that the polynomial ff evaluated at a point xRqx \in \mathcal{R}_q is yy, i.e., f(x)=i=0N1fixi=yf(x) = \sum_{i=0}^{N-1} f_i x^i = y.

Similar to Mercury (Breakdown), we can represent the evaluation process using matrix and vector multiplication:

f(x)=[1 x x2  xm1][f0fmf(r1)mf1fm+1f(r1)m+1f2fm+2f(r1)m+2fm1f2m1fN1][1xm(xm)2(xm)r1]f(x) = [1~x~x^2~\cdots~x^{m-1}] \begin{bmatrix} f_0 & f_m & \cdots & f_{(r-1)m} \\ f_{1} & f_{m+1} &\cdots & f_{(r-1)m+1} \\ f_{2} & f_{m+2} &\cdots & f_{(r-1)m+2} \\ \vdots & \vdots & \ddots & \vdots \\ f_{m-1} & f_{2m-1} &\cdots & f_{N-1} \end{bmatrix} \begin{bmatrix} 1 \\ x^m \\ (x^m)^2\\ \vdots \\ (x^m)^{r-1} \end{bmatrix}

Therefore, if we define vectors fi=[f(i1)m,f(i1)m+1,,fim1]Rqm\mathbf{f}_i = [ f_{(i-1)m}, f_{(i-1)m+1}, \dots , f_{im-1}]^\top \in \mathcal{R}_q^m for i=1,,ri=1, \dots, r, which are formed by the coefficients of the polynomial ff, then the commitment to f1,,frRqm\mathbf{f}_1, \dots, \mathbf{f}_r \in \mathcal{R}_q^m is a commitment to the polynomial ff.

Now, let’s define the vectors a(x)=[1 x x2  xm1]\mathbf{a}(x)^\top = [1~x~x^2~\cdots~x^{m-1}] and b(xm)=[1 xm  (xm)r1]\mathbf{b}(x^m)^\top = \begin{bmatrix} 1 ~ x^m ~\dots ~ (x^m)^{r-1} \end{bmatrix}. The evaluation of polynomial ff can be expressed as:

f(x)=a(x)[f1  fr]b(xm)f(x) = \mathbf{a}(x)^\top [\mathbf{f}_1 ~ \cdots ~\mathbf{f}_r] \mathbf{b}(x^m)

This is a quadratic relation over a(x)\mathbf{a}(x) and b(xm)\mathbf{b}(x^m).

4. Proof of Polynomial Evaluation

The proof of a polynomial evaluation consists of two parts: 1. The commitment is well-formed; 2. The polynomial evaluation was computed correctly.

  1. First, a prover needs to commit to the polynomial ff as described in Section 2. Proving the correctness of the commitment calculation means proving:

    si=Gm1(fi),ti=Asi,u=B[t^1t^r],where t^i=Gn1(ti)\begin{align*} \mathbf{s}_i &= \mathbf{G}^{-1}_m(\mathbf{f}_i), \\ \mathbf{t}_i &= \mathbf{As}_i, \\ \mathbf{u} &= \mathbf{B}\begin{bmatrix} \hat{\mathbf{t}}_1 \\ \vdots \\ \hat{\mathbf{t}}_r \end{bmatrix}, \text{where } \hat{\mathbf{t}}_i = \mathbf{G}_n^{-1}(\mathbf{t}_i) \end{align*}

    Since the transform G\mathbf{G} is ‘invertible’, the first equation can also be written as fi=Gmsi\mathbf{f}_i = \mathbf{G}_m \mathbf{s}_i. Then the second equation implies Gn(t^i)=Asi\mathbf{G}_n(\hat{\mathbf{t}}_i) = \mathbf{As}_i.

  2. Proving the correctness of the polynomial evaluation means proving:

    y=a(x)[f1  fr]b(xm)y = \mathbf{a}(x)^\top [\mathbf{f}_1 ~ \cdots ~\mathbf{f}_r] \mathbf{b}(x^m)

Greyhound’s approach is, let the prover compute the parts directly related to the polynomial coefficients fi\mathbf{f}_i, 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\mathbf{A, B}, the commitment u\mathbf{u}, the evaluation point xx, and the claimed value yy. The entire protocol consists of a 2-round interaction:

  1. The prover computes the first part of the evaluation, sending w\mathbf{w} to the verifier:

    w:=a(x)[f1  fr]\mathbf{w}^\top := \mathbf{a}(x)^\top[\mathbf{f}_1 ~ \cdots ~\mathbf{f}_r]
  2. The verifier selects a random challenge vector c=(c1,,cr)Rqr\mathbf{c} = (c_1, \dots, c_r)^\top \in \mathcal{R}_q^r and sends it to the prover.

  3. The prover sends the intermediate commitment values (t^1,,t^r)(\hat{\mathbf{t}}_1, \dots, \hat{\mathbf{t}}_r) and uses c\mathbf{c} to compute a linear combination of the si\mathbf{s}_i: z:=i=1rsici=[s1  sr]cRqmδ\mathbf{z} := \sum_{i=1}^r \mathbf{s}_i c_i = [\mathbf{s}_1 ~ \cdots~ \mathbf{s}_r] \mathbf{c} \in \mathcal{R}_q^{m\delta}.

Finally, the verifier uses all the information sent by the prover, w,t^i,z\mathbf{w}, \hat{\mathbf{t}}_i, \mathbf{z}, to check if the following equations hold:

wb(xm)=y,wc=a(x)Gmz,Az=c1Gnt^1++crGnt^r,u=B[t^1t^r]\begin{align} \mathbf{w}^\top \mathbf{b}(x^m) &= y, \\ \mathbf{w}^\top \mathbf{c} &= \mathbf{a}(x)^\top \mathbf{G}_m \mathbf{z},\\ \mathbf{Az} & = c_1\mathbf{G}_n \hat{\mathbf{t}}_1 + \cdots + c_r \mathbf{G}_n \hat{\mathbf{t}}_r,\\ \mathbf{u} &= \mathbf{B}\begin{bmatrix} \hat{\mathbf{t}}_1 \\ \vdots \\ \hat{\mathbf{t}}_r \end{bmatrix} \end{align}

The first equation essentially verifies the second half of the polynomial evaluation. If w\mathbf{w} is correct (which is guaranteed by the second equation), then:

f(x)=a(x)[f1  fr]b(xm)=wb(xm)=yf(x) = \mathbf{a}(x)^\top[\mathbf{f}_1 ~ \cdots ~\mathbf{f}_r] \mathbf{b}(x^m) = \mathbf{w}^\top \mathbf{b}(x^m) = y

The second equation, with the participation of the challenge vector c\mathbf{c}, verifies the correctness of the first half of the evaluation:

wc=a(x)[f1  fr]c=a(x)[Gms1  Gmsr]c=a(x)Gmi=1rsici=a(x)Gmz\begin{align*} \mathbf{w}^\top \mathbf{c} &= \mathbf{a}(x)^\top [\mathbf{f}_1 ~ \cdots ~\mathbf{f}_r] \mathbf{c} \\ & = \mathbf{a}(x)^\top [\mathbf{G}_m\mathbf{s}_1~ \cdots ~\mathbf{G}_m\mathbf{s}_r] \mathbf{c} \\ & = \mathbf{a}(x)^\top \mathbf{G}_m \sum_{i=1}^r \mathbf{s}_i c_i \\ & = \mathbf{a}(x)^\top \mathbf{G}_m \mathbf{z} \end{align*}

The third equation verifies the correctness of the inner commitment:

Az=Ai=1rsici=i=1rci(Asi)=i=1rciti=i=1rciGn(t^i)\begin{align*} \mathbf{Az} & = \mathbf{A} \sum_{i=1}^r \mathbf{s}_i c_i = \sum_{i=1}^r c_i (\mathbf{A s}_i) \\ &= \sum_{i=1}^r c_i \mathbf{t}_i = \sum_{i=1}^r c_i\mathbf{G}_n(\hat{\mathbf{t}}_i) \end{align*}

The fourth equation verifies the outer commitment.

5. Proving Evaluations of Polynomials over Fq\mathbb{F}_q using Rq\mathcal{R}_q

The transformation from Fq\mathbb{F}_q to Rq\mathcal{R}_q is packing vectors over Fq\mathbb{F}_q into elements of Rq\mathcal{R}_q via coefficient embedding, and then performing operations over Fq\mathbb{F}_q using operations over Rq\mathcal{R}_q.

Define an automorphism σ:RqRq\sigma: \mathcal{R}_q \to \mathcal{R}_q that maps an element of Rq\mathcal{R}_q to its negative powers, σ(X)=X1\sigma(X) = X^{-1}. For example, for a=a0+i=1d1aiXiRqa = a_0 + \sum_{i=1}^{d-1} a_i X^i \in \mathcal{R}_q, we have σ(a)=a0+i=1d1aiXiRq\sigma(a) = a_0 +\sum_{i=1}^{d-1} a_i X^{-i} \in \mathcal{R}_q. In Rq\mathcal{R}_q, the constant term of aσ(a)a \cdot \sigma(a) is a0a0+i=1d1aiai=i=0d1aiaia_0 a_0 + \sum_{i=1}^{d-1} a_i a_i = \sum_{i=0}^{d-1} a_i a_i. More generally, the constant term of aσ(b)a \cdot \sigma(b) is aibi\sum a_i b_i.

Let’s clarify the following notations: a polynomial over Fq\mathbb{F}_q is denoted by F(U)=i=0N1FiUi=VFqF(U) = \sum_{i=0}^{N'-1} F_i U^i = V \in \mathbb{F}_q. A polynomial over Rq\mathcal{R}_q is denoted by f(x)=i=0N1fixi=yRqf(x) = \sum_{i=0}^{N-1} f_i x^i = y \in \mathcal{R}_q. We use ff to represent the polynomial FF after being packed into Rq\mathcal{R}_q. To distinguish them, we use N1N-1 for the degree of ff and N1N'-1 for the degree of FF. After coefficient packing, NN and NN' are not equal.

Now, we can use Greyhound to commit to any polynomial over Fq\mathbb{F}_q and prove its evaluations.

6. Conclusion

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

SchemeN = 2²⁶N = 2²⁸N = 2³⁰
CommitProveVerifyCommitProveVerifyCommitProveVerify
Brakedown363.210.703150132.5660548.62.96
Ligero39.93.110.19616912.40.402717500.846
FRI1681850.041
Greyhound4.372.030.49221.28.211.1513241.22.80
References
  1. 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