ZK terminology
Arithmetization
Arithmetization is a technique in zero-knowledge proof systems that converts computations into polynomial equations for efficient verification by a prover and a verifier.
Builder
The builder sets up the constraint system, determining the placement and geometry of gates and providing essential information for system construction.
Circuit
An arithmetic circuit is a cryptographic tool that encodes computational problems using gates, each performing operations like addition or multiplication.
Constraint
A constraint is a rule that certain operations must follow to maintain validity and support proof generation in ZKsync.
Constraint degree
Constraint degree refers to the highest polynomial degree present in the gates of a constraint system, with ZKsync allowing up to a degree of eight.
Constraint system
A constraint system is a set of polynomial constraints representing the proofs to be verified. It is satisfied when specific values assigned to its variables make all equations true.
Geometry
In ZKsync's PLONK arithmetization, geometry refers to the arrangement of witness data in a grid format across defined rows and columns. Each row defines a gate (or a few gates), and the columns are as long as needed to hold all of the witness data. ZKsync uses ~164 base witness columns.
Log
A log in ZKsync is similar to a database log, recording a list of changes within the system.
Lookup table
A lookup table maps input values to outputs, streamlining the validation of computations and relationships in zero-knowledge proofs by providing a quick reference.
Proof
A proof can either indicate the entire proving process or specifically refer to the data that the prover sends to the verifier.
Prover
In ZKsync, a prover processes transactions by computing proofs that validate state transitions, which are then verified by a smart contract on Ethereum.
Satisfiable
A circuit or constraint system is satisfiable if a provided witness meets all set conditions and constraints.
State Differentials
State Diffs show the differences in account states before and after transaction processing, indicating changes like an increase in ETH balance.
Variables
Variables serve as placeholders in a constraint system, holding space for witness data that will satisfy the defined constraints.
Verifier
The Verifier, a smart contract on Ethereum, checks the validity of received proofs and updates the state root accordingly.
Witness
A witness is the confidential input in a cryptographic circuit, representing the knowledge the prover wishes to demonstrate without full disclosure.
Worker
A worker in ZKsync is part of a multi-threaded proving system that allows for parallel execution of certain cryptographic computations, such as polynomial addition.