Arithmetization

The structure of zk: zk_struct

The goal of arithmetizations is reduce the computation to single polynomial identity.

Two common arithmetizations

R1CS -> QAP

R1CS (rank 1 constraint system) is equivalent to QAP (Quadratic arithmetic program). The circom is complied to R1CS.

Any computation expressed in the R1CS system we want to check its correctness using a single polynomial identity.

An R1CS is a conjunction of constraints, each of the form: (a DOT x) * (b DOT x) = (c DOT x)

R1CS -> QAP: R1CS

Many problems in Symbolic Computation and cryptography can be expressed as the task of computing some polynomials.

In computational complexity theory, arithmetic circuits are the standard model for computing polynomials. - wikepedia

The details of R1CS can be seen in the two following post. Highly recommend the first post begin with the introduction of arithmetic circuit and constraint system, and then dive into the R1CS from shallow to deep.

  1. Rank-1 Constraint System with Application to Bulletproofs
  2. Quadratic Arithmetic Programs: from Zero to Hero | by Vitalik Buterin | Medium

AIR

AIR (Algebraic intermediate representation) --pre-processing--> PAIR --verifier's randomness--> RAP

RAP is the arithmetization method used by PLONK

References