# ZK Terminology

This article provides definitions for key terms used in ZKsync's zero-knowledge proof systems.

## 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.