4.13 Practical Exact Proofs from Lattices

We now apply the product proof in [ALS20] from the computationally indistinguishable masked opening to [BLS19]. A baseline protocol for the exact proof follows:

  • •

    The prover sends out w‾←A⁢𝐲^ and 𝐰‾←𝐁0⁢𝐲‾, where 𝐲←rRq and 𝐲‾←DσN⁢d, and samples 𝐫‾←χN⁢d to commit

    [𝐭‾0𝐭1𝐭2]←[𝐁0𝐛‾1𝖳𝐛‾2𝖳]⁢𝐫‾+[𝟎‾𝐲𝐬].
  • •

    The verifier challenges by sending c←rℤq.

  • •

    The prover replies with 𝐳←c⋅𝐬+𝐲, and starts Π𝗅𝗂𝗇 and the shortness check in [ALS20] by:

    • –

      The prover derives 𝐛‾f0:=𝐛‾1+c⋅𝐛‾2, replies 𝐰′←⟨𝐛‾f0,𝐲‾⟩, then it commits

      [𝐭3𝐭4]←[𝐛‾3𝖳𝐛‾4𝖳]⁢𝐫‾+[⟨𝐛‾4,𝐲‾⟩−3⁢⟨𝐛‾2,𝐲‾⟩2⁢𝐬⟨𝐛‾2,𝐲‾⟩⁢(3⁢𝐬2−𝟏)], (4.32)

      and replies 𝐭3,𝐭4, and the claim 𝐯←⟨𝐛‾2,𝐲‾⟩3+⟨𝐛‾3,𝐲‾⟩.

    • –

      The verifier samples 𝐜 over the {−1,0,1} challenge set 𝒞, with each coefficient has P⁢(±1)=1/4, P⁢(0)=1/2.

    • –

      The prover runs rejection sampling, and outputs 𝐳‾′←𝐲‾+𝐜⋅𝐫‾.

  • •

    The verifier checks by ensuring 𝐳‾′ being short, A⁢𝐳^=w‾+c⋅u‾,

    [𝐰‾𝐰′]+𝐜⋅[𝐭‾0𝐭1+c⋅𝐭2]=[𝐁0𝐛‾f0𝖳]⁢𝐳‾′+𝐜⋅[𝟎‾𝐳],

    and the shortness check from the product proof in [ALS20] by

    𝐟2⁢(𝐟2−𝐜)⁢(𝐟2+𝐜)+𝐟3+𝐜𝐟4=𝐯, (4.33)

    where 𝐟i=⟨𝐛‾i,𝐳‾′⟩−𝐜𝐭i for i∈[2,4].

The 2 garbage terms defined in eq. 4.32 derive from the degree-3 shortness check over {−1,0,1} from the product proof over the masked opening, similar to the one in [ALS20]:

𝐟2⁢(𝐟2−𝐜)⁢(𝐟2+𝐜) =(⟨𝐛‾2,𝐲‾⟩−𝐜𝐬)⁢(⟨𝐛‾2,𝐲‾⟩−𝐜⁢(𝐬−𝟏))⁢(⟨𝐛‾2,𝐲‾⟩−𝐜⁢(𝐬+𝟏))
=⟨𝐛‾2,𝐲‾⟩3−3⁢𝐬⁢⟨𝐛‾2,𝐲‾⟩2⁢𝐜+⟨𝐛‾2,𝐲‾⟩⁢(3⁢𝐬2−𝟏)⁢𝐜2−(𝐬3−𝐬)⁢𝐜3.

Hence, when 𝐟2 is the masked opening for 𝐬, we let the garbage terms defined in eq. 4.32, such that

𝐟4 =⟨𝐛‾4,𝐲‾⟩−𝐜⁢⟨𝐛‾2,𝐲‾⟩⁢(3⁢𝐬2−𝟏),
𝐟3 =⟨𝐛‾3,𝐲‾⟩−𝐜⁢(⟨𝐛‾4,𝐲‾⟩−3⁢⟨𝐛‾2,𝐲‾⟩2⁢𝐬),

so 𝐟3 can cancel out the computationally indistinguishable masking ⟨𝐛‾4,𝐲‾⟩ in 𝐟4, and the claim 𝐯 is

