# Tornado Cash

### Overview

Tornado Cash is a decentralized privacy solution allows users to send and receive transactions anonymously by breaking the on-chain link between the sender and recipient. This is achieved through a smart contract-based mixer that uses zk-SNARKs to ensure that the transaction details remain private while still verifying the legitimacy of the transaction. The Tornado Cash Dune query can be found [here](https://dune.com/queries/3902791).

### Query Structure

The query filters traces sent to the Tornado Cash Verifier [contract](https://etherscan.io/address/0xce172ce1f20ec0b3728c9965470eaf994a03557a) from one of the Tornado Cash smart contracts. The list of contracts can be found [here](https://github.com/tornadocash-community/docs/blob/en/general/tornado-cash-smart-contracts.md).

### Calculations

* The proof volume is the number of invocations of the Verifier
* The cost is calculated using the following formula:&#x20;
  * $$\text{cost} = \sum\_{\text{traces}} \left( \text{gas\_used} \times \text{gas\_price} \times \text{eth\_price} \right)$$
  * Where:
    * $$\text{gas\_used}$$ is the amount of gas consumed by a trace in one of the verifiers
    * $$\text{gas\_price}$$ is the price of gas on the day of the transaction
    * $$\text{eth\_price}$$ is the average price of ETH in USD on the day of the transaction
