Skip to content

Step 3: Master polynomial ​

We are now going to build a "master polynomial" which will encode the gate constraints and the permutation constraints in one, which will be more efficient and equivalent to checking each constrain separately.

Exercise 21 ​

Generate a challenge α and push it to the transcript. Compute the gates constraing on the blinded polynomials:

t_gates=qM⋅a_blind⋅b_blind+qL⋅a_blind+qR⋅b_blind−c_blind

Then compute the L1 function as above and the constraints:

t_perm_start=(z_poly−1)⋅L1t_perm_step=z_poly⋅N_poly−D_poly⋅z_poly(x⋅ω)

Compute the master polynomial:

bigt=t_gates+α⋅t_perm_start+α2⋅t_perm_step

and its quotient:

quotient_poly=bigtZH

Commit to quotient_poly and push to the transcript.

python
#Solve here!
alpha = 
L1 = 
t_gates     = 
t_perm_start= 
z_shifted   = 
t_perm_step = 
bigt =  
quotient_poly = 
c_t =

𝒫𝔩𝔬𝔫𝒦 Tutorial by zkSecurity