Tornado breaks the deposit → withdraw link on-chain. Everything else you do can still glue identities back together. The habit is: treat each public address as a short-lived character, not a permanent persona.
# Core rules
- Receive on fresh addresses — never reuse a deposit address across unrelated payments (Receive Funds).
- Shield soon, from that fresh address — do not wander around DeFi first (Shield Funds).
- Wait while shielded — do not unshield in the same breath you deposited.
- Unshield to a new fresh address — use
--next, not the address you came from (Unshield Funds). - Do not consolidate your own accounts by transferring between them unless you are fine linking them forever.
- Short public sessions — use an unshielded address for a purpose, then stop (or re-shield via a new receive → Tornado cycle).
# What creates links
- Paying from address A to address B (including your own)
- Approving and using the same address across many dapps over weeks
- Importing multiple “anonymous” keys into one browser wallet / seed
- Reusing the same address for payroll, friends, and DeFi
- Unshielding back to a known, previously used address
# Mental model
someone pays you → fresh address → shield (Tornado) → wait
↓
unshield to NEW fresh address → do one job → done
Each time you need another private chapter, start the diagram again — do not keep extending the same public address’s history.