𝐟2⁢(𝐟2−𝐜)⁢(𝐟2+𝐜)+𝐟3+𝐜𝐟4=⟨𝐛‾2,𝐲‾⟩3+⟨𝐛‾3,𝐲‾⟩−(𝐬3−𝐬)⁢𝐜3=𝐯−(𝐬3−𝐬)⁢𝐜3,

where a satisfying 𝐬 should be vanishing in 𝐬3−𝐬.

The current baseline protocol deviates from [BLS19], as c was needed for both the random linear combination to embed 𝐬 to 𝐳 (later proved by the linear relation proof), and the shortness check from the product proof, now c only serves the first purpose.

Now we move forward and amplify the soundness for the baseline protocol via automorphism repetition, such that the BDLOP commits to k uniform maskings, 1 message, and 2 garbage terms for shortness check. The masked openings for the garbage terms, and the combined claim, are formed as

𝐟k+3=⟨𝐛‾k+3,𝐲‾1⟩−𝐜⁢∑j∈[0,k−1]𝜶j+1⁢σ−j⁢(⟨𝐛‾k+1,𝐲‾j+1⟩⁢(3⁢𝐬2−𝟏))=⟨𝐛‾k+3,𝐲‾1⟩−𝐜𝐦k+3,𝐟k+2=⟨𝐛‾k+2,𝐲‾1⟩−𝐜⁢(⟨𝐛‾k+3,𝐲‾1⟩−3⁢∑j∈[0,k−1]𝜶j+1⁢σ−j⁢(⟨𝐛‾k+1,𝐲‾j+1⟩2⁢𝐬))=⟨𝐛‾k+2,𝐲‾1⟩−𝐜𝐦k+2,𝐯=⟨𝐛‾k+2,𝐲‾1⟩+∑j∈[0,k−1]𝜶j+1⁢σ−j⁢(⟨𝐛‾k+1,𝐲‾j+1⟩3), (4.34)

such that the random linear combination yields the statement and the invariant for combined claim

𝟎=∑j∈[0,k−1]𝜶j+1⁢σ−j⁢(𝐬3−𝐬),𝐯=∑j∈[0,k−1]𝜶j+1⁢σ−j⁢(𝐟k+1,j+1⁢(𝐟k+1,j+1−σj⁢(𝐜))⁢(𝐟k+1,j+1+σj⁢(𝐜)))+𝐟k+2+𝐜𝐟k+3. (4.35)

The amplified baseline protocol follows:

  • •

    The prover sends out w‾i←A⁢𝐲^i and 𝐰‾i←𝐁0⁢𝐲‾i, where 𝐲i←rRq and 𝐲‾i←DσN⁢d, and samples 𝐫‾←χN⁢d to commit

    [𝐭‾0𝐭1⋮𝐭k𝐭k+1]←[𝐁0𝐛‾1𝖳⋮𝐛‾k𝖳𝐛‾k+1𝖳]⁢𝐫‾+[𝟎‾𝐲1⋮𝐲k𝐬].
  • •

    The verifier challenges by sending c1,…,ck←rℤq and 𝜶1,…,𝜶k←rRq.

  • •

    The prover replies with 𝐳i←ci⋅𝐬+𝐲i for i∈[1,k], and starts Π𝗅𝗂𝗇 and the shortness check in [ALS20] by:

    • –

      The prover derives 𝐛‾fi:=𝐛‾i+ci⋅𝐛‾k+1, replies 𝐰i′←⟨𝐛‾fi,𝐲‾i⟩, then it commits

      [𝐭k+2𝐭k+3]←[𝐛‾k+2𝖳𝐛‾k+3𝖳]⁢𝐫‾+[𝐦k+2𝐦k+3],

      and replies with 𝐭k+2,𝐭k+3, and the claim 𝐯 in eq. 4.34,

    • –

      The verifier samples 𝐜 over the {−1,0,1} challenge set 𝒞, with each coefficient has P⁢(±1)=1/4, P⁢(0)=1/2.

    • –

      The prover runs rejection sampling, and outputs 𝐳‾i′←𝐲‾i+σi−1⁢(𝐜)⋅𝐫‾ for i∈[1,k].

  • •

    The verifier checks by ensuring 𝐳‾i′ being short, A⁢𝐳^i=w‾i+ci⋅u‾ for i∈[1,k],

    [𝐰‾i𝐰i′]+σi−1⁢(𝐜)⋅[𝐭‾0𝐭i+ci⋅𝐭k+1]=[𝐁0𝐛‾fi𝖳]⁢𝐳‾i′+σi−1⁢(𝐜)⋅[𝟎‾𝐳i],

    and the shortness check from the product proof in [ALS20] by checking the second equality eq. 4.35, where

    𝐟k+1,j+1=⟨𝐛‾k+1,𝐳‾j+1′⟩−σj⁢(𝐜)⁢𝐭k+1,

    for j∈[0,k−1], and 𝐟j=⟨𝐛‾j,𝐳‾1′⟩−𝐜𝐭j for j∈{k+2,k+3}.

