Skip to content

Home > Tooling & Applications > Circuits

Arithmetic Circuits

Description

The primary computational model for ZKP systems. A computation is expressed as a directed acyclic graph of addition and multiplication gates over a prime field. The prover's job is to supply a satisfying assignment (witness) to all wires; the verifier checks that the constraints hold without learning the witness. Most ZKP backends — whether SNARK or STARK — operate over some form of arithmetic circuit or a close equivalent (R1CS, PLONKish, AIR).

Circuit → Proof pipeline

High-level program
      ↓  (compiler / DSL)
Arithmetic circuit  (gates + wires over 𝔽_p)
      ↓  (arithmetization)
Constraint system  (R1CS / PLONKish / AIR)
      ↓  (proof system)
ZK proof

Circuit DSLs in this vault

Tool Arithmetization Backend
ToolingApplication/Circom2 R1CS Groth16, PLONK
ToolingApplication/Noir PLONKish UltraHonk (Barretenberg)
ToolingApplication/ZoKrates R1CS Groth16, PLONK
ToolingApplication/gnark R1CS / PLONKish Groth16, PLONK
ToolingApplication/Halo2 PLONKish IPA / KZG

See also