Privacy & trust

Privacy guarantees

Each guarantee below names the mechanism that enforces it. Where a property depends on your behaviour rather than on cryptography, it is stated as such.

What is protected

What is protectedHow
Who depositedThe relayer submits transactions, so the depositing wallet is never the signer.
Which deposit you spentThe proof reveals only that a valid deposit exists, not which one.
Who the recipient isThe destination is chosen freely at spend time and has no link to the deposit.
How much was movedMovement inside the pool keeps amounts hidden; only the final withdrawal amount is public.
Who holds a positionPositions are held with no link back to the user, or between one activity and another.
Reuse preventionThe protocol enforces that the same deposit can never be claimed twice.

Where each guarantee comes from

Two of these are cryptographic, two are structural, and two follow from how the flow is built. It is worth knowing which is which, because they fail in different ways.

GuaranteeKindWhat would weaken it
Which deposit you spentCryptographicNothing short of breaking the proof system, but a small anonymity set narrows the answer by elimination.
Reuse preventionCryptographicNothing. It is enforced on-chain before funds move.
Who depositedStructuralSubmitting your own transaction instead of using a relayer.
Who the recipient isStructuralChoosing a destination already tied to your identity.
How much was movedPartialThe final withdrawal amount is public. Distinctive amounts can be correlated.
Who holds a positionStructuralNothing on-chain, but a venue account you separately identified yourself to.

An anonymity set of one is not private

Every cryptographic guarantee above is a statement about a set: your proof is indistinguishable from any other member's. If the set is small, or if your amount and timing single you out within it, the mathematics still holds and the privacy still fails. This is the single most important thing to understand about a privacy pool.

What is not on this list

Veilo does not claim to batch or delay your transactions, to hide amounts once they leave the pool, or to hide activity from a counterparty you deliberately transact with. Those boundaries are set out in full in What Veilo does not claim. Read it alongside this page, not instead of it.

Custody is a separate question

Privacy and custody are independent properties, and Veilo is designed for both: spending requires your secret, which we never hold. See Trust model.