But now the baseline protocol augmented with automorphism repetition is more like the prior attempt to amplify soundness for product proof with automorphism repetition. The shortness proof itself needs 2 garbage terms, while the linearity test for each repetition needs k separate masking terms. A question arises that how can BDLOP commits to only a constant number of messages, while we can still amplify the soundness.

Linear Relation Testing via NTT Averaging.

We consider an interactive protocol testing the matrix multiplication statement A⁢𝐬^=u‾ without 𝐲←rRq: Consider a linear prover, which is bound to a witness chosen before the challenge, and must return the verifier-specified linear evaluation of the witness, then

  • •

    The verifier challenges by γ‾←rℤqd.

  • •

    The prover replies with z←γ‾𝖳⁢A⁢𝐬^.

  • •

    The verifier checks z=⟨γ‾,u‾⟩.

By Schwartz-Zippel, if A⁢𝐬^−u‾≠0‾, over the randomness of γ‾, the probability of γ‾𝖳⁢(A⁢𝐬^−u‾)=0 is q−1.

Put it in the polynomial ring computation over the NTT terms, we first consider the lemma in [ENS20].

Lemma 4.13.1 (NTT Averaging Lemma).

Let Rq be defined as eq. 4.14, 𝐟∈Rq, and 𝐟^i=𝐟mod(Xd/ℓ−ξi) for i∈ℤ2⁢ℓ∗, then when we lift 𝐟^i to Rq, we have

1ℓ⁢∑i∈ℤ2⁢ℓ∗𝐟^i=∑j∈[0,d/ℓ−1]fj⁢Xj.
Proof.

Recall the eq. 4.17, then noticing

∑i∈[0,ℓ−1]ξ(2⁢i+1)⁢v=ξv⁢ξ2⁢ℓ⁢v−1ξ2⁢v−1=0

for any v∈[1,ℓ−1], then all the ξj in eq. 4.17 with degree j>0 are filtered out in the averaging summation of 𝐟^i, while the constant coefficients {fi}i∈[0,d/ℓ−1] are scaled up by ℓ. ∎

