Inferensys

Glossary

Halo2

A recursive zkSNARK proving system that eliminates the need for a trusted setup by using inner product arguments and a cycle of elliptic curves for incremental verification.
Wide-angle shot of a modern WeWork open floor plan with creative walls covered in AI system architecture diagrams, product team collaborating in standing desk area with industrial lighting.
RECURSIVE ZKSNARK PROVING SYSTEM

What is Halo2?

Halo2 is a recursive zero-knowledge proving system that eliminates the need for a trusted setup by using inner product arguments and a cycle of elliptic curves for incremental verification.

Halo2 is a zero-knowledge proving system that constructs zkSNARKs without requiring a trusted setup ceremony. It achieves this by combining inner product arguments with a cycle of two elliptic curves, enabling recursive proof composition where one proof can verify another proof's validity without relying on a pre-generated common reference string.

The protocol's core innovation is its use of nested amortization to accumulate verification work across multiple proofs, resulting in constant-size proofs regardless of the depth of recursion. This makes Halo2 a foundational primitive for incrementally verifiable computation (IVC) and proof carrying data (PCD), enabling efficient verification of long-running computations and distributed state transitions in privacy-preserving machine learning contexts.

RECURSIVE ZKSNARK ARCHITECTURE

Key Features of Halo2

Halo2 is a zero-knowledge proving system that eliminates the trusted setup through recursive proof composition and a cycle of elliptic curves, enabling incrementally verifiable computation without per-circuit ceremonies.

01

Trusted Setup Elimination

Halo2 replaces the traditional trusted setup ceremony with a transparent setup mechanism. Instead of generating a common reference string through multi-party computation, Halo2 uses the inner product argument from Bulletproofs combined with a cycle of elliptic curves. This eliminates the 'toxic waste' security risk entirely—no secret parameters are ever generated that could compromise the system if leaked. The setup is universal and updatable, meaning a single set of public parameters supports any circuit up to a bounded size.

No Toxic Waste
Security Model
02

Recursive Proof Composition

Halo2 achieves incrementally verifiable computation (IVC) through recursive proof composition. The verifier's algorithm is itself expressed as an arithmetic circuit, allowing a new proof to attest to the validity of a previous proof plus new computation. This creates a chain of proofs where:

  • Each step produces a constant-size proof
  • Verification time remains O(log n) regardless of total computation length
  • The prover can indefinitely extend a computation while maintaining a single succinct proof
O(log n)
Verification Complexity
Constant
Proof Size Growth
03

Cycle of Elliptic Curves

Halo2 uses a 2-cycle of elliptic curves (typically Pasta curves: Pallas and Vesta) to enable efficient recursion. The key insight is that the base field of one curve equals the scalar field of the other. This allows:

  • Arithmetic operations for one curve's proof verification to be expressed natively in the other curve's circuit
  • Efficient field arithmetic without expensive non-native field emulation
  • Seamless alternation between proving and verification layers

The Pasta curve cycle was specifically designed for Halo2's recursive architecture, minimizing constraint overhead for recursive verification.

2-Cycle
Curve Architecture
04

Polynomial Commitment Scheme

Halo2 employs a multivariate polynomial commitment scheme based on the inner product argument. The prover commits to polynomials representing the circuit's gate wiring and witness values, then opens them at random evaluation points. Key properties:

  • Hiding and binding: commitments reveal nothing about the polynomial while preventing the prover from changing values
  • Succinctness: commitment and opening proof sizes are logarithmic in the polynomial degree
  • Additive homomorphism: enables efficient batching of multiple polynomial openings into a single proof
O(log d)
Commitment Size
05

Plonkish Arithmetization

Halo2 uses a Plonkish arithmetization that generalizes the standard Plonk constraint system. Circuits are defined using:

  • Custom gates: arbitrary polynomial constraints over multiple rows and columns, not limited to simple addition and multiplication
  • Lookup arguments: efficiently prove that a value appears in a precomputed table, enabling optimized verification of non-arithmetic operations like SHA-256 or Keccak
  • Permutation arguments: enforce copy constraints across cells without requiring separate wiring polynomials

This flexibility allows developers to express complex operations like hash functions or elliptic curve arithmetic with far fewer constraints than R1CS.

Custom Gates
Constraint Model
06

UltraPlonk Variant

Halo2 implements the UltraPlonk variant, which extends the standard Plonk protocol with:

  • Plookup integration: efficient set membership proofs for table lookups, dramatically reducing constraints for bitwise operations and range checks
  • Flexible gate types: support for arithmetic, boolean, and custom polynomial gates in the same circuit
  • Generalized permutation checks: handle complex wiring patterns across multiple columns and rows

The UltraPlonk arithmetization enables Halo2 circuits to be significantly more compact than equivalent R1CS or vanilla Plonk circuits, reducing prover time and memory usage.

HALO2 DEEP DIVE

Frequently Asked Questions

Explore the core mechanics, cryptographic primitives, and architectural advantages of the Halo2 recursive proving system.

Halo2 is a recursive zkSNARK proving system that eliminates the need for a trusted setup by using inner product arguments and a cycle of elliptic curves for incremental verification. Unlike Groth16, which requires a circuit-specific toxic waste ceremony, Halo2 achieves a transparent setup by basing its security solely on standard cryptographic assumptions like the discrete logarithm problem. It replaces the structured reference string with a polynomial commitment scheme based on the inner product argument, allowing the verifier to check polynomial evaluations without pre-generated secret parameters. The system uses the Pasta curves (Pallas and Vesta), a cycle of two elliptic curves where the base field of one equals the scalar field of the other, enabling efficient recursive proof composition without a trusted setup.

Prasad Kumkar

About the author

Prasad Kumkar

CEO & MD, Inference Systems

Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.

His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.