Privacy Model
ZeroK is a non custodial privacy protocol. You hold the keys, you generate the proofs, and you control your funds at every step. No one, including the protocol itself, can access, freeze, or redirect your funds. This page explains what is protected, where the limits are, and how to get the most privacy.
What is protected
Unlinkability between what you put in and what you take out. This is the core guarantee. When you spend, a zero knowledge proof confirms you own valid funds in the vault, without revealing which. On chain, there is no connection between your deposit and your payment.
In practice, ZeroK protects:
- Which funds are yours. Observers cannot tell which deposit a payment came from.
- Your identity as a depositor. A payment reveals nothing about the wallet that deposited.
- Who you pay and how much you spend. Your spending leaves in fixed, standard denominations, identical to everyone else’s.
The amount leak, closed
This is where ZeroK is different. Most privacy tools leak through amounts. Deposit an odd number, watch a matching number come out later, and the link is obvious to anyone. ZeroK closes that door. You can deposit any amount you like, but when you spend, your funds leave in fixed, standard denominations. Payments of the same size look alike, so an odd deposit amount does not reappear later as an odd withdrawal amount waiting to be matched.
That is what makes the unlinkability cryptographic, not circumstantial. The link between what you put in and what you take out is severed by the math itself, not left to chance or to how busy the pool happens to be.
How the proofs protect you
When you spend, your device builds a Groth16 zero knowledge proof. It demonstrates two things:
- You own valid funds in the vault.
- You have not already spent them.
The proof reveals nothing else. The on chain verifier confirms it is valid and releases the funds, without ever learning which deposit you are spending.
The crowd you hide in
Every deposit grows the anonymity set, the group of funds that any payment could plausibly come from. As long as the vault sees steady use, people depositing and spending over time, it becomes practically impossible for an observer to connect a deposit to a payment.
The honest version of that sentence matters. The cryptography holds from the first deposit, but the protection it buys is only as large as the crowd, and this pool is young. Today the set is small enough that a determined observer could reason about it. We would rather tell you that than let you assume otherwise, and it improves with every person who uses it.
When many people share the vault, every payment looks like every other. An observer sees value leaving, but the proof gives away nothing about whose it was. Ongoing activity keeps blending new deposits with new payments, so correlation stays hard.
Privacy is collective. Every deposit strengthens everyone else’s privacy, and every payment further blurs the path from past deposits to future spending.
Things to keep in mind
Timing
If you deposit and spend back to back with little else happening in between, that pattern could stand out. As long as you are not the only person active in that window, your transaction blends into the crowd.
Recipient wallets
Use a fresh wallet for each payment. If you pay the same address several times, those payments become linked to each other. Not to your deposit, but to each other.
Off chain information
ZeroK protects what happens on chain. It cannot protect what you reveal elsewhere, like telling someone the exact time and size of your deposit.
Best practices
- Use a fresh wallet for each payment, ideally with no prior history.
- Do not reuse recipient addresses. Each payment should go somewhere new.
- Keep deposit details to yourself. Avoid posting timing or amounts publicly.
- Let the crowd grow before you spend when privacy matters most.