Consider 𝖭𝖳𝖳−1⁢(γ‾𝖳⁢A)∈Rq, then by lemma 4.13.1, d−1⁢⟨γ‾𝖳⁢A,𝐬^⟩ is in the constant coefficient of 𝖭𝖳𝖳−1⁢(γ‾𝖳⁢A)⋅𝐬∈Rq.

  • •

    The prover sends out 𝐰‾←𝐁0⁢𝐲‾, where 𝐲‾←DσN⁢d, samples 𝐠←r{Rq:g0=0} and 𝐫‾←χN⁢d, to commit

    [𝐭‾0𝐭1𝐭2]←[𝐁0𝐛‾1𝖳𝐛‾2𝖳]⁢𝐫‾+[𝟎‾𝐠𝐬].
  • •

    The verifier challenges by sending γ‾←rℤqd.

  • •

    The prover replies with 𝐳←𝖭𝖳𝖳−1⁢(d⁢γ‾𝖳⁢A)⋅𝐬+𝐠, and starts Π𝗅𝗂𝗇 and the shortness check in [ALS20] by:

    • –

      The prover derives 𝐛‾f0:=𝐛‾1+𝖭𝖳𝖳−1⁢(d⁢γ‾𝖳⁢A)⋅𝐛‾2, replies 𝐰′←⟨𝐛‾f0,𝐲‾⟩, then it commits

      [𝐭3𝐭4]←[𝐛‾3𝖳𝐛‾4𝖳]⁢𝐫‾+[⟨𝐛‾4,𝐲‾⟩−3⁢⟨𝐛‾2,𝐲‾⟩2⁢𝐬⟨𝐛‾2,𝐲‾⟩⁢(3⁢𝐬2−𝟏)],

      and replies 𝐭3,𝐭4, and the claim 𝐯←⟨𝐛‾2,𝐲‾⟩3+⟨𝐛‾3,𝐲‾⟩.

    • –

      The verifier samples 𝐜 over the {−1,0,1} challenge set 𝒞, with each coefficient has P⁢(±1)=1/4, P⁢(0)=1/2.

    • –

      The prover runs rejection sampling, and outputs 𝐳‾′←𝐲‾+𝐜⋅𝐫‾.

  • •

    The verifier checks by ensuring 𝐳‾′ being short, z0=⟨γ‾,u‾⟩,

    [𝐰‾𝐰′]+𝐜⋅[𝐭‾0𝐭1+𝖭𝖳𝖳−1⁢(d⁢γ‾𝖳⁢A)⋅𝐭2]=[𝐁0𝐛‾f0𝖳]⁢𝐳‾′+𝐜⋅[𝟎‾𝐳],

    and the shortness check from the product proof in [ALS20] by eq. 4.33.

Coefficient Filtering via Automorphisms.

The prior construction from NTT averaging suffices as a single repetition, but for soundness amplification by automorphism repetition, the masking term over {Rq:g0=0} makes it admissible for only a single repetition.

We now want a way to filter out coefficients over Rq via linear operations and automorphisms, or otherwise the new linearity test is no better than the [BLS19] one.

We start by an observation that can filter out all the odd powered coefficients. Since

σd+1⁢(X)=Xd+1≡−Xmod(Xd+1),

then

𝐟+σd+1⁢(𝐟)=2⁢(f0+f2⁢X2+⋯+fd−2⁢Xd−2).

Then, in log⁡k rounds, the automorphisms σd+1,σd/2+1,…,σ2⁢d/k+1 can yield

k⁢(f0+fk⁢Xk+⋯+fd−k⁢Xd−k).

Moreover, after r round for r∈[1,log2⁡k], all the automorphisms used are indexed by {σi⋅2⁢d/2r+1}i∈[0,2r−1].

Lemma 4.13.2 (Automorphism Filtering Lemma).

For k≤d and k∣d, then for any 𝐟∈Rq,

Fk⁢(𝐟)=∑i∈[0,k−1]σi⋅2⁢d/k+1⁢(𝐟)=k⁢(f0+fk⁢Xk+⋯+fd−k⁢Xd−k).

Moreover, when k<d,

Fk⁢(𝐟)=∑i∈[0,k−1]σ2⁢d/k+1i⁢(𝐟). (4.36)

Now with lemma 4.13.2, each repetition can be mapped to coefficients of degree in i∈[0,k−1], by multiplying terms Xi, then the masking term can be relaxed to 𝐠←r{Rq:gi=0,i∈[0,k−1]}, the responses masked by 𝐠 is,

𝐳←𝐠+∑i∈[0,k−1]k−1⁢Xi⁢Fk⁢(𝖭𝖳𝖳−1⁢(d⁢γ‾i𝖳⁢A)⋅𝐬), (4.37)

which can be derived from the commitment

𝐭=𝐭1+∑i∈[0,k−1]k−1⁢Xi⁢Fk⁢(𝖭𝖳𝖳−1⁢(d⁢γ‾i𝖳⁢A)⋅𝐭2)=⟨𝐛‾1,𝐫‾⟩+∑i∈[0,k−1]k−1⁢Xi⁢Fk⁢(𝖭𝖳𝖳−1⁢(d⁢γ‾i𝖳⁢A)⋅⟨𝐛‾2,𝐫‾⟩)+𝐳, (4.38)

