What a time to be alive as a criminal hacker!
> Is it possible to compromise the protocol and find out information about depositors? -- No, Tornado Cash is a decentralized protocol based on zero knowledge proofs. Its smart contracts are immutable, have no admins, and the proofs are based on strong cryptography. Only the user possessing the Note is able to link deposit and withdrawal.
That very much sounds like an impossibility statement like "Use Tornado Cash and no one will be able to trace your transaction".
OTOH, they also say that
> After depositing, users should wait some amount of time before withdrawing to improve their privacy.
and that
> To preserve privacy a relayer can be used to withdraw to an address with no ETH balance.
So it seems privacy is not a binary switch here and, instead, it can be "improved" and "preserved". But what is it then? Can deposit and withdrawal be linked or not? Are the privacy guarantees as absolute and strong as the FAQ make them out to be?
It obviously cannot prevent you from revealing your transaction via other means. For example, by publicly announcing it.
It might not be evidence that A and B are your addresses, but strong implications.
So, you put it into Tornado and wait days, weeks, or even months, so it could be a random transaction.
People generally like privacy when it comes to medium and large purchases, regardless of what it is that they are purchasing.
> People generally like privacy when it comes to medium and large purchases
The "war on money laundering" goes against this.
> But the recent Pandora Papers leak has revealed that U.K. properties worth nearly $5.5 billion, according to those who've analyzed the documents, have been purchased through offshore shell companies that hide the owners' identities.
> "Using a shell company means that no one need ever know that the asset is yours," said anti-corruption activist Duncan Hames, Director of Policy at Transparency International. "Indeed, the British government probably doesn't know."
People can simply crawl the blockchain for addresses that have a good amount of money and then check which of them they can relate to persons.
If they know you and how much your crypto net worth is, they might start to attack you in some kind of way to get your private key.
If you tornadoed that money in an address that can't be linked to other addresses anymore, the work to relate the address to you might be too big so people won't try.
Edit: HN destroyed formatting
So if there are N deposits then later N withdrawals, the only thing you know is that each withdrawal matches one of the deposits, but not which one.
As for privacy improvements:
- If you deposit then immediately withdraw, observers might suspect that you instantly withdrew your deposit.
- You need ETH for the withdrawal transaction, which has to come from somewhere (making it potentially traceable). With their relayers you can withdraw to an empty account while hiding the origin of the transaction fee.
If there were e.g. three deposits for 5.542, 3.799, and 10.4322 ETH, and someone withdrew 3.799 ETH, then it seems like you'd know which deposit they made.
Best case, you wait long enough and maybe someone else deposits 3.799 ETH.
If anything, I'd expect the output of such a service to be even worse than most inputs, as the money will be mixed with all the inputs, some of which would be associated with horrible crime beyond just fraud or theft.
Oh, you do. Not being able to prove the source of your funds puts you at serious risk of asset forfeiture.
If you the give them to someone, well then they need to explain where it came from.
Also, if you want to put them back into your account, you'd need to show provenance.
Since this costs money to use, most people are not going to use it unless they're trying to hide something so the big risk I'd worry about is similar to the risks of running a Tor exit node in your house. What happens when someone else using that service is investigated for some serious crime? Anyone who has transactions going to or from that pool is going to be under suspicion and it's really hard to _prove_ that you weren't knowingly helping them launder money when you have a public log of transactions involving the target.
In this specific case, you’re talking about a service people have to pay to use. That lowers the pool of people using it considerably which makes techniques like timing analysis easier and increases the odds that your transactions will be mixed in with someone else’s criminal activity.
Timing analysis is a real concern, that's why they warn you about it on the front page and ask to wait before you withdraw.
https://medium.com/@tornado.cash/how-to-stay-anonymous-with-...
Very few people are so ideologically committed that they're going to pay extra and live with those constraints, which is a major problem for a protocol which is critically dependent on volume to deliver privacy and repudiation.
> Plenty of people concerned with privacy use public blockchains - you don't need to dox yourself to use them, just need a private key. Unlike traditional finance, where you just have to hope that your PII data won't get leaked one day with all your transaction history.
This is confusing a number of things. Most PII breaches are not the banks but the merchants who collect things like addresses because they need them for shipping or to satisfy legal requirements, and paying with a blockchain won't change any of those needs.
Similarly, very few people have a way to generate and spend a significant amount of cryptocurrency entirely for anonymous online services and will thus need to identify themselves for most transactions — a cryptocurrency exchange isn't exempted from Know Your Customer, companies which have to deal with abuse are going to want to prevent sock puppets or shell accounts, airlines aren't going to lose interest in checking your identity, buying a house without showing where you got the funds is going to attract a lot of attention, etc.
That link to the real world is the common reason why these promises don't pan out. In general, ask yourself how a particular activity would go if you showed up with a suitcase full of cash and refused to say where it came from. Cryptocurrency will be exactly the same in all but a very few cases.
And I don't know why are you talking to a strawman about a suitcase full of cash, etc. I just said that Tornado.cash offers privacy and that privacy is not always used for evil things.