title | tags | ||||
---|---|---|---|---|---|
29. R1CS_Plonkish |
|
Authors: Evta, looking forward to your joining
Plonkish Arithmetization represents a significant advancement in Zero-knowledge proofs (ZKPs) that allow one party, the Prover, to prove to another party, the Verifier, that a statement is true without revealing any additional information. Let's delve into the intricacies of Plonkish Arithmetization and its comparison with the well-established R1CS framework.
R1CS, or Rank-1 Constraint Systems, revolves around multiplication gates, where three "selector" matrices - U, V, and W - designate the "left input", "right input", and "output" of each multiplication gate, respectively, 1 of which indicates involvement in computations and 0 non-involvement. The selector matrix usually has a number of columns equivalent to the number of variables, with the number of rows matching the count of multiplication gates. Additionally, R1CS accommodates constant multiplication gates, a special case treated as addition gates.
Consider a scenario where we have four input variables labeled
Imagine a circuit with multiplication gates. Three matrices (U), (V), and (W \in \mathbb{F}^{n\times m}) describe how the gates are connected (circuit's setup). W is a table with rows matching the number of gates (n) and columns hinting at the number of wires (m). Each row in W tells how the corresponding gate connects its inputs and output.
Left input matrix (U):
Right input matrix (V):
Output matrix (W):
We can easily verify the following equation:
Plonkish arithmetization is a more efficient way to express circuits for zero-knowledge proofs:
Circuit Setup:
Instead of three tables (U,V,W) with potentially many columns, Plonk uses a single W table with just 3 columns to reduces complexity.
Plonk can handle more than just addition and multiplication gates, such as comparisons, lookups, and even memory access (RAM).
Key Tables:
- W table: Stores assignments (secret).
- Q table (Selector): Defines operation for each row (addition or multiplication).
- Permutation table: Ensures consistency when values are moved around in W.
We define a matrix
To distinguish addition and multiplication, we define a vector
Permutation proofs confirm this consistency post rearrangement, verified by Prover.
If three or more vector positions must share a value, Prover cyclically shifts them, ensuring equality with the original.
To ensure that