Privacy Pool Deposits with Unusual Amounts: Why Anonymity Drops

 / 
2

You are not worried about the "unusual amount" itself. You are worried about a bigger question: if one deposit amount is different from everyone else's, does that basically say "this money is mine"?

Yes, a very unusual amount can reduce anonymity. But the problem is not the amount itself. The problem is that an unusual amount has too few similar deposits in the pool, so outside on-chain analysis can more easily attach it to you.

How an "unusual amount" weakens anonymity

A privacy pool's anonymity depends on hiding in a group of people who look alike. When you withdraw, you need to prove that your deposit belongs to an association set—a set of "clean deposits" maintained by an association set provider (ASP). If your deposit amount is rare in the pool, it has very few matching leaves in the association set. Sometimes it may even be the only one.

Outside observers often use a heuristic called "same amount + time window." They look at the same pool and see one deposit and one withdrawal with the same amount, where the withdrawal happens soon after the deposit (for example, within 30 minutes to 2 hours). Then they mark those two addresses as "possibly linked." According to on-chain data, about 10.9% of ETH withdrawals on Ethereum mainnet match this pattern and can be flagged.

The more unusual the amount, the more accurate that flag becomes—because there are very few deposits in the pool with the same amount. Outside observers can almost directly assume that the depositor and the withdrawer are the same person.

The protocol already considered this: decoy withdrawals

Privacy pool design includes a mechanism specifically meant to fight this kind of tracking. It is called a decoy withdrawal. The idea is simple:

An existing user sees your deposit enter the pool, then quickly withdraws the same amount to a brand-new address. When outside observers run the "same amount" analysis, they may link your deposit to that existing user's withdrawal—because the amount is the same and the timing is close.

From the outside, it looks like "Alice deposited money and then quickly withdrew it." But in fact, you made the deposit and the existing user made the withdrawal. You have no real connection. On Ethereum mainnet, there are 393 pairs that can form such decoy candidate pairs, involving 163 different deposit addresses and 160 different withdrawal addresses.

Key point: From public data alone, these three situations are impossible to tell apart:

  1. The deposit and withdrawal really were made by the same person.
  2. Two unrelated people happened to use the same amount at around the same time.
  3. An existing user deliberately created this match to confuse analysis.

Because option 3 is cheap (it only costs extra gas for a withdrawal proof), and option 2 can easily happen with common amounts, the "same amount analysis" can only ever give a possibility. It cannot give definite proof.

Practical advice: how to avoid standing out

  1. Use standard amounts: Common amounts used by most users, such as 0.1 ETH or 1 ETH, have the largest anonymity set in the pool and are safest. The protocol documentation also clearly says that an ideal withdrawal strategy should try to keep the withdrawal amount in the busiest part of the pool's amount range.
  2. Leave enough time: Do not withdraw immediately after depositing. Wait several hours or longer so other people can also enter and leave the pool during that time.
  3. Split withdrawals: If the amount is too large, split it into several standard amounts and withdraw at different times or to different addresses. The wallet's Note Selection Algorithm will automatically help you find the best way to split.

How to check after a transaction

If you are worried that a previous amount was too unusual, check the privacy pool dashboard or a block explorer. Look at the common amount distribution in the pool for the token you deposited. If your amount is in the "long tail" of the distribution chart, meaning the sparse area, avoid doing that again in the future.