where 𝐭1 commits to 𝐠, and 𝐭2 commits to 𝐬.

Yet, there are automorphism terms in eq. 4.38, and the prior vanilla Π𝗅𝗂𝗇 no longer suffices. We start by stepping back and thinking up a way to prove linear relation over 2 BDLOP commitments from different commitment keys (assuming they are of same size). Supposing they commit to 𝐦0 and 𝐦1, by sampling 𝐫‾0,𝐫‾1←χN⁢d, and

[𝐭‾0𝐭1]←[𝐁0𝐛‾1𝖳]⁢𝐫‾0+[𝟎‾𝐦0],[𝐭‾2𝐭3]←[𝐁2𝐛‾3𝖳]⁢𝐫‾1+[𝟎‾𝐦1],

and 𝐦2=𝐦0+𝐦1 is the public statement. The protocol works as follows:

  • •

    The prover samples 𝐲‾0,𝐲‾1←DσN⁢d, and outputs 𝐰‾0←𝐁0⁢𝐲‾0, 𝐰‾1←𝐁2⁢𝐲‾1, and 𝐰2←⟨𝐛‾1,𝐲‾0⟩+⟨𝐛‾3,𝐲‾1⟩.

  • •

    The verifier challenges with 𝐜 over the challenge set 𝒞, where each coefficient has P⁢(±1)=1/4, P⁢(0)=1/2.

  • •

    The prover runs rejection sampling, and replies 𝐳‾0′←𝐲‾0+𝐜⋅𝐫‾0 and 𝐳‾1′←𝐲‾1+𝐜⋅𝐫‾1.

  • •

    The verifier checks 𝐳‾0′ and 𝐳‾1′ are short, and

    [𝐁0𝟎𝐛‾1𝖳]⁢𝐳‾0′+[𝟎𝐁2𝐛‾3𝖳]⁢𝐳‾1′+𝐜⋅[𝟎‾𝟎‾𝐦2]=[𝐰‾0𝐰‾1𝐰2]+𝐜⋅[𝐭‾0𝐭‾2𝐭1+𝐭3]

The soundness is at most p by eq. 4.18. Automorphism repetition can be applied to have soundness to at most pk.

With this protocol, we can actually prove the public statement of automorphism filtering Fk⁢(𝐬) for committed 𝐬. The intuition was to view σ⁢(𝐁0) and σ⁢(𝐛‾1) as different commitment keys, where σ=σ2⁢d/k+1 for some k<d and k|d, and the commitment is formed from 𝐫‾←χN⁢d by

[𝐭‾0𝐭1]=[𝐁0𝐛‾1𝖳]⁢𝐫‾+[𝟎‾𝐬].
  • •

    The prover samples 𝐲‾i←DσN⁢d, outputs 𝐰‾i←𝐁0⁢𝐲‾i for i∈[0,k−1], and

    𝐰k←∑i∈[0,k−1]σ−i⁢(⟨𝐛‾1,𝐲‾i⟩). (4.39)
  • •

    The verifier challenges with 𝐜 over the challenge set 𝒞, where each coefficient has P⁢(±1)=1/4, P⁢(0)=1/2.

  • •

    The prover runs rejection sampling, and replies 𝐳‾i′←𝐲‾i+σi⁢(𝐜)⋅𝐫‾ for i∈[0,k−1].

  • •

    The verifier checks 𝐳‾i′ are short for i∈[0,k−1], and

    [𝐁0𝟎⋮𝟎𝐛‾1𝖳]⁢𝐳‾0′+[𝟎σ−1⁢(𝐁0)⋮𝟎σ−1⁢(𝐛‾1𝖳)]⁢σ−1⁢(𝐳‾1′)+⋯+[𝟎⋮𝟎σ−(k−1)⁢(𝐁0)σ−(k−1)⁢(𝐛‾1𝖳)]⁢σ−(k−1)⁢(𝐳‾k−1′)+𝐜⋅[𝟎‾⋮⋮𝟎‾Fk⁢(𝐬)]=[𝐰‾0σ−1⁢(𝐰‾1)⋮σ−(k−1)⁢(𝐰‾k−1)𝐰k]+𝐜⋅[𝐭‾0σ−1⁢(𝐭‾0)⋮σ−(k−1)⁢(𝐭‾0)Fk⁢(𝐭1)]. (4.40)

