A Berlin fintech wants to know whether a new customer is over eighteen. The obvious implementation collects a date of birth, stores it, and checks it. Under GDPR, that is more personal data than the question requires — and it comes with retention schedules, access requests, and deletion workflows attached. A zero-knowledge proof offers a different shape: the user proves the statement "I am over eighteen" and the verifier learns nothing else. Not the birthday. Not the name. Just the fact.
That is an appealing pitch for European teams, and it is partly true. ZK is a real tool for data minimisation and for reducing what you must erase later. It is not a compliance shortcut, and a few popular versions of the pitch are wrong enough to cause trouble in a supervisory audit. Here is how the pieces actually fit together.
Two principles do most of the work in this discussion. Article 5(1)(c) requires personal data to be adequate, relevant, and limited to what is necessary for the purpose. Article 5(1)(e) limits how long you keep it. Article 17 then gives people the right to erasure when there is no remaining lawful basis.
Notice the pattern: both problems are caused by collection. If a date of birth never reaches your database, you have nothing to minimise and nothing to delete. Most compliance burden in verification flows comes from data you did not need in the first place, and that is exactly the surface ZK proofs shrink.
A zero-knowledge proof lets a prover convince a verifier that a statement is true, without revealing why it is true. In circuit terms, the prover holds a private witness — the birth date, the account balance, the Merkle path — and the verifier sees only the public inputs and a short proof.
Three properties matter for engineering decisions. Completeness means honest provers can always convince the verifier. Soundness means a dishonest prover cannot fake a valid proof. Zero-knowledge means the proof reveals nothing beyond the truth of the statement.
Concretely: a user's birth date sits in a signed credential on their phone. Your circuit checks that the date falls before today minus eighteen years, and that the credential is signed by a trusted issuer. Your server receives a proof and a boolean. That is the entire record you now hold. Your retention policy for "verification artefacts" can be measured in seconds rather than years.
The minimisation gain is straightforward, and it compounds. Verifiers that store proofs instead of source records end up with a much smaller breach surface, fewer fields in a subject access request, and a shorter list in your Article 30 records of processing.
The second bullet deserves emphasis. In many deployments the biggest privacy win is not the proof itself, but the fact that the issuer no longer needs to be online for every verification. Fewer parties touching the data means fewer processors, fewer transfer questions, and fewer places where something can go wrong.
Erasure is where the enthusiasm needs tempering. ZK proofs do not make an immutable ledger erasable. If you wrote a personal data point into a smart contract, no circuit will take it back out.
What ZK does is keep you from needing to write it there. An architecture that works: personal data lives in an off-chain store you control, and the chain holds only a commitment — a hash, or a Pedersen commitment — with proofs of correct updates. Deleting the off-chain record and its associated key material breaks ordinary access.
Be careful with the phrase "cryptographically erased". Hashing and encryption are not the same as anonymisation. Under the GDPR definition, data that can still be attributed to a person using additional information remains personal data, and destroying a key is a factual question, not an automatic legal conclusion.
So the honest framing is this: ZK shrinks the set of systems that ever hold personal data, which shrinks the erasure problem. It does not convert personal data into anonymous data by itself. Whether a given design reaches true anonymisation depends on how much auxiliary information exists, how the commitments are linked, and what a determined adversary can combine. If erasure is a central risk for your product, involve a data protection lawyer early and consider a DPIA under Article 35.
Zero-knowledge is a property of a specific proof, not of your whole system. Several leaks are common.
Small input spaces. A proof that someone's birth year is in a two-year window narrows the field a lot. Choose thresholds that match the actual business need, not the smallest number you can prove.
Nullifiers as identifiers. If the same nullifier appears across services, it becomes a pseudonymous identifier and you are back to linkability problems. Derive nullifiers per context.
Metadata. Timing, IP addresses, and which verifier was used often reveal more than the proof. Proof generation takes seconds, and that timing can be a fingerprint on low-powered devices.
Revocation. A credential that can never be revoked is a liability for KYC use cases. Plan for revocation lists or short validity windows, and decide who can trigger them.
None of this is legal advice, and supervisory authorities have not settled every question about on-chain commitments and pseudonymisation. Treat ZK as one strong instrument in a data protection by design programme — very good at reducing what you hold, and no substitute for deciding carefully whether you should hold it at all.
Photo: GregMontani / Pixabay