Relic
Founder
Zero-Knowledge Proofs in VEIL's Design
March 24, 2026
Zero-knowledge proofs are central to VEIL's privacy architecture. This post covers how we integrate Groth16 ZK-SNARKs into the VeilVM for proof-gated settlement, identity verification, and shielded ledger operations.
Why ZK-SNARKs
We specifically use Groth16 over BN254 for proof-gated consensus. The “succinct” property means proofs are small — a few hundred bytes regardless of computation complexity. Verification is fast enough to run in the VM's action execution path without degrading throughput.
How It Works in VeilVM
ClearBatch is proof-gated at consensus: groth16 shielded-ledger-v1 must verify before the batch result is stored. Native AMM and VAI actions are separate public-state paths on VeilVM; they are not rejected in the current local profile.
The shielded-ledger preimage includes commitment, nullifier, and state-root slots bound by SHA256 inside Groth16. That is digest-binding, not in-circuit merkle proofs. ZER0ID is a separate circuit family in the zeroid repo and is not the settlement verifier.
Implementation Status
Local proof-gated clears pass with shielded-ledger-v1. Gossip on the local node is VTG2 2-of-3. Treat Feb gate letters as archaeology unless re-run against this tree.