The soundness is at most p by eq. 4.18. Now take a closer look: The prior protocol uses 𝐜 to test the automorphism filtering via the linear relation test over distinct BDLOP commitment keys in eq. 4.40. For automorphism repetition, think concretely from 𝐳‾1′←𝐲‾1+σ⁢(𝐜)⋅𝐫‾, then the next 𝐰k,1 to send before 𝐜 is

𝐰k,1←∑i∈[0,k−1]σ−i⁢(⟨𝐛‾1,𝐲‾i+1modk⟩),

and eq. 4.40 becomes

[𝐁0𝟎⋮𝟎𝐛‾1𝖳]⁢𝐳‾1′+[𝟎σ−1⁢(𝐁0)⋮𝟎σ−1⁢(𝐛‾1𝖳)]⁢σ−1⁢(𝐳‾2′)+⋯+[𝟎⋮𝟎σ−(k−1)⁢(𝐁0)σ−(k−1)⁢(𝐛‾1𝖳)]⁢σ−(k−1)⁢(𝐳‾0′)+σ⁢(𝐜)⋅[𝟎‾⋮⋮𝟎‾Fk⁢(𝐬)]=[𝐰‾1σ−1⁢(𝐰‾2)⋮σ−(k−1)⁢(𝐰‾0)𝐰k,1]+σ⁢(𝐜)⋅[𝐭‾0σ−1⁢(𝐭‾0)⋮σ−(k−1)⁢(𝐭‾0)Fk⁢(𝐭1)].

By induction,

𝐰k,j←∑i∈[0,k−1]σ−i⁢(⟨𝐛‾1,𝐲‾i+jmodk⟩)=σj⁢(𝐰k). (4.41)

Supposing a slot under the slots grouped by (Xk−ξk) is wrong, then the adversary needs to guess 𝐜mod(Xk−ξk) to convince the verifier, with the same strategy for the affine forging in weak opening in the note for [ALS20], by fixing the pre-challenge 𝐰‾ for the relevant error term, yielding the soundness of at most pk, where p is eq. 4.18 for the guessing probability of each coefficient in coarse (Xk−ξk).

The rest is to prove the automorphism filtering of each 𝖭𝖳𝖳−1⁢(d⁢γ‾j𝖳⁢A)⁢𝐬 for j∈[0,k−1] by stacking them up over Xj, normalizing by k−1, masking by 𝐠, and eventually eq. 4.37. To carry on the automorphism filtering test derived from the linearity test, each 𝐰k,j derived from eq. 4.39 is indexed by j∈[0,k−1] for each γ‾j by

𝐰k,j←∑i∈[0,k−1]σ−i⁢(⟨𝖭𝖳𝖳−1⁢(d⁢γ‾j𝖳⁢A)⋅𝐛‾2,𝐲‾i⟩).

Correspondingly, the verifier can derive

𝐮k,j←∑i∈[0,k−1]σ−i⁢(⟨𝖭𝖳𝖳−1⁢(d⁢γ‾j𝖳⁢A)⋅𝐛‾2,𝐳‾i′⟩),

and on the third round prover response, by eq. 4.41, for each i∈[0,k−1] automorphic challenges σi⁢(𝐜),

𝐰fi←⟨𝐛‾1,𝐲‾i⟩+∑j∈[0,k−1]k−1⁢Xj⁢σi⁢(𝐰k,j), (4.42)

and the verifier can derive correspondingly

𝐮fi←⟨𝐛‾1,𝐳‾i′⟩+∑j∈[0,k−1]k−1⁢Xj⁢σi⁢(𝐮k,j), (4.43)

such that for each i∈[0,k−1] automorphic challenges σi⁢(𝐜),

𝐰fi+σi⁢(𝐜)⋅(𝐭1+∑j∈[0,k−1]k−1⁢Xj⁢Fk⁢(𝖭𝖳𝖳−1⁢(d⁢γ‾j𝖳⁢A)⋅𝐭2))⏟𝐭=𝐮fi+σi⁢(𝐜)⋅(𝐠+∑j∈[0,k−1]k−1⁢Xj⁢Fk⁢(𝖭𝖳𝖳−1⁢(d⁢γ‾j𝖳⁢A)⋅𝐬))⏟𝐳, (4.44)

