Skip to content

Proofs

The proof generating function receives two parameters, the vector S1 and a polynomial Qc. Similar as before, this will compute a point on the curve which is equal to:

π=b0P+b1τP+b2τ2P++blτlP=Qc(τ)P

where bi are the coefficients of the polynomial Qc. Now, the way this polynomial is constructed is essential for the proof:

Qc(x)=f(x)f(γ)xγ

Again here we are exploiting the fact that γ is a root of f(x)f(γ) therefore this polynomial must be divisible by xγ.

Exercise 9

Implement the proof function and test it on the Qc polynomial for the challenge γ=151515 and the polynomial a(x).

python
def proof(S1,Qc):
    #Solve here!
    return c

#Given a challenge γ
γ = 151515
#Solve here!
b = a(γ)
Qc= (a - b)//(x-γ)
π = proof(S1,Qc)

If computed correctly, the proof obtained from proof when called on Qc should be:

π=(18427764633036746853571353448280965399000717707037995558464363091930831203059:15823869948268955546174436172082876809321127559750802916163692992123652869945:1)

The value of the polynomial on the challenge point is:

a(γ)=1739069066686765

𝒫𝔩𝔬𝔫𝒦 Tutorial by zkSecurity