You walk into a bar and the bartender asks for ID. To prove one fact, that you’re over 18 or 21, you hand over your Aadhaar: full name, address, date of birth, Aadhaar number, and more. And it’s not just the bartender. It’s the bystander, the hotel receptionist, and the app you signed up for once and forgot. We routinely reveal far more information than necessary to prove simple facts about ourselves.
Zero knowledge cryptography offers a different approach. Instead of revealing the underlying data, you prove a statement is true. You can prove you’re over a certain age without revealing your date of birth or even exact age, or prove you hold a valid credential without sharing the credential itself. Projects like anon-aadhaar already demonstrate this approach for Aadhaar-based identity verification.
For a long time, building such systems required writing specialized cryptographic circuits for every application. Today, open source zkVMs allow developers to write ordinary programs and generate proofs of execution without designing custom circuits from scratch.
Beyond identity, zero knowledge systems can be used wherever verification and privacy need to coexist. As a concrete example, I’ll briefly discuss zkSampler, a project built on the SP1 zkVM that allows musicians to prove sampled audio was used within license terms without revealing their creative process. Building it also exposed some of the practical engineering challenges of zkVM development, including the cost of implementing signal processing inside proving environments.
This talk introduces zero knowledge proofs through practical examples, explores how open source zkVMs are making programmable privacy possible, and discusses the realities of building applications on top of these systems.