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.
Glossary
Halo2

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.
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.
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.
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.
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
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.
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
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.
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.
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.
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Related Terms
Core concepts and protocols that interact with or form the foundation of the Halo2 proving system.
Recursive Proof Composition
The core mechanism enabling Halo2's efficiency. A verifier algorithm is itself expressed as an arithmetic circuit, allowing the prover to generate a single proof that attests to the validity of multiple prior proofs. This creates a tree of proofs that collapses into one constant-size proof, eliminating the need for a trusted setup by using the verification circuit to check previous instances.
Inner Product Argument
A cryptographic primitive at the heart of Halo2's polynomial commitment scheme. It allows a prover to convince a verifier that they know two vectors whose inner product equals a claimed value, with communication complexity logarithmic in the vector length. Halo2 uses this to achieve transparent setup and enable efficient recursive verification without pairings.
Cycle of Elliptic Curves
A pair of elliptic curves—typically Pasta curves (Pallas and Vesta)—where the base field of one equals the scalar field of the other. This algebraic relationship is essential for Halo2's incremental verification: a proof generated on one curve can be natively verified by an arithmetic circuit defined over the other, enabling seamless recursion without expensive non-native field arithmetic.
Plonkish Arithmetization
The flexible constraint system format used by Halo2, generalizing the Plonk arithmetization. It supports:
- Custom gates beyond standard addition and multiplication
- Lookup arguments for efficient table lookups
- Permutation arguments for wiring copy constraints This allows developers to optimize circuits for specific operations like hash functions or neural network layers.
Lookup Argument
A sub-protocol integrated into Halo2 that efficiently proves a witness value exists within a public or committed table. Instead of decomposing operations like bitwise XOR or range checks into many multiplication gates, the prover simply demonstrates the value appears in a precomputed table. This dramatically reduces circuit size for non-arithmetic operations common in zkML inference.
Incrementally Verifiable Computation (IVC)
The paradigm Halo2 implements to handle long-running computations. Rather than generating a proof for the entire computation at once, the prover updates a running proof after each step. The final proof size and verification time remain constant regardless of the total number of steps, making it ideal for proving iterative ML training loops or long blockchain state transitions.

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.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us