where 𝐭,𝐳 were in eq. 4.38 and eq. 4.37.

Again, now the masked openings for the garbage terms, and the combined claim, are formed as

𝐟4=⟨𝐛‾4,𝐲‾0⟩−𝐜⁢∑j∈[0,k−1]𝜶j⁢σ−j⁢(⟨𝐛‾2,𝐲‾j⟩⁢(3⁢𝐬2−𝟏))=⟨𝐛‾4,𝐲‾0⟩−𝐜𝐦4,𝐟3=⟨𝐛‾3,𝐲‾0⟩−𝐜⁢(⟨𝐛‾4,𝐲‾0⟩−3⁢∑j∈[0,k−1]𝜶j⁢σ−j⁢(⟨𝐛‾2,𝐲‾j⟩2⁢𝐬))=⟨𝐛‾3,𝐲‾0⟩−𝐜𝐦3,𝐯=⟨𝐛‾3,𝐲‾0⟩+∑j∈[0,k−1]𝜶j⁢σ−j⁢(⟨𝐛‾2,𝐲‾j⟩3), (4.45)

such that the random linear combination yields the statement and the invariant for combined claim

𝟎=∑j∈[0,k−1]𝜶j⁢σ−j⁢(𝐬3−𝐬),𝐯=∑j∈[0,k−1]𝜶j⁢σ−j⁢(𝐟2,j⁢(𝐟2,j−σj⁢(𝐜))⁢(𝐟2,j+σj⁢(𝐜)))+𝐟3+𝐜𝐟4, (4.46)

where 𝐟i=⟨𝐛‾i,𝐳‾0′⟩−𝐜𝐭i=⟨𝐛‾i,𝐲‾0⟩−𝐜𝐦i for i∈{3,4}, each 𝐟2,j for j∈[0,k−1] is

𝐟2,j=⟨𝐛‾2,𝐳‾j′⟩−σj⁢(𝐜)⁢𝐭2=⟨𝐛‾2,𝐲‾j⟩−σj⁢(𝐜)⁢𝐬,

and the second equality holds if the prover is honest.

The protocol for a single matrix multiplication claim follows:

  • •

    The prover sends 𝐰‾i←𝐁0⁢𝐲‾i, where 𝐲‾i←DσN⁢d, samples 𝐠←r{Rq:gj=0,j∈[0,k−1]} and 𝐫‾←χN⁢d to commit

    [𝐭‾0𝐭1𝐭2]←[𝐁0𝐛‾1𝖳𝐛‾2𝖳]⁢𝐫‾+[𝟎‾𝐠𝐬].
  • •

    The verifier challenges by sending γ‾0,…,γ‾k−1←rℤqd and 𝜶0,…,𝜶k−1←rRq.

  • •

    The prover replies 𝐳 in eq. 4.37, and starts Π𝗅𝗂𝗇 and the shortness check in [ALS20] by:

    • –

      The prover replies each 𝐰fi for i∈[0,k−1] in eq. 4.42, then it commits

      [𝐭3𝐭4]←[𝐛‾3𝖳𝐛‾4𝖳]⁢𝐫‾+[𝐦3𝐦4],

      and replies with 𝐭3,𝐭4, and the claim 𝐯 in eq. 4.45,

    • –

      The verifier samples 𝐜 over the {−1,0,1} challenge set 𝒞, with each coefficient has P⁢(±1)=1/4, P⁢(0)=1/2.

    • –

      The prover runs rejection sampling, and outputs 𝐳‾i′←𝐲‾i+σi⁢(𝐜)⋅𝐫‾ for i∈[0,k−1].

  • •

    The verifier checks 𝐳‾i′ being short, zj=⟨γ‾j,u‾⟩ for j∈[0,k−1].

    It then derives 𝐮fi for i∈[0,k−1] in eq. 4.43, 𝐭 in eq. 4.38, checks

    𝐰‾i+σi⁢(𝐜)⋅𝐭‾0 =𝐁0⁢𝐳‾i′,
    𝐰fi+σi⁢(𝐜)⋅𝐭 =𝐮fi+σi⁢(𝐜)⋅𝐳

    for i∈[0,k−1], which is eq. 4.44 and eq. 4.40,

    Finally, it checks the shortness of 𝐬^ by the second equality eq. 4.46.

