GitBook: [#67] change url -> untitled to deposit-withdraw

This commit is contained in:
bt11ba 2021-10-28 13:57:27 +00:00 committed by gitbook-bot
parent 57b207e74d
commit 967a71fbfe
No known key found for this signature in database
GPG Key ID: 07D2180C7B12D0FF
10 changed files with 107 additions and 117 deletions

@ -2,7 +2,7 @@
![](.gitbook/assets/image.png)
Tornado Cash is a **fully decentralized** **non-custodial** **protocol** allowing private transactions in the crypto-space.
Tornado Cash is a **fully decentralized** **non-custodial** **protocol** allowing private transactions in the crypto-space. 
As a decentralized protocol, Tornado.Cash smart contracts have been implemented within the Ethereum blockchain which makes them immutable. They can neither be changed or tampered with. Therefore, nobody - including initial developers - can modify or shut them down. All governance and mining smart contracts are deployed by the community in a decentralized manner.
@ -12,9 +12,9 @@ As a non-custodial protocol, users keep custody of their cryptocurrencies while
Tornado Cash improves transaction privacy by breaking the on-chain link between source and destination addresses. It uses a smart contract that accepts ETH & other tokens deposits from one address and enable their withdrawal from a different address.
To preserve privacy, few good practices are in order, such as the use of a relayer for gas payments to withdraw funds towards an address with no pre-existing balance.
To preserve privacy, few good practices are in order, such as the use of a relayer for gas payments to withdraw funds towards an address with no pre-existing balance. 
More details are available in _Behind the scenes:_ [_How does Tornado.Cash work?_](how-does-tornado.cash-work.md) _****_& [Tips to remain anonymous](tips-to-remain-anonymous.md).
More details are available in _Behind the scenes: _[_How does Tornado.Cash work?_](how-does-tornado.cash-work.md)_** **_& [Tips to remain anonymous](tips-to-remain-anonymous.md).
## Where is Tornado.Cash at?
@ -22,25 +22,24 @@ The protocol has been operating on the **Ethereum blockchain** since its incepti
As of today, Tornado.Cash can be used with the following tokens:
* On Ethereum : **ETH** _\(Ethereum\)_, **DAI** _\(Dai\)_, **cDAI** _\(Compound Dai\)_, **USDC** _\(USD Coin\)_, **USDT** _\(Tether\)_ & **WBTC** _\(Wrapped Bitcoin\)_
* On Binance Smart Chain: **BNB** _\(Binance Coin\)_.
* On Polygon Network: **MATIC** _\(Polygon\)_
* On Ethereum : **ETH** _(Ethereum)_, **DAI** _(Dai)_, **cDAI** _(Compound Dai)_, **USDC** _(USD Coin)_, **USDT** _(Tether)_ & **WBTC** _(Wrapped Bitcoin)_
* On Binance Smart Chain: **BNB** _(Binance Coin)_.
* On Polygon Network: **MATIC** _(Polygon)_
![](.gitbook/assets/non-custodial-anonymous-transactions-on-ethereum-3-.png)
The protocol also includes an **anonymity mining system for some of its token**, allowing its users to earn a **governance token**. Thanks to TORN tokens, Tornado Cash users actively participate in shaping the protocol. The community has a strong weight regarding the evolution of Tornado Cash and the improvement of its features. Indeed, protocol parameters & token distribution are completely under the community's control through this governance.
_More information about_ [_Anonymity mining_](anonymity-mining.md) _&_ [_Tornado.Cash token_](torn.md) _are available._
_More information about _[_Anonymity mining_](anonymity-mining.md)_ & _[_Tornado.Cash token_](torn.md)_ are available._
## How does Tornado.Cash run?
[Codes behind Tornado.Cash functioning](https://github.com/tornadocash) - smart contacts, circuits & toolchain - are fully **open sourced.** Working as a DAO \(Decentralized Autonomous Organization\), Tornado.Cash governance and mining smart contracts are deployed by its community.
[Codes behind Tornado.Cash functioning](https://github.com/tornadocash) - smart contacts, circuits & toolchain - are fully **open sourced. **Working as a DAO (Decentralized Autonomous Organization), Tornado.Cash governance and mining smart contracts are deployed by its community.
The protocol also functions with zk-SNARK, which enables zero-knowledge proofs allowing users to demonstrate possession of information without needing to reveal it. The use of this technology is based **on open source research made by Zcash team with the help of Ethereum community**. To set-up zk-SNARK initial keys, Tornado.Cash[ Trusted Setup Community](https://tornado-cash.medium.com/tornado-cash-trusted-setup-ceremony-b846e1e00be1) was launched in May 2020 & accounted [for 1114 contributions](https://tornado-cash.medium.com/the-biggest-trusted-setup-ceremony-in-the-world-3c6ab9c8fffa). This significant number of contributors makes it impossible to compromise the protocol by faking zero-knowledge proofs.
User interface is hosted on **IPFS** \(InterPlanetary File System\) by the community, minimizing risks of data being deleted. Indeed, the interface will work as long as at least one user is hosting it.
User interface is hosted on **IPFS** (InterPlanetary File System) by the community, minimizing risks of data being deleted. Indeed, the interface will work as long as at least one user is hosting it.
_Written by_ [_@ayefda_](https://torn.community/u/ayefda)\_\_
_Written by _[_@ayefda_](https://torn.community/u/ayefda)__

@ -3,10 +3,9 @@
* [Introduction of Tornado.Cash](README.md)
* [How does Tornado.Cash work?](how-does-tornado.cash-work.md)
* [Tips to remain anonymous](tips-to-remain-anonymous.md)
* [Deposit & Withdraw](untitled.md)
* [Deposit & Withdraw](deposit-withdraw.md)
* [Anonymity mining](anonymity-mining.md)
* [TORN](torn.md)
* [Governance](governance.md)
* [Community Involvement](community-involvement.md)
* [Compliance Tool](compliance-tool.md)

@ -1,42 +1,42 @@
# Anonymity mining
Anonymity mining is an incentive to increase the level of privacy in any coin-joining or coin-mixing protocols by rewarding participants anonymity points \(AP\) dependent on how long they hedge their assets in a pool.
Anonymity mining is an incentive to increase the level of privacy in any coin-joining or coin-mixing protocols by rewarding participants anonymity points (AP) dependent on how long they hedge their assets in a pool.
_This incentive began on December 18, 2020 and will end on December 18, 2021._
Individuals deposit to any one of the anonymity pools that are supported \(ETH, WBTC, DAI or cDAI\) and are rewarded a fixed amount of AP per block, over the period their deposit remains in the pool. These points can then be exchanged for TORN once claimed.
Individuals deposit to any one of the anonymity pools that are supported (ETH, WBTC, DAI or cDAI) and are rewarded a fixed amount of AP per block, over the period their deposit remains in the pool. These points can then be exchanged for TORN once claimed.
### Anonymity points \(AP\)
### Anonymity points (AP)
_Readers should be aware some lower denomination deposits at the time of writing, do not produce a positive return due to the gas costs required to withdraw, redeem and exchange anonymity points_
One of the community members created the resource of [a mining spreadsheet 13](https://torn.community/t/anonymity-mining-spreadsheet/720) that helps calculate annual percentage yields \(APYs\) for each pool and each denomination set within, through estimating the fees required to claim a reward. **It is highly recommended to view this resource and plan ones course of action before expecting to earn yield.** At the bottom of the spreadsheet, you can view each pool by selecting the associated tab.
One of the community members created the resource of [a mining spreadsheet 13](https://torn.community/t/anonymity-mining-spreadsheet/720) that helps calculate annual percentage yields (APYs) for each pool and each denomination set within, through estimating the fees required to claim a reward. **It is highly recommended to view this resource and plan ones course of action before expecting to earn yield.** At the bottom of the spreadsheet, you can view each pool by selecting the associated tab.
### How to earn AP
1. Decide what amount and asset to deposit by selecting it through the dropdown menu, before clicking on "Connect" and "Deposit".
1\. Decide what amount and asset to deposit by selecting it through the dropdown menu, before clicking on "Connect" and "Deposit".
![](.gitbook/assets/m3fh0gl.png)
2. Take a record of your depositing note and back it up safely, **do not share this with anyone or risk losing your deposit and reward.**
2\. Take a record of your depositing note and back it up safely, **do not share this with anyone or risk losing your deposit and reward.**
![](.gitbook/assets/vhustru.png)
3. Generate the proof and submit the transaction.
3\. Generate the proof and submit the transaction.
4. Your deposit should now be viewable on the bottom of the page, you can track how much AP it earns here; remember the longer your deposit remains active, the more AP you earn.
4\. Your deposit should now be viewable on the bottom of the page, you can track how much AP it earns here; remember the longer your deposit remains active, the more AP you earn.
![](.gitbook/assets/k6juetp.png)
_Notes that are active \(not withdrawn\) are known as “unspent” notes._
_Notes that are active (not withdrawn) are known as “unspent” notes._
### How to claim AP
1. First you must create a mining account and store those credentials on-chain for easy recovery \(requires a transaction\), **like depositing notes, you should never share your mining recovery key with anyone** and ensure to back it up in a safe place. This feature is not supported by hardware wallets so its encouraged to store the information as presented_._
1\. First you must create a mining account and store those credentials on-chain for easy recovery (requires a transaction), **like depositing notes, you should never share your mining recovery key with anyone** and ensure to back it up in a safe place. This feature is not supported by hardware wallets so its encouraged to store the information as presented_._
![](.gitbook/assets/lskzkgk.png)
2. Take an active deposit through providing an unspent note and withdraw to an address of preference and decide whether to use a relayer or not \(_to maintain a deposits anonymity it is always advised to use a relayer_\), this will bring the note into a “spent” state.
2\. Take an active deposit through providing an unspent note and withdraw to an address of preference and decide whether to use a relayer or not (_to maintain a deposits anonymity it is always advised to use a relayer_), this will bring the note into a “spent” state.
![](.gitbook/assets/aid86cj.png)
@ -44,13 +44,13 @@ _Notes that are active \(not withdrawn\) are known as “unspent” notes._
![](.gitbook/assets/bpsqxxr.png)
3. Visit the mining route of the application and enter your spent note, you may be faced with one of the following situations.
3\. Visit the mining route of the application and enter your spent note, you may be faced with one of the following situations.
* **The ability to claim your spent note**: click the “Claim reward” button and submitting the transaction either by using a relayer or not, once confirmed your AP balance should update to reflect the action.
![](.gitbook/assets/e9jyqhu.png)
 
* **The inability to claim a spent note:** _“Warning: The note is not yet ready for anonymity mining. You can wait few days before trying again”_ - This means the Merkle trees are out of sync and require a transaction to be updated.
@ -62,15 +62,15 @@ Updating the trees can be an expensive process, **it is recommended that users w
### How to exchange AP
1. Navigate over to the “Swap” tab on the mining page which can be accessed through the second navigation bar from the top of the page.
1\. Navigate over to the “Swap” tab on the mining page which can be accessed through the second navigation bar from the top of the page.
![](.gitbook/assets/ahrjxbq.png)
2. Enter the amount of AP requested to exchange or select the “Maximum” option to convert your active balance. Below this input, information regarding the current AP/TORN rate and reward output will be displayed. Provide an address of preference to receive the reward, finalise by generating the proof and submitting the transaction through a relayer or not.
2\. Enter the amount of AP requested to exchange or select the “Maximum” option to convert your active balance. Below this input, information regarding the current AP/TORN rate and reward output will be displayed. Provide an address of preference to receive the reward, finalise by generating the proof and submitting the transaction through a relayer or not.
![](.gitbook/assets/wo55lao.png)
3. If all steps were followed correctly, TORN will be transferred to the address of preference provided in step 2 of this section.
3\. If all steps were followed correctly, TORN will be transferred to the address of preference provided in step 2 of this section.
### Closing remarks
@ -81,10 +81,9 @@ It is always recommended to plan when deciding to mine any of the anonymity sets
For more information on anonymity mining, seek the following resources:
* [Tornado.Cash governance proposal article](https://tornado-cash.medium.com/tornado-cash-governance-proposal-a55c5c7d0703)
* [Tornado.Cash anonymity mining optimisation article](https://tornado-cash.medium.com/gas-price-claimed-anonymity-mining-a-victim-but-now-everyone-can-claim-ap-5441aaa32a1a)
* [Anonymity mining explained \(technical\)](https://torn.community/t/anonymity-mining-technical-overview/15)
* [Tornado.Cash anonymity mining optimisation article](https://tornado-cash.medium.com/gas-price-claimed-anonymity-mining-a-victim-but-now-everyone-can-claim-ap-5441aaa32a1a) 
* [Anonymity mining explained (technical)](https://torn.community/t/anonymity-mining-technical-overview/15)
_Regards to_ [_@sockawoo_](https://torn.community/u/sockawoo) _and_ [_@ethdev_](https://torn.community/u/ethdev) _for assisting in peer-reviewing_
_Written by_ [_**@xgozzy**_](https://torn.community/u/xgozzy/summary)\_\_
_Regards to _[_@sockawoo_](https://torn.community/u/sockawoo)_ and _[_@ethdev_](https://torn.community/u/ethdev)_ for assisting in peer-reviewing_
_Written by _[_**@xgozzy**_](https://torn.community/u/xgozzy/summary)__

@ -1,16 +1,16 @@
# Community Involvement
In a Decentralized Autonomous Organization \(DAO\), significant elements such as protocol parameters & token distribution are controlled by the community through governance. This governance allows the community to shape & continuously improve the protocol.
In a Decentralized Autonomous Organization (DAO), significant elements such as protocol parameters & token distribution are controlled by the community through governance. This governance allows the community to shape & continuously improve the protocol.
However, the role of a community does not stop to suggesting proposals & expressing its opinion through votes. The community can also actively contribute to the success and prosperity of their protocol through constructive debates, mutual help and specific actions.
You can meet Tornado.Cash community on its very own forum & on social medias. Here are useful links to join Tornado.Cash community
* \*\*\*\*[**Tornado.Cash community forum**](https://torn.community/)\*\*\*\*
* \*\*\*\*[**Tornado.Cash Discord Server**](https://discord.com/invite/TFDrM8K42j)\*\*\*\*
* \*\*\*\*[**Tornado.Cash Telegram Discussions**](https://t.me/TornadoCashOfficial)\*\*\*\*
* ****[**Tornado.Cash community forum**](https://torn.community)****
* ****[**Tornado.Cash Discord Server**](https://discord.com/invite/TFDrM8K42j)****
* ****[**Tornado.Cash Telegram Discussions**](https://t.me/TornadoCashOfficial)****
_If you are interested, more information is available about_ [_Tornado.Cash governance rules & functioning._ ](governance.md)\_\_
_If you are interested, more information is available about _[_Tornado.Cash governance rules & functioning. _](governance.md)__
## How to Get Involved?
@ -20,37 +20,38 @@ Tornado.Cash community is looking for:
* developers that can help continue building the protocol & its tools;
* auditors who can review code to find bugs and vulnerabilities;
* content creators in order to make educational or promotional content to attract new users to the protocol \(videos, blogs, memes, etc.\)
* content creators in order to make educational or promotional content to attract new users to the protocol (videos, blogs, memes, etc.)
* designers that can refine protocol architecture & design;
* potential hires for the DAO;
* ...
## Tornado.Cash Community Fund
On June 2021, Tornado.Cash community has voted the implementation of a community fund to award its key contributors \([proposal \#7](https://app.tornado.cash/governance/7)\). The management of this fund lies between the hand of the community. Tornado.Cash users are the one who decide whose contribution is eligible for a compensation.
On June 2021, Tornado.Cash community has voted the implementation of a community fund to award its key contributors ([proposal #7](https://app.tornado.cash/governance/7)). The management of this fund lies between the hand of the community. Tornado.Cash users are the one who decide whose contribution is eligible for a compensation.
###
###
### Fund Details
Tornado.Cash Community Fund has been allocated 5% of total available TORN of the governance treasury, broken down as follows:
* 5% of the already vested 485.3k TORN at that time, resulting on an **initial transfer of 22.9k TORN** _->_ [_Transaction Details_](https://etherscan.io/tx/0xbe95f4268df2023d9ef234c1eedbb597b99e4c6e7d396d8f521ee482a1d93d47) __
* 5% of the monthly 91.6k that will be vested in the next 12 month, which result on **a monthly transfer of approx. 4.6k TORN** \(a total of approx. 55k TORN over a year\)
* 5% of the already vested 485.3k TORN at that time, resulting on an **initial transfer of 22.9k TORN** _-> _[_Transaction Details_](https://etherscan.io/tx/0xbe95f4268df2023d9ef234c1eedbb597b99e4c6e7d396d8f521ee482a1d93d47)__\
__
* 5% of the monthly 91.6k that will be vested in the next 12 month, which result on **a monthly transfer of approx. 4.6k TORN** (a total of approx. 55k TORN over a year)
The monthly allocation of the Fund was programmed through [Sablier](https://sablier.finance/), a protocol built on Ethereum that allows a live stream of remaining TORNs \(second by second\) over 12 months.
The monthly allocation of the Fund was programmed through [Sablier](https://sablier.finance), a protocol built on Ethereum that allows a live stream of remaining TORNs (second by second) over 12 months. 
In total, an amount of approximatively **78k TORN** was allocated to this Community Fund. As of the end of August 2021, the balance of the Community Fund is about ~12.6k TORN vested in Sablier & 15.5k TORN in the Gnosis safe.
In total, an amount of approximatively** 78k TORN** was allocated to this Community Fund. As of the end of August 2021, the balance of the Community Fund is about \~12.6k TORN vested in Sablier & 15.5k TORN in the Gnosis safe.
Tornado.Cash Community Contract is: [0xb04E030140b30C27bcdfaafFFA98C57d80eDa7B4](https://gnosis-safe.io/app/#/safes/0xb04E030140b30C27bcdfaafFFA98C57d80eDa7B4/balances).
Tornado.Cash Community Contract is: [0xb04E030140b30C27bcdfaafFFA98C57d80eDa7B4](https://gnosis-safe.io/app/#/safes/0xb04E030140b30C27bcdfaafFFA98C57d80eDa7B4/balances). 
Funds are handled through a Multi-signature Wallet on Gnosis Safe. Keys to manage this wallet were put between the hand of 5 peer-elected community members. To validate a transaction, a consensus of 4-of-5 signatures is needed.
Those multi-signatures key holders were chosen for their contribution & commitment to Tornado.Cash and its Community. They pledged to sign off transaction following the community instructions. Those guidelines are expressed through forum discussion and corroborated by a Snapshot vote.
Those multi-signatures key holders were chosen for their contribution & commitment to Tornado.Cash and its Community. They pledged to sign off transaction following the community instructions. Those guidelines are expressed through forum discussion and corroborated by a Snapshot vote. 
All signers also pledged to resign if they no longer fulfill their allegiance to Tornados prosperity. They can also be dismissed from their role under the decision of the the community. To reward their commitment as signers & key contributors for Tornado.Cash community, 100 TORN per month have been deployed through Sablier
The current 5 multi-signatures key holders are:
The current 5 multi-signatures key holders are: 
* [0xd26BaA5F41CC7839CEdb020b6d98E1C6e1642D75](https://etherscan.io/address/0xd26BaA5F41CC7839CEdb020b6d98E1C6e1642D75)
* [0x0D5bbdBa8Fd6523102A0bb5a0E68b30441a3765F](https://etherscan.io/address/0x0D5bbdBa8Fd6523102A0bb5a0E68b30441a3765F)
@ -58,17 +59,17 @@ The current 5 multi-signatures key holders are:
* [0x647e9e26DA82C29AAFbbFB1C3f45d916AA9b300d](https://etherscan.io/address/0x647e9e26DA82C29AAFbbFB1C3f45d916AA9b300d)
* [0xEA27752f7D6687CB3Be2F180B997713b784c9911](https://etherscan.io/address/0xEA27752f7D6687CB3Be2F180B997713b784c9911)
###
###
### How to Claim a Reward?
Each member has the ability to ask the community for a compensation from this fund to reward his/her contribution to Tornado.Cash. Each member also has the ability to request a compensation on behalf of another member to reward him/her for his/her work.
To this extent, a new category titled **« Funding »** has been created on Tornado.Cash discussion forum. By creating a new post in the category, all members can open a funding request to use the Community Fund. Discussions regarding terms & conditions of such a request are discussed on this post.
To this extent, a new category titled **« Funding »** has been created on Tornado.Cash discussion forum. By creating a new post in the category, all members can open a funding request to use the Community Fund. Discussions regarding terms & conditions of such a request are discussed on this post. 
Once those terms & conditions are fixed, a vote is conducted on Snapshot to validate \(or not\) such a funding request.
Once those terms & conditions are fixed, a vote is conducted on Snapshot to validate (or not) such a funding request.
Here is Tornado.Cash Snapshot space:[ https://snapshot.org/\#/torn-community.eth](%20https://snapshot.org/#/torn-community.eth).
Here is Tornado.Cash Snapshot space:[ https://snapshot.org/#/torn-community.eth](https://snapshot.org/#/torn-community.eth).
![](.gitbook/assets/page-daccueil.png)
@ -78,7 +79,7 @@ Here is Tornado.Cash Snapshot space:[ https://snapshot.org/\#/torn-community.eth
Each specific funding request is accompanied by a Snapshot vote, where TORN holders can explicitly express their position. The result of this Snapshot vote provides the final instruction to multi-signature key holders on wether to transfer the decided reward amount to the concerned member.
Each snapshot vote has a `window of 3 days` to accumulate TORN holders votes. When the end date is reached, the Snapshot status goes from`Active` to `Closed`. Community members can no longer vote.
Each snapshot vote has a `window of 3 days` to accumulate TORN holders votes. When the end date is reached, the Snapshot status goes from`Active` to `Closed`. Community members can no longer vote. 
![](.gitbook/assets/time-window.png)
@ -105,5 +106,4 @@ Steps to vote on Snapshot are quite intuitive. The community member needs to:
_Written by_ [_@ayefda_](https://torn.community/u/ayefda)\_\_
_Written by _[_@ayefda_](https://torn.community/u/ayefda)__

@ -2,7 +2,7 @@
By design, everything is public on the blockchain, which can deprive users from their right to privacy. Anyone can have access to everyones whole transaction history. In response to this core problem,Tornado.Cash protocol allows cryptocurrency holders to earn back their privacy and gain anonymity. Indeed, it enables users to break the on-chain link between a source and a destination address.
However, maintaining privacy and preserving financial freedom should never come at the expense of non-compliance. The right of privacy lies in the ability to have control over the information we provide and to whom we provide it.
However, maintaining privacy and preserving financial freedom should never come at the expense of non-compliance. The right of privacy lies in the ability to have control over the information we provide and to whom we provide it. 
To this extent, **Tornado.Cash Compliance Tool enables users to prove the origin of their funds.** Thanks to the Note generated after each deposit, **this tool will issue a cryptographically verified proof of transactional history** using the Ethereum addresses used to deposit & withdraw assets.
@ -14,15 +14,15 @@ Therefore, if you are ever in need to prove the origin of held assets withdrawn
## How To Use the Compliance Tool?
With each deposit made through the [Tornado.Cash app](https://app.tornado.cash/), a new Note is generated by the protocol. This Note is necessary to withdraw the deposited assets later on any withdrawal address. It is this same Note that, if needed, allow users to generate a Compliance Report to prove the origin of their assets.
With each deposit made through the [Tornado.Cash app](https://app.tornado.cash), a new Note is generated by the protocol. This Note is necessary to withdraw the deposited assets later on any withdrawal address. It is this same Note that, if needed, allow users to generate a Compliance Report to prove the origin of their assets.
_More information about how to deposit & withdraw assets on Tornado.Cash are available on:_ [_Deposit & Withdraw_](untitled.md)_._
_More information about how to deposit & withdraw assets on Tornado.Cash are available on: _[_Deposit & Withdraw_](deposit-withdraw.md)_._
To get a Compliance Report, the user solely need to copy the Note, generated after the deposit, in the dedicated box.
### Before Withdrawal
If the Note wasn't spent yet \(i.e. assets have still not been withdrawn\), the Compliance tool will only provide you with information about the deposit:
If the Note wasn't spent yet (i.e. assets have still not been withdrawn), the Compliance tool will only provide you with information about the deposit:
* Transaction hash of the deposit;
* The source address;
@ -32,11 +32,11 @@ The commitment is the hashed random area of bytes generated at each deposit that
![https://app.tornado.cash/compliance/](.gitbook/assets/capture-de-cran-2021-09-02-a-15.07.01.png)
_You can find more information about how Tornado.Cash achieve to provide privacy by reading_ [_How does Tornado.Cash work?_](how-does-tornado.cash-work.md)\_\_
_You can find more information about how Tornado.Cash achieve to provide privacy by reading _[_How does Tornado.Cash work?_](how-does-tornado.cash-work.md)__
### After Withdrawal
If the Note was spent \(i.e. assets were withdrawn to a given address using the Note\), the Compliance Tool will complete the information above by adding:
If the Note was spent (i.e. assets were withdrawn to a given address using the Note), the Compliance Tool will complete the information above by adding: 
* Transaction hash of the withdrawal;
* The destination address;
@ -52,5 +52,4 @@ This information can also be downloaded under a PDF format, making it is easier
![https://app.tornado.cash/compliance/](.gitbook/assets/capture-de-cran-2021-09-02-a-15.12.53.png)
_Written by_ [_@ayefda_](https://torn.community/u/ayefda)\_\_
_Written by _[_@ayefda_](https://torn.community/u/ayefda)__

@ -22,7 +22,7 @@ Click on `Connect` and choose between wallet providers such as Metamask or Walle
### Save your note
Click on `Deposit` and store your note on a secure place before clicking on `I backed up the note`. You can also save encrypted notes on-chain by setting up a Note Account, by clicking on `Settings` \(top-right corner\).
Click on `Deposit` and store your note on a secure place before clicking on `I backed up the note`. You can also save encrypted notes on-chain by setting up a Note Account, by clicking on `Settings` (top-right corner).
![](.gitbook/assets/aaaab.gif)
@ -50,9 +50,7 @@ Use your deposit note by pasting it in the corresponding box. Click on `Withdraw
Done !
_Written by_ [_**@bt11ba**_](https://torn.community/u/bt11ba/)
_Written by _[_**@bt11ba**_](https://torn.community/u/bt11ba/)

@ -2,13 +2,13 @@
### How to suggest a proposal ?
In order to participate in Tornado.Cash governance, users first need to lock tokens in the governance contract. If a user votes or creates a proposal, the tokens cannot be unlocked before the proposal execution period ends \(8.25 days from proposal creation\). The locked tokens can also be delegated to another address.
In order to participate in Tornado.Cash governance, users first need to lock tokens in the governance contract. If a user votes or creates a proposal, the tokens cannot be unlocked before the proposal execution period ends (8.25 days from proposal creation). The locked tokens can also be delegated to another address.
To create a proposal, a user needs to have at least `1,000 TORN`. All proposals must be smart contracts with verified code that are executed from the [governance contract ](https://etherscan.io/address/0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce)\(using `delegatecall`\). This way, its easy to audit and test any governance changes.
To create a proposal, a user needs to have at least `1,000 TORN`. All proposals must be smart contracts with verified code that are executed from the [governance contract ](https://etherscan.io/address/0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce)(using `delegatecall`). This way, its easy to audit and test any governance changes.
The voting period for a proposal is 3 days. A proposal will succeed if it receives a simple majority of votes and there are at least `25,000 TORN` total votes \(if turnout is too low, the proposal automatically fails\).
The voting period for a proposal is 3 days. A proposal will succeed if it receives a simple majority of votes and there are at least `25,000 TORN` total votes (if turnout is too low, the proposal automatically fails).
After a proposal succeeds, it is subject for a timelock of 2 days. After the timelock, any user is able to execute the proposal \(which initiates the changes\). If proposal is not executed for 3 days after that, it is considered _expired_ and can no longer be executed.
After a proposal succeeds, it is subject for a timelock of 2 days. After the timelock, any user is able to execute the proposal (which initiates the changes). If proposal is not executed for 3 days after that, it is considered _expired_ and can no longer be executed.
All of these initial parameters are relatively small, since there wont be many TORN tokens in circulation early on. But as the circulating supply increases, governance may adjust these thresholds.
@ -22,28 +22,28 @@ A proposal can be of the following nature:
And many more can be done. To find out exactly what can be changed through governance in the protocol, look for the functions with the modifier `onlyGovernance` in the smart contracts.
The governance functions are represented by a red arrow in [this architecture diagram.](https://viewer.diagrams.net/?highlight=0000ff&edit=_blank&layers=1&nav=1&title=tornado-cash-contract-overview.drawio#Uhttps%3A%2F%2Fraw.githubusercontent.com%2FRezan-vm%2Ftornado-cash-edu%2Fmain%2Ftornado-cash-contract-overview.drawio)
The governance functions are represented by a red arrow in [this architecture diagram.](https://viewer.diagrams.net/?highlight=0000ff\&edit=\_blank\&layers=1\&nav=1\&title=tornado-cash-contract-overview.drawio#Uhttps%3A%2F%2Fraw.githubusercontent.com%2FRezan-vm%2Ftornado-cash-edu%2Fmain%2Ftornado-cash-contract-overview.drawio)
NOTE: Parts of this article was taken from [this medium post.](https://tornado-cash.medium.com/tornado-cash-governance-proposal-a55c5c7d0703) Credits goes to the Tornado cash team.
### How to vote ?
You first need to deposit \(or lock\) TORN tokens into the governance contract.
You first need to deposit (or lock) TORN tokens into the governance contract.
Go to: [https://app.tornado.cash/governance](https://app.tornado.cash/governance)
Click `Manage` -> `Lock Tab`
Click `Manage` -> `Lock Tab`
Approve the governance contract to transfer your TORN tokens by clicking on the `Approve` button. Once the approve is confirmed, chose the amount you want to deposit and click `Lock`. Confirm the transaction in your wallet and wait for the confirmation.
![](.gitbook/assets/c05e5a1813edad280544b627b24002dc8d5adcf2.png)
Before the vote, the next crucial step is to review the proposal.
Legitimate proposals should have a dedicated post on [Torn.community ](https://torn.community/)under the category “Proposal”. The forum post will provide additional context and arguments on the proposal. Read the thread and make your own mind on the issue.
Before the vote, the next crucial step is to review the proposal.\
 Legitimate proposals should have a dedicated post on [Torn.community ](https://torn.community)under the category “Proposal”. The forum post will provide additional context and arguments on the proposal. Read the thread and make your own mind on the issue.
Once a proposal was submitted it should appear on:
[https://app.tornado.cash/governance](https://app.tornado.cash/governance)
Proposal are implemented in the form of a smart contract making changes to the system. It is therefore important to verify the address of the smart-contract and review its code. Find the address of the proposal contract here:
Once a proposal was submitted it should appear on:\
[https://app.tornado.cash/governance](https://app.tornado.cash/governance)\
 Proposal are implemented in the form of a smart contract making changes to the system. It is therefore important to verify the address of the smart-contract and review its code. Find the address of the proposal contract here:
![](.gitbook/assets/181d612b6c57964bab59c8e5b766f5247211083d.png)
@ -55,11 +55,11 @@ Read the source code and make sure that it matches what is described in the foru
If you are not technical or not comfortable to read Solidity code, get someone you trust to review the contract for you.
If you agree \(or disagree\) with the proposal code, it time to vote!
If you agree (or disagree) with the proposal code, it time to vote!
A proposal have a voting windows of 3 days. This means that we have 3 days to reach the vote quorum of 25k TORN.
Important: Once you voted, your tokens will be locked for 8.25 days from the moment the proposal was submitted \(the start of the 3 days voting period\). After the 8.25 you can withdraw your tokens from the governance contract. Note that you can vote on 2 proposal at the same time without incurring additional lockup period \(Only the most recently submitted proposal will matter for the 8.25 lockup\).
Important: Once you voted, your tokens will be locked for 8.25 days from the moment the proposal was submitted (the start of the 3 days voting period). After the 8.25 you can withdraw your tokens from the governance contract. Note that you can vote on 2 proposal at the same time without incurring additional lockup period (Only the most recently submitted proposal will matter for the 8.25 lockup).
To vote, simply click on the Green check mark or the the red cross depending whether you accept or reject the proposal. Confirm the transaction with Metamask and your vote is in!
@ -71,15 +71,15 @@ IMPORTANT: If you delegate your tokens and that your delegate votes or initiate
To achieve delegation, go to: [https://app.tornado.cash/governance](https://app.tornado.cash/governance)
You first need to lock your tokens in the governance contract. Click **`Manage`** -> **`Lock`** tab
You first need to lock your tokens in the governance contract. Click **`Manage`** -> **`Lock`** tab
Approve the governance contract to transfer your TORN tokens by clicking on the **`Approve`** button. Once the approve is confirmed, chose the amount you want to delegate and click **`Lock`**. Confirm the transaction in your wallet and wait for the confirmation.
![](.gitbook/assets/c05e5a1813edad280544b627b24002dc8d5adcf2%20%281%29.png)
![](<.gitbook/assets/c05e5a1813edad280544b627b24002dc8d5adcf2 (1).png>)
The last step, is to make the actual delegation. Go again to [https://app.tornado.cash/governance](https://app.tornado.cash/governance)
Click **`Manage`** -&gt; **`Delegate`** tab
Click **`Manage`** -> **`Delegate`** tab
Fill-in the address to which you want to delegate and click **`Delegate`**. Approve the transaction in your wallet and wait for confirmation.
@ -87,9 +87,8 @@ Fill-in the address to which you want to delegate and click **`Delegate`**. Appr
The totality of your locked balance will be delegated.
You can undelegate at anytime. To undelegate simply use the `Undelegate` Button in `Manage` -&gt; `Undelegate` Tab.
You can undelegate at anytime. To undelegate simply use the `Undelegate` Button in `Manage` -> `Undelegate` Tab.
_Written by_ [_@rezan_](https://torn.community/u/Rezan/summary)\_\_
_Written by _[_@rezan_](https://torn.community/u/Rezan/summary)__

@ -4,11 +4,11 @@ Before diving in tutorials explaining & easing the use of Tornado.Cash, here is
### Global overview of Tornado.Cash functioning
To achieve privacy, Tornado.Cash **uses smart contracts that accept tokens deposits from one address and enable their withdrawal from a different address**. Those smart contracts work as pools that mix all deposited assets.
To achieve privacy, Tornado.Cash **uses smart contracts that accept tokens deposits from one address and enable their withdrawal from a different address**. Those smart contracts work as pools that mix all deposited assets.&#x20;
Once the funds are withdrawn by a complete new address from those pools, the on-chain link between the source & the destination is broken. The withdrawn crypto-assets are therefore anonymized.
Once the funds are withdrawn by a complete new address from those pools, the on-chain link between the source & the destination is broken. The withdrawn crypto-assets are therefore anonymized.&#x20;
When a user puts funds into a pool \(a.k.a. the deposit\), a private note is generated. This private note works as a private key for the user to access those funds later. To withdraw them, the same user can use a different address - an old or a new one - and recover his/her funds thanks to this private key.
When a user puts funds into a pool (a.k.a. the deposit), a private note is generated. This private note works as a private key for the user to access those funds later. To withdraw them, the same user can use a different address - an old or a new one - and recover his/her funds thanks to this private key.
The strength of such a protocol comes naturally from its number of users and the size of its pool. The more users deposit into the pool the merrier. However, to preserve privacy & anonymity, the user must keep some basic rules in mind such as:
@ -16,13 +16,13 @@ The strength of such a protocol comes naturally from its number of users and the
* Leaving a lapse of time between the deposit & the withdrawal action;
* Mixing its funds with the crowd by waiting for several transactions before recovering its assets.
_More recommendations are provided on:_ [_Tips to remain anonymous_](tips-to-remain-anonymous.md)_._
_More recommendations are provided on: _[_Tips to remain anonymous_](tips-to-remain-anonymous.md)_._
### Contribution of zk-SNARK & hashing process
Tornado.Cash use Zero-Knowledge Succinct Non-Interactive Argument of Knowledge \(also called zk-SNARK\) to verify & allow transactions.
Tornado.Cash use Zero-Knowledge Succinct Non-Interactive Argument of Knowledge (also called zk-SNARK) to verify & allow transactions.
To process a deposit, Tornado.Cash generates a random area of bytes, computes it through the [Pederson Hash](https://iden3-docs.readthedocs.io/en/latest/iden3_repos/research/publications/zkproof-standards-workshop-2/pedersen-hash/pedersen.html) \(as it is friendlier with zk-SNARK\), then send the token & the 20 mimc hash to the smart contract. The contract will then insert it into the Merkle tree.
To process a deposit, Tornado.Cash generates a random area of bytes, computes it through the [Pederson Hash](https://iden3-docs.readthedocs.io/en/latest/iden3\_repos/research/publications/zkproof-standards-workshop-2/pedersen-hash/pedersen.html) (as it is friendlier with zk-SNARK), then send the token & the 20 mimc hash to the smart contract. The contract will then insert it into the Merkle tree.
To process a withdrawal, the same area of bytes is split into two separate parts: the **secret** on one side & the **nullifier** on the other side. The nullifier is hashed. This nullifier is a public input that is sent on-chain to get checked with the smart contrat & the Merkle tree data. It avoids double spending for instance.
@ -32,5 +32,4 @@ Deposits are simple on a technological point of view, but expensive in terms of
_Written by_ [_@ayefda_](https://torn.community/u/ayefda)\_\_
_Written by _[_@ayefda_](https://torn.community/u/ayefda)__

@ -4,29 +4,28 @@ The Tornado Cash tool allows you to remain anonymous on-chain. However, if the t
### Use a VPN
Your internet service provider \(ISP\) identifies you with an IP address. To prevent third parties from knowing that you are using Tornado.cash, you should consider using TOR and/or a VPN for your transfers. Avoid using free VPNs, they tend to keep or even sell your data. There are several VPNs on the market boasting a "no-log policy".
Your internet service provider (ISP) identifies you with an IP address. To prevent third parties from knowing that you are using Tornado.cash, you should consider using TOR and/or a VPN for your transfers. Avoid using free VPNs, they tend to keep or even sell your data. There are several VPNs on the market boasting a "no-log policy".
### Save your note in a safe place <a id="save-your-note-in-a-safe-place"></a>
### Save your note in a safe place <a href="save-your-note-in-a-safe-place" id="save-your-note-in-a-safe-place"></a>
Your note provides a record of your original transaction. Anyone who has it can withdraw the funds deposited, but also know the deposit address. Be sure to keep this note away from prying eyes and store it in a secure environment.
### Delete data <a id="delete-data"></a>
### Delete data <a href="delete-data" id="delete-data"></a>
Your browser is a real source of information for the extensions you use. Delete your data after each deposit or withdrawal. If two transfers are made with the same cookies, the extension you are using will be able to link these two transactions.
### Avoid using the same API token <a id="avoid-using-the-same-api-token"></a>
### Avoid using the same API token <a href="avoid-using-the-same-api-token" id="avoid-using-the-same-api-token"></a>
If you use the same API token for two transactions, you will be easily recognized by your extension. For Metamask users, be aware that this extension will use the same token for each of your transactions. To avoid this problem, don't hesitate to uninstall and reinstall Metamask for each transfer, making sure to create a new account each time.
### Be patient <a id="be-patient"></a>
### Be patient <a href="be-patient" id="be-patient"></a>
![](https://gblobscdn.gitbook.com/assets%2F-MXflGk4w5pDjjlmPCuF%2F-MgQVRqU6Ff6ypW_Q-fV%2F-MgQW0ko2bOUYlnsuG0F%2Fozxj.png?alt=media&token=1debad58-aa3c-4638-9d18-1636e87e3d0a)
![](https://gblobscdn.gitbook.com/assets%2F-MXflGk4w5pDjjlmPCuF%2F-MgQVRqU6Ff6ypW\_Q-fV%2F-MgQW0ko2bOUYlnsuG0F%2Fozxj.png?alt=media\&token=1debad58-aa3c-4638-9d18-1636e87e3d0a)
Your anonymity also depends on the number of transactions after your deposit \(cf. Statistics tab above\). If you withdraw your funds immediately after depositing them, it is possible to link your deposit to your transfer using correlation probabilities. The longer you wait, the greater your anonymity set will be.
Your anonymity also depends on the number of transactions after your deposit (cf. Statistics tab above). If you withdraw your funds immediately after depositing them, it is possible to link your deposit to your transfer using correlation probabilities. The longer you wait, the greater your anonymity set will be.
### Use multiple addresses
A 7 x 10eth deposit from one address and a 7 x 10eth withdrawal to a single address can also be linked. Remember to multiply your withdrawal addresses.
_Written by_ [_**@bt11ba**_](https://torn.community/u/bt11ba/)
_Written by _[_**@bt11ba**_](https://torn.community/u/bt11ba/)

23
torn.md

@ -2,26 +2,26 @@
## Token
TORN is an ERC20-compatible token with a fixed supply that governs [Tornado.Cash](https://tornado.cash/). TORN holders can make proposals and vote to change the protocol via governance.
TORN is an ERC20-compatible token with a fixed supply that governs [Tornado.Cash](https://tornado.cash). TORN holders can make proposals and vote to change the protocol via governance.
**TORN is not a fundraising device or investment opportunity.**
**Heres how the initial distribution of TORN would break down:**
* **5% \(500,000 TORN\):** Airdrop to early users of [Tornado.Cash](https://tornado.cash/) ETH pools
* **10% \(1,000,000 TORN\):** Anonymity mining for [Tornado.Cash](https://tornado.cash/) ETH pools, distributed linearly over 1 year
* **55% \(5,500,000 TORN\):** DAO treasury, will be unlocked linearly over 5 years with 3 month cliff
* **30% \(3,000,000 TORN\):** Founding developers and early supporters, will be unlocked linearly over 3 years with 1 year cliff
* **5% (500,000 TORN):** Airdrop to early users of [Tornado.Cash](https://tornado.cash) ETH pools
* **10% (1,000,000 TORN):** Anonymity mining for [Tornado.Cash](https://tornado.cash) ETH pools, distributed linearly over 1 year
* **55% (5,500,000 TORN):** DAO treasury, will be unlocked linearly over 5 years with 3 month cliff
* **30% (3,000,000 TORN):** Founding developers and early supporters, will be unlocked linearly over 3 years with 1 year cliff
![](.gitbook/assets/1-bjggju1rn4_qoxgcljfneq.png)
![](.gitbook/assets/1-bjggju1rn4\_qoxgcljfneq.png)
![](.gitbook/assets/1-gmc0jw8zr5xfvrk5zyqmya.png)
## Airdrop <a id="f04d"></a>
## Airdrop <a href="f04d" id="f04d"></a>
Users who have believed in [Tornado.Cash](https://tornado.cash/) from early on should have a say in governing the protocol. For this reason, early adopters of the protocol did receive an airdrop of TORN.
Users who have believed in [Tornado.Cash](https://tornado.cash) from early on should have a say in governing the protocol. For this reason, early adopters of the protocol did receive an airdrop of TORN.
TORN has been airdropped to [all addresses](https://github.com/tornadocash/airdrop/blob/master/airdrop.csv) that made deposits into [Tornado.Cash](https://tornado.cash/) ETH pools before block `11400000`. TORN were airdropped in the form of a non-transferable TORN voucher \(vTORN\) that can be redeemed 1:1 to TORN within 1 year, from December 18, 2020, to December 18, 2021. TORN that arent redeemed will be swept into the governance contract after 1 year and become part of the DAO Treasury. Redeemed TORN will be available immediately.
TORN has been airdropped to [all addresses](https://github.com/tornadocash/airdrop/blob/master/airdrop.csv) that made deposits into [Tornado.Cash](https://tornado.cash) ETH pools before block `11400000`. TORN were airdropped in the form of a non-transferable TORN voucher (vTORN) that can be redeemed 1:1 to TORN within 1 year, from December 18, 2020, to December 18, 2021. TORN that arent redeemed will be swept into the governance contract after 1 year and become part of the DAO Treasury. Redeemed TORN will be available immediately.
The airdropped amount depends on users deposit size and age — larger deposits and older deposits will receive more TORN. Multipliers for deposit size are logarithmic:
@ -29,7 +29,7 @@ The airdropped amount depends on users deposit size and age — larger deposi
So a 100 ETH deposit get twice as many tokens as a 1 ETH deposit. The multiplier allows large and small users of [Tornado.Cash](https://tornado.cash/) to both have a say in governance.
So a 100 ETH deposit get twice as many tokens as a 1 ETH deposit. The multiplier allows large and small users of [Tornado.Cash](https://tornado.cash) to both have a say in governance.
The exact curve for the time multiplier looks like this:
@ -39,5 +39,4 @@ The exact airdrop formula is the following:
![](.gitbook/assets/1-megm4amqrrkx0qxva9iska-2x.png)
_Written by_ [_**Tornado Team**_](https://tornado-cash.medium.com/tornado-cash-governance-proposal-a55c5c7d0703)
_Written by _[_**Tornado Team**_](https://tornado-cash.medium.com/tornado-cash-governance-proposal-a55c5c7d0703)