BlogZero-Knowledge Proofs: What They Are and When to Actually Use Them
Education8 min read

Zero-Knowledge Proofs: What They Are and When to Actually Use Them

NB

Nitish Beejawat

Founder, Tantrija Enterprises

Share

Contents

  1. 1What a zero-knowledge proof actually proves
  2. 2ZK-SNARKs and ZK-STARKs: the two main approaches
  3. 3Where ZKPs genuinely add value
  4. 4When ZKPs are overkill
  5. 5The practical development landscape

Zero-knowledge proofs are one of the most important cryptographic innovations in blockchain — and one of the most misunderstood. Once you understand what they actually prove and what they do not, you will see both why they matter and why most proposed use cases for them do not require them.

What a zero-knowledge proof actually proves

A zero-knowledge proof allows a prover to convince a verifier that they know a secret value, or that a statement is true, without revealing the secret or any information beyond the truth of the statement itself.

The classic example: Alice wants to prove to Bob that she knows a password without telling Bob the password. A ZKP lets her do this — she can prove knowledge of the password and Bob can verify the proof, but learns nothing about the password itself.

In blockchain contexts, ZKPs are used to prove that: a transaction is valid (inputs are sufficient, outputs are correctly computed) without revealing the amounts; a user satisfies a condition (they are over 18, they are an accredited investor) without revealing the underlying data; a computation was performed correctly without revealing the inputs.

What ZKPs do not prove: that data is accurate. A ZKP proves mathematical statements — it cannot prove that a document is genuine, that a real-world event occurred, or that data from an external source is correct. ZKPs operate purely in the mathematical realm.

ZK-SNARKs and ZK-STARKs: the two main approaches

ZK-SNARK stands for Succinct Non-interactive ARgument of Knowledge. These proofs are small (succinct), can be verified without back-and-forth communication (non-interactive), and prove knowledge of a witness to a computation (argument of knowledge).

ZK-SNARKs require a trusted setup — a ceremony where a secret parameter (the "toxic waste") is generated and must be destroyed. If the toxic waste is retained, the system can be compromised. The Zcash trusted setup ceremony involved hundreds of participants to minimize this risk. This is a significant limitation for decentralized systems.

ZK-STARKs (Transparent ARguments of Knowledge) eliminate the trusted setup. They are based on hash functions rather than elliptic curve pairings, making them more quantum-resistant. The trade-off: STARK proofs are larger than SNARK proofs, making on-chain verification more expensive.

StarkWare uses STARKs for their StarkNet and StarkEx systems. zkSync, Polygon zkEVM, and others use SNARK variants. For most application developers, the choice of SNARK vs STARK is made at the ZK-rollup layer and does not need to be decided at the application level.

Where ZKPs genuinely add value

ZK-rollups for scaling: this is the most impactful current use of ZKPs in blockchain. Transaction execution happens off-chain, and a ZK proof is submitted on-chain proving that the batch of transactions was executed correctly according to the agreed rules. Ethereum verifies the proof rather than re-executing every transaction, achieving significant throughput gains with strong security guarantees. zkSync, Polygon zkEVM, and Scroll are production ZK-rollup L2s.

Private transactions: Zcash pioneered ZK-based private transactions on public blockchains. Each transaction is accompanied by a proof that inputs and outputs balance without revealing amounts or addresses. Tornado Cash (subsequently sanctioned) extended this to Ethereum. For applications where transaction privacy on a public ledger is a genuine requirement, ZKPs are the right tool.

On-chain credential verification: proving that a user satisfies a compliance condition (KYC-verified, accredited investor, not on a sanctions list) without revealing their personal data on-chain. The identity data stays off-chain; only the proof is submitted. This is a compelling architecture for privacy-preserving compliance that is seeing early adoption.

When ZKPs are overkill

Most enterprise blockchain use cases do not require ZKPs. If you are building on Hyperledger Fabric, the channel and private data collection architecture provides sufficient privacy for most enterprise requirements without the complexity of ZK proof generation.

If you are building on R3 Corda, the need-to-know model means data is never broadcast to non-parties in the first place — no cryptographic privacy mechanism is needed because the data never reaches unauthorized parties.

ZKPs add significant computational overhead for proof generation, require specialized cryptographic expertise, and introduce new audit and compliance complexity (auditors need to understand what the proof is actually proving). For applications where the privacy requirement can be satisfied by access control — who can read the data — rather than cryptographic privacy — the data is visible but unintelligible without a key — ZKPs are the wrong tool.

Reserve ZKPs for: situations where computation needs to be verifiable without revealing inputs (ZK-rollups, private payments, credential proofs) and where the performance overhead is acceptable for your use case.

The practical development landscape

Building a ZK application from scratch requires deep cryptographic expertise that most blockchain teams do not have. The practical entry point is the tooling ecosystem.

Circom and SnarkJS provide a circuit description language and JavaScript library for SNARK development. They are the most widely used tools for custom ZK circuit development.

Gnark (Go) and Bellman (Rust) are higher-performance alternatives for production ZK development.

For applications that need ZK credential proofs specifically, the ERC-7219 standard and zkPass, Polygon ID, and Reclaim Protocol provide ready-made infrastructure without requiring custom circuit development.

For most teams, the right approach is to use ZK infrastructure that already exists (ZK-rollups, ZK credential protocols) rather than building custom ZK circuits. Building custom circuits is a research-grade engineering task that requires months of development and careful security review.

NB

Nitish Beejawat

Founder, Tantrija Enterprises

Nitish Beejawat is the founder of Tantrija Enterprises and led core L1 protocol development on Layer One X — a custom Layer 1 blockchain built from scratch. He has 6+ years of production blockchain engineering experience across DeFi, enterprise blockchain, and custom chain development.

linkedin.com/in/nitish-beejawat
/ Get Started

Building something that requires privacy-preserving verification?

We can assess whether ZKPs are the right tool for your use case — or whether a simpler architecture would work just as well.

No sales pitch. Just an honest technical conversation.