Cost Comparison Against [BLS19].

We compare the published noninteractive constructions of [BLS19, ENS20] by counting transmitted elements and their coefficient widths.

Let n be the total witness length, A∈ℤqm×n, d be the Rq degree, and bq=⌈log2⁡q⌉. We retain N for the opening-vector width and μ for the top commitment rank. Counts exclude the public statement and commitment key. The following are the papers’ historical parameter choices for approximately 128-bit security.

Parameter BLS19 ENS20
Matrix dimensions m×n 1024×2048 1024×2048
Coefficient width bq 32 32
Ring degree d 2048 128
Witness polynomials n/d 1 16
Repetitions t=4, t′=3 k=4
Commitment ranks (λ,μ) (1,1) (10,9)

In particular, ENS separates the witness length from the ring degree: Their example uses 16 witness polynomials.

BLS: transmitted objects. In the optimized Fiat–Shamir protocol of [BLS19, Algorithms 2–3 and Section 3.4], each of the t commitment vectors has five ring elements, with one shared across repetitions. There are t masked witness replies and t⁢t′ short opening vectors of width 6.

Component Count Bits per coefficient or choice
Commitments 1+4⁢t ring elements bq
Masked witness replies t ring elements bq
Short opening replies 6⁢t⁢t′ ring elements bz
Scalar challenges t scalars bq
Monomial challenges t⁢t′ choices ⌈log2⁡ℓ⌉

Here d=n and ℓ=2⁢d for the power-of-two benchmark. The proof size in bits is therefore

SBLS=(1+5⁢t)⁢d⁢bq+6⁢t⁢t′⁢d⁢bz+t⁢(bq+t′⁢⌈log2⁡ℓ⌉). (4.47)

For σ=919.13, the short-coefficient width is bz=⌈log2⁡(12⁢σ)⌉=14. Substituting the benchmark parameters gives

Component Calculation in bytes Size
Full part 21⋅2048⋅32/8=172,032 168 KiB
Short part 72⋅2048⋅14/8=258,048 252 KiB
Challenges 4⁢(32+3⋅12)/8=34 34 bytes
Total 430,114 420.0332 KiB

ENS: transmitted objects. For n/d witness polynomials, the committed message count and opening width are

L=n/d+3,N=λ+μ+L.

The additional 3 messages are the 𝐠 linear-test mask, and the two shortness garbage terms.

Besides the μ+L commitment elements, ENS transmits one masked linear-test polynomial, called h in the paper. For our single-polynomial notation it is the publicly centered response

h=𝐳−∑j=0k−1Xj⁢⟨γ‾j,u‾⟩,

so its first k coefficients are known to be zero. After reconstructing the first messages, the remaining short replies contain k⁢N ring elements. With bz=⌈log2⁡(2⁢δ1)⌉, [ENS20, Section 4.2, Equation (11)] gives the basic bit count

SENSbasic=(μ+n/d+4)⁢d⁢bq+k⁢(λ+μ+n/d+3)⁢d⁢bz=[n+(μ+4)⁢d]⁢bq+k⁢[n+(λ+μ+3)⁢d]⁢bz. (4.48)

This leading count omits the 256-bit challenge seed and the saving from the k known coefficients of h.

For bookkeeping, insert δ1=218 from [ENS20, Appendix B.1], so bz=19, L=19, and N=38:

Component Calculation in bytes Size
Full part 29⋅128⋅32/8=14,848 14.5 KiB
Short part 152⋅128⋅19/8=46,208 45.125 KiB
Basic total 61,056 59.625 KiB

Although ENS has more short polynomials (152 versus 72), it has 19456 short coefficients, compared to BLS’s 147456. ENS and BLS contain 29 and 21 full ring elements, respectively, or 3712 and 43008 coefficients.