zk-SNARKs and zk-STARKs: The Tradeoffs of Zero-Knowledge Proofs
A zero-knowledge proof is a cryptographic technique that allows one party to prove a statement's truth without revealing any information beyond the fact itself. It relies on mathematical properties and can be used for privacy, scalability, and identity verification.
The standard explanation of zero-knowledge proofs uses the cave analogy, but it misses the machinery behind them. In practice, they involve polynomial commitments, elliptic curve pairings, and encoding computations as constraints that another party can verify without learning what values satisfied them.
There are two dominant proof systems: zk-SNARKs and zk-STARKs. The former is smaller and faster but requires a trusted setup ceremony to generate reference strings, which poses security concerns. The latter does not require a trusted setup but produces larger proofs and has its own set of tradeoffs.