Plonk argument of knowledge can be described in 5 steps in a high level:

- Computation
- Arithmetic circuit
- Constrain System
- Transfer the constrain system to polynomial
- Prove gate constraints are satisfied.
- Prove permutation constraints are satisfied.

### Constrain System in Plonk (Plonkish constrain system)

The constraint system in Plonk is

$$(\textbf{q}_{\textbf{L}_i} )\cdot x_{a_i}+(\textbf{q}_{\textbf{R}_i} )\cdot x_{b_i}+(\textbf{q}_{\textbf{O}_i} )\cdot x_{c_i}+(\textbf{q}_{\textbf{M}_i} )\cdot (x_{a_i}x_{b_i})+(\textbf{q}_{\textbf{C}_i} )=0$$

### Transfer the constrain system to polynomial

There are 12 polynomial in total:

**3 witness polynomials:** \(a(X),b(X),c(X)\), represent the left, right inputs and the outputs of the gates.

**5 selector polynomials: **\(q_M(X), q_L(X),q_R(X),q_O(X),q_C(X)\), these polynomials are the public input and computed from the circuit

**3 permutation mapping polynomials**: \(S_{\sigma 1}(X),S_{\sigma 2}(X),S_{\sigma 3}(X)\) these polynomials are the public input and computed from the circuit

1 **permutation polynomial: **\(z(X)\)

$$z(w)=1$$

$$z(w^i)=\prod\limits_{j=2}^i\frac{(w_j^j+\beta w^j+\gamma)(w_{n+j}+\beta k_1 w^j+\gamma)(w_{2n+j}+\beta k_2 w^j+\gamma)}{ (w_j^j+\sigma^*(j)\beta w^j+\gamma)(w_{n+j}+\sigma^*(n+j)\beta k_1 w^j+\gamma)(w_{2n+j}+\sigma^*(2n+j)\beta k_3 w^j+\gamma)} $$

later will prove conditions:

this utilizes the lipton trick.