By default, your entire Ethereum transaction history and balances are public. All transactions can be seen on block explorers like Etherscan, and anyone who knows that you own a particular address can easily trace your payments and calculate your holdings.


  Tornado.cash helps you to reclaim your privacy. You can use it to send Ether to any address in a way that obscures your sending address. It does this using zero-knowledge proofs. You can use this app to deposit some ETH into a noncustodial smart contract, and then easily generate a proof that you had perfomed said deposit without revealing your original address. The app will then send this proof to an operator, which will submit it to the smart contract, which will in turn send the ETH to the desired recipient and reimburse the operator a small fee.


  If there are enough depositors, a nosy observer cannot link any particular recipient's addresses to the depositor's. To maximise the number of deposits (also known as the anonymity set), the app's user interface encourages the user to wait a few more deposits after yours and also wait for some time. Additionally, since a third-party operator pays the gas for the transaction to mix the funds (also known as a withdrawal), the recipient does not need the depositor to send them gas to mix the funds (which would defeat the purpose of the mixer).