From e9ab17beaff91bf9fa623a34f0b27383ab8c303a Mon Sep 17 00:00:00 2001 From: gozzy Date: Sat, 18 Feb 2023 23:32:43 +0000 Subject: [PATCH] general updates --- README.md | 14 +++----- SUMMARY.md | 6 ++-- general/community/contributing.md | 4 +-- general/community/governance.md | 8 ++--- general/deployments.md | 10 +++--- general/how-does-it-work.md | 37 ++++++++----------- general/resources/compliance-tool.md | 46 ++++++++++-------------- general/resources/tutela.md | 2 +- general/token/anonymity-mining.md | 24 ++++++------- general/token/index.md | 26 +++++++------- general/token/staking.md | 6 ++-- tornado-cash-classic/connect-wallet.md | 16 ++------- tornado-cash-classic/deposit-withdraw.md | 20 +++++------ tornado-cash-nova/anonymity-tips.md | 43 ---------------------- tornado-cash-nova/connect-wallet.md | 3 +- tornado-cash-nova/shielded-transfers.md | 6 ++-- 16 files changed, 95 insertions(+), 176 deletions(-) delete mode 100644 tornado-cash-nova/anonymity-tips.md diff --git a/README.md b/README.md index 686a163..1f1d483 100644 --- a/README.md +++ b/README.md @@ -3,20 +3,18 @@ ![](/.gitbook/assets/image.png) {% hint style="danger" %} -*Tornado Cash was sanctioned by the US Treasury on 08/08/2022, making it illegal for US citizens to interact with the core and governance contracts* +*Tornado Cash was sanctioned by the US Treasury on 08/08/2022, making it illegal for US citizens to interact with the core and governance contracts.* {% endhint %} -Tornado Cash is a **non-custodial** **privacy protocol** allowing **permissionless** shielded transactions on Ethereum and derivative networks. Tornado Cash is not a mixer, as assets are never commingled due to the presence of zero knowledge cryptography. +Tornado Cash is a **non-custodial** **privacy protocol** allowing **permissionless** shielded transactions on Ethereum and derivative networks. **Tornado Cash is not a mixer, as assets are never commingled due to the presence of zero knowledge cryptography**. The core of the protocol is ungovernable and immutable, given Ethereum's distributed state and the provenance of the contracts, they can neither be changed nor tampered with. -The core of the protocol is ungovernable and immutable, given Ethereum's distributed state and the provenance of the contracts, they can neither be changed nor tampered with. Therefore, nobody - including the original developers - can modify or inhibit the protocol. All governance and associated smart contracts are deployed by the community. - -As a non-custodial protocol, users keep custody of their cryptocurrencies while using Tornado.Cash. This means that at each deposit, they are provided with a secret "note" that grants the access to the deposited funds, allowing self-soverginity over one's assets. +Therefore, nobody - including the original developers - can modify or inhibit the protocol. All governance and associated smart contracts are deployed by the community. As a non-custodial protocol, users keep custody of their cryptocurrencies while using Tornado Cash. This means that at each deposit, they are provided with a secret "note" that grants the access to the deposited funds, allowing self-soverginity over one's assets. ## How is anonymity achieved? Tornado Cash achives anonymity by breaking the on-chain link between source and destination addresses through "anonymity pools". These are immutable smart contracts that accepts fixed denominations of a currency, acting as what is known as a mix network. Although anonymity is only obtained with use of a "relayer", which acts as a withdrawal proxy to mask the link between destination and source addresses. -Learn more about [_How does Tornado.Cash work?_](general/how-does-tornado.cash-work.md) and [Tips to remain anonymous](general/tips-to-remain-anonymous.md). +Learn more about [_How does Tornado Cash work?_](general/how-does-it-work.md) and [Tips to remain anonymous](general/guides/opsec.md). ## Where is Tornado Cash deployed? @@ -44,11 +42,9 @@ Since June 2021, the smart contracts **have also been deployed on other side-cha * **Arbitrum One** * **ETH** (Ethereum) -![](/.gitbook/assets/logos.png) - Until December 2021, governance enabled "anonymity mining" - a mechanism to incentivise proactive usage of selected anonymity sets to compliment pool entropy, allowing depositors to earn the native governance token (**TORN**). -_For information on_ [_Anonymity mining_](tornado-cash-classic/anonymity-mining.md) _and the_ [_TORN token_](general/torn.md). +_See sections_ [_Anonymity mining_](tornado-cash-classic/anonymity-mining.md) _and the_ [_TORN token_](general/torn.md) for more information. **The protocol's native governance token, TORN, allows open and decentralized collaboration to shape the direction of the protocol through voting.**. The community has a strong influence over the evolution of Tornado Cash, it's development and management of the protocol's treasury. diff --git a/SUMMARY.md b/SUMMARY.md index 5fcf324..4222f1f 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -11,7 +11,10 @@ ## Guides -* [Usage post-censorship](general/guides/post-censorship.md) +* [Post-censorship](general/guides/post-censorship/index.md) + * [RU](general/guides/post-censorship/ru.md) + * [ES](general/guides/post-censorship/es.md) + * [ZH](general/guides/post-censorship/zh.md) * [How to become a relayer?](general/guides/relayer.md) * [Local UI deployment](general/guides/local-ui.md) * [Tips to remain anonymous](general/guides/opsec.md) @@ -35,7 +38,6 @@ * [How to connect your wallet](tornado-cash-nova/connect-wallet.md) * [Deposit / Withdraw](tornado-cash-nova/deposit-withdraw.md) * [Shielded transfers](tornado-cash-nova/shielded-transfers.md) -* [Anonymity tips](tornado-cash-nova/anonymity-tips.md) ## Resources diff --git a/general/community/contributing.md b/general/community/contributing.md index 6a9ea26..3acded2 100644 --- a/general/community/contributing.md +++ b/general/community/contributing.md @@ -14,12 +14,12 @@ _For more information see the section on_ [_Governance_](governance.md). ## How to get involved? {% hint style="danger" %} -*Tornado Cash was sanctioned by the US Treasury on 08/08/2022, making it illegal for US citizens to interact with the core and governance contracts. Please understand the laws in your jurastiction* +*Tornado Cash was sanctioned by the US Treasury on 08/08/2022, making it illegal for US citizens to interact with the core and governance contracts. Please understand the laws in your jurisdiction.* {% endhint %} Join the community on one or more of the social portals and start seeking where you can help make a difference, active areas of assistence required are: * development, from frontend and tooling to smart contracts * auditing, security reviews of frontend interfaces or smart contracts -* advocates, of privacy and distributed tooling to provide community assistence and engage in governance +* advocates, of privacy and distributed tooling to provide community assistance and coordinate creation of public goods * authors to improve protocol education and documentation diff --git a/general/community/governance.md b/general/community/governance.md index c51fa96..03fd34a 100644 --- a/general/community/governance.md +++ b/general/community/governance.md @@ -1,6 +1,6 @@ # Governance -The following governance rules apply to all Tornado Cash pools (including Tornado Cash Nova). +_Tornado Cash Classic anonymity pools are not under the control of governance, the contracts are immutable with no ownership inheritence or proxy logic ensured by the security of Ethereum._ ### How to create a proposal? @@ -32,17 +32,17 @@ Go to the `Voting` route of the application, look to the top of the page under t Approve the locked amount for the governance contract to transfer your tokens by clicking on the `Approve` button. Once the approve is confirmed, either by signing a message or making an approval transaction - click `Lock` to initiate the transaction to deposit. Confirm the transaction in your wallet and wait for confirmation to see the updated balance. -![]() +![](../../.gitbook/assets/c05e5a1813edad280544b627b24002dc8d5adcf2.png) Individuals should take time to review the matters they are voting on, as given the open nature of the organisation - **the code execution could be malcious** - or may just simply be against their opinion. Proposals are encouraged to be discussed on the forums before being deployed. Review the discription, subject matter and forum thread before voting. To allow easy auditing of the proposals execution and ensure the highest possibility for your proposal to win consensus, bytecode should be verified on Etherscan using the contract source code. -![](/.gitbook/assets/181d612b6c57964bab59c8e5b766f5247211083d.png) +![](../../.gitbook/assets/181d612b6c57964bab59c8e5b766f5247211083d.png) Look for the contract address on Etherscan and make sure that the source code is verified before voting. -![](/.gitbook/assets/d2d37d169a94f09156e76fa522b7974cb7c9ac3f.png) +![](../../.gitbook/assets/d2d37d169a94f09156e76fa522b7974cb7c9ac3f.png) > Using locked tokens in a vote subjects them to a timelock of 8 days approximately with current governance parameters diff --git a/general/deployments.md b/general/deployments.md index 56d629d..1dcf233 100644 --- a/general/deployments.md +++ b/general/deployments.md @@ -1,10 +1,8 @@ # Tornado Cash Smart Contracts -[Codes behind Tornado.Cash functioning](https://github.com/tornadocash) - smart contacts, circuits & toolchain - are fully **open sourced.** This page regroups all information regarding Tornado Cash smart contracts. +The following addresses are deployments of the [source code of Tornado Cash smart contracts](https://github.com/tornadocash) and governance related addresses. -## Smart Contracts Adresses - -### Tornado Cash Classic - Pools Contracts +### Tornado Cash Classic * Ethereum Mainnet @@ -107,7 +105,7 @@ | 1 WBTC | [0x776198CCF446DFa168347089d7338879273172cF](https://goerli.etherscan.io/address/0x776198CCF446DFa168347089d7338879273172cF) | | 10 WBTC | [0xeDC5d01286f99A066559F60a585406f3878a033e](https://goerli.etherscan.io/address/0xeDC5d01286f99A066559F60a585406f3878a033e) | -### Tornado Cash Nova - Pool contracts (beta) +### Tornado Cash Nova | Contract | Address | | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -118,7 +116,7 @@ | Verifier 16 | [0x743494b60097A2230018079c02fe21a7B687EAA5](https://blockscout.com/xdai/mainnet/address/0x743494b60097A2230018079c02fe21a7B687EAA5#code) | | Hasher | [0x94C92F096437ab9958fC0A37F09348f30389Ae79](https://blockscout.com/xdai/mainnet/address/0x94C92F096437ab9958fC0A37F09348f30389Ae79#code) | -### Governance Contracts: +### Governance | Contract | Address | | ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | diff --git a/general/how-does-it-work.md b/general/how-does-it-work.md index b67eca6..0c16f55 100644 --- a/general/how-does-it-work.md +++ b/general/how-does-it-work.md @@ -1,37 +1,30 @@ -# How does Tornado Cash work? +# How does it work? -Before diving into the tutorials explaining & easing the use of Tornado.Cash, here is an overall overview of the protocol's global functioning. +To achieve privacy, Tornado Cash **uses smart contracts that accept token deposits from one address and enable their withdrawal from a different address**. Those smart contracts work as pools that combine all deposited assets. -### Global overview of Tornado Cash +Once the funds are withdrawn by a new address from those pools, the on-chain link between the source and the destination addresses is broken through anonymity. While assets are in anonymity pool the management of are non-custodial, individuals are the only ones in the control of their assets given that sufficient operational security is maintained. -To achieve privacy, Tornado Cash **uses smart contracts that accept token deposits from one address and enable their withdrawal from a different address**. Those smart contracts work as pools that mix all deposited assets. +**Classic anonymity pools** -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. +* When a user transfers assets into a pool (deposit), a private note is generated. This private note works as **a private key or secret** to access the assets -While tokens are in a Tornado Cash pool, the custody remains in users’ hands. Users, therefore, have complete control over their tokens. +**Nova anonymity pools**: -**For traditional Tornado Cash fixed-amount pools**: +* Asset management is fufilled through a shielded key, which can be generated signing a message with an Ethereum address for reusable access +* Custody is obtained by either transferring assets to the pool or registering a shielded key to recieve shielded transfers -* 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 protocol is linked directly to its amount of users and the size of its pool. The more users deposit into the pool the larger the probability of correlation. However, to ensure anonymity individuals must be concious of: -**For Tornado Cash Nova, the new ETH pool with arbitrary amounts & shielded transfers**: +* Using a relayer for withdrawal gas fees and maintain a shielded balance +* Waiting for sufficient subsequent deposits for decreased chances of probability or relation to the withdrawal -* Funds are directly linked to a given wallet address. There is no private note or key. Users can access their funds by connecting to the pool with the appropriate address. -* Custody is either acquired by the act of depositing tokens into the pool or by registering in the pool & receiving shielded transfers from another address. +_For a more detailed explaination see guide_ [_Tips to remain anonymous_](guides/opsec.md)_._ -The strength of such protocol is linked directly to 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 in mind some basic rules, such as: +### Zero knowledge -* Using a relayer to pay gas at withdrawal; -* Allowing time to lapse between the deposit & the withdrawal action; -* Mixing its funds with the crowd by waiting for several transactions before recovering its assets. +Tornado Cash uses Zero-Knowledge Succinct Non-Interactive Argument of Knowledge (zkSNARK) to maintain non-custodial shielded transactions. -_More recommendations are provided in:_ [_Tips to remain anonymous_](tips-to-remain-anonymous.md)_._ - -### Contribution of zk-SNARK and hashing process - -Tornado.Cash uses 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 [Pedersen 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-SNARKs), then sends the token & the 20 MiMC hash to the smart contract. The contract will then insert it into the Merkle tree. +To process a deposit a random slice of bytes is generated by the individual, it is then encrypted using [Pedersen hashing](https://iden3-docs.readthedocs.io/en/latest/iden3\_repos/research/publications/zkproof-standards-workshop-2/pedersen-hash/pedersen.html). Pedersen hashing is optimised for the arimithic circuits for zero-knowledge proofs and maintain low transactional costs in the Ethereum virtual machine. Depositing is fufilled through inputing the hash for insertion 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 be checked with the smart contract & the Merkle tree data. It avoids double-spending for instance. diff --git a/general/resources/compliance-tool.md b/general/resources/compliance-tool.md index a8d855a..88d34a0 100644 --- a/general/resources/compliance-tool.md +++ b/general/resources/compliance-tool.md @@ -1,53 +1,45 @@ # Compliance tool -By design, everything is public on the blockchain, which can deprive users from their right to privacy. Anyone can have access to everyone’s 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. +By design, everything is public on the blockchain, which can deprive users from their right to privacy. Anyone can have view everyone elses entire financial history. Tornado Cash breaks the on-chain link between the source and destination address, although not at 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. - -You can visit the Medium post related to this tool to learn more about its development and launch: [**compliance tool Medium post announcement**](https://tornado-cash.medium.com/tornado-cash-compliance-9abbf254a370). - -Therefore, if you are ever in need to prove the origin of held assets withdrawn from one of Tornado.Cash pools, we invite you to use the compliance tool. +To this extent, **the compliance tool enables users to prove the origin of their funds through selective disclourse.** Each note translates to a unique deposit, **this tool will issue a cryptographic proof of a deposit** allowing a third party to authethicate one's transactional profile. ![](/.gitbook/assets/capture-de-cran-2021-09-02-a-14.57.11.png) ## How to use the compliance tool? -With each deposit made through the application, 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 application, 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 see section on_ [_Deposit / Withdraw_](deposit-withdraw.md)_._ +_More information see section _[_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. +To get a compliance report, the user solely need to copy the note, generated after the deposit, in the dedicated input. ### 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; -* The Commitment hash. +* Transaction hash of the deposit +* The source address +* The commitment hash -The commitment is the hashed random area of bytes generated at each deposit that is sent to Tornado.Cash smart contract to characterize the transaction. +The commitment is the hashed random area of bytes generated at each deposit that is sent to anonymity pool to characterize the transaction. -![](../.gitbook/assets/capture-de-cran-2021-09-02-a-15.07.01.png) +![](../../.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-it-work.md)_._ +To can find more information about how Tornado Cash achieves privacy see section [_How does Tornado Cash work?_](../how-does-it-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: -* Transaction hash of the withdrawal; -* The destination address; -* The Nullifier Hash. +* Transaction hash of the withdrawal +* The destination address +* The nullifier hash -The nullifier hash is a public input that is sent on-chain to get checked with the smart contract & the Merkle tree data to allow the withdrawal. +The nullifier hash is a public input that is sent on-chain to get checked with the smart contract and authenthicate the presence of the note's secret in the Merkle tree for the withdrawal. -![https://app.tornado.cash/compliance/](/.gitbook/assets/capture-de-cran-2021-09-02-a-15.12.23.png) +![](../../.gitbook/assets/capture-de-cran-2021-09-02-a-15.12.23.png) -Therefore, the tool allows users to re-link source & destination addresses in order to prove transaction history for assets used on Tornado Cash. +Therefore, the tool allows users to re-link source and destination addresses in order to prove transaction history for assets transacted through Tornado Cash. The compliance report can be downloaded as a PDF format for accessible disclosure. -This information can also be downloaded under a PDF format, making it is easier to get sent to any desired third part: - -![https://app.tornado.cash/compliance/](/.gitbook/assets/capture-de-cran-2021-09-02-a-15.12.53.png) +![](../../.gitbook/assets/capture-de-cran-2021-09-02-a-15.12.53.png) diff --git a/general/resources/tutela.md b/general/resources/tutela.md index 6ea089a..e9400f8 100644 --- a/general/resources/tutela.md +++ b/general/resources/tutela.md @@ -6,5 +6,5 @@ Interest gathered from external actors and over the the span of 3 months, a grou https://arxiv.org/abs/2201.06811 -You can try out the application publicly, [tutela.xyz](https://tutela.xyz) and view the source code of the [clustering algorithim](https://github.com/TutelaLabs/tutela-app) used. +You can try out the application publicly, [tutela.xyz](https://tutela.xyz) and view the [source code](https://github.com/TutelaLabs/tutela-app). diff --git a/general/token/anonymity-mining.md b/general/token/anonymity-mining.md index 4b9b4ca..a26898e 100644 --- a/general/token/anonymity-mining.md +++ b/general/token/anonymity-mining.md @@ -3,7 +3,7 @@ Anonymity mining was 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. {% hint style="warning" %} -_Tornado Cash anonymity mining program began on December 18, 2020 and has ended on December 18, 2021._ +_Tornado Cash anonymity mining program began on December 18, 2020 and ended on December 18, 2021._ {% endhint %} 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. @@ -18,17 +18,17 @@ One of the community members created the resource of [a mining spreadsheet 13](h 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) +![](../../.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.** -![](/.gitbook/assets/vhustru.png) +![](../../.gitbook/assets/vhustru.png) 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. -![](/.gitbook/assets/k6juetp.png) +![](../../.gitbook/assets/k6juetp.png) _Notes that are active (not withdrawn) are known as “unspent” notes._ @@ -36,39 +36,39 @@ _Notes that are active (not withdrawn) are known as “unspent” notes._ 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 it’s encouraged to store the information as presented\_.\_ -![](/.gitbook/assets/lskzkgk.png) +![](../../.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 deposit’s anonymity it is always advised to use a relayer_), this will bring the note into a “spent” state. -![](/.gitbook/assets/aid86cj.png) +![](../../.gitbook/assets/aid86cj.png) **Remember to still keep your depositing notes a secret even after withdrawing, as they still retain the ability to redeem AP.** -![](/.gitbook/assets/bpsqxxr.png) +![](../../.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. * **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) +![](../../.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. -![](/.gitbook/assets/i6qtr0f.png) +![](../../.gitbook/assets/i6qtr0f.png) Updating the trees can be an expensive process, **it is recommended that users with small deposits wait for the larger miners to update the trees, this could take anywhere from a few days to a week**. If you want to view your event relative to the current pending batches. Click the _“Show mining note information”_ hyperlink, here you can also pay the transaction fees to sync the tree relative to your withdrawal through the “Update trees” button. -![](/.gitbook/assets/d8dmxjj.png) +![](../../.gitbook/assets/d8dmxjj.png) ### 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. -![](../.gitbook/assets/ahrjxbq.png) +![](../../.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. -![](../.gitbook/assets/wo55lao.png) +![](../../.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. diff --git a/general/token/index.md b/general/token/index.md index d3f055d..fc860b2 100644 --- a/general/token/index.md +++ b/general/token/index.md @@ -1,35 +1,33 @@ # TORN -## Token +TORN is an ERC20 compliant token with a fixed supply that governs the protocol, token holders can submit proposals and vote to contribute. -TORN is an ERC20-compatible token with a fixed supply that governs Tornado Cash, TORN holders can make proposals and vote to change the protocol via governance. - -**Here’s how the initial distribution of TORN would break down:** +**Initial token distrbution** * **5% (500,000 TORN):** Airdrop to early users of ETH pools * **10% (1,000,000 TORN):** Anonymity mining for 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) +![](../../.gitbook/assets/1-gmc0jw8zr5xfvrk5zyqmya.png) ## Airdrop -Users who have believed in 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. +Early adopters who used in Tornado Cash were allocated a share in governing the protocol on launch to aspire for an equitable demographic in the asset's economics. -TORN has been airdropped to [all addresses](https://github.com/tornadocash/airdrop/blob/master/airdrop.csv) that made deposits into 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 aren’t 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 [early adopter addresses](https://github.com/tornadocash/airdrop/blob/master/airdrop.csv) that made deposits into ETH pools before block `11400000` were allocated a non-transferable TORN voucher (vTORN) that could be redeemed 1:1 to TORN within 1 year, from December 18, 2020, to December 18, 2021. The expired assets are then reallocated back to the treasury and participants that failed to claim can no longer redeem. -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: +The airdropped amount depended on a users’ deposit size and age, larger deposits and older deposits would have a greater allocation. Multipliers for deposit size are logarithmic: -![](/.gitbook/assets/1-ogfrad8p3gez14zh4jndiq-2x.png) +![](../../.gitbook/assets/1-ogfrad8p3gez14zh4jndiq-2x.png) -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 to both have a say in governance. +So that a larger deposits like 100 ETH only got twice as many tokens as a 1 ETH deposit, the multiplier aspired to reduce any skews by focusing on proactive usage and not purely volume. The exact curve for the time multiplier looks like this: -![](/.gitbook/assets/1-bje88nlnkbe29-zcs5agkw-2x.png) +![](../../.gitbook/assets/1-bje88nlnkbe29-zcs5agkw-2x.png) -The exact airdrop formula is the following: +The exact airdrop formula was the following: -![](/.gitbook/assets/1-megm4amqrrkx0qxva9iska-2x.png) \ No newline at end of file +![](../../.gitbook/assets/1-megm4amqrrkx0qxva9iska-2x.png) \ No newline at end of file diff --git a/general/token/staking.md b/general/token/staking.md index 3abad5b..2a8c3a0 100644 --- a/general/token/staking.md +++ b/general/token/staking.md @@ -1,6 +1,6 @@ # Staking -Since the execution of [proposal #10](https://etherscan.io/address/0xEC2412368be52107Fa549c3fb78DE1e3e6bF18EB#code), an additional utility was enabled for the asset aside from governance. Through the deployment of the relayer registry, which acts as a official store of active relayers. This is then referenced on the frontend through referencing the registry contract. Relayers pay a percent of withdrawal fees to governance to have an active registration in the registry. +Since the execution of [proposal #10](https://etherscan.io/address/0xEC2412368be52107Fa549c3fb78DE1e3e6bF18EB#code), an additional utility was enabled for TORN aside from governance. Through the deployment of the relayer registry, which acts as a official store of active relayers. Which grants the access to referencing on the frontend through querying the registry contract. Relayers pay a percent of withdrawal fees to governance to have an active registration in the registry. The fee mechanisim functions by relayers locking a listing amount (currently `300 TORN`) and everytime a withdrawal is processed the registry fee (currently `0.3%` of the relayer's arbitary fee) is deducted from their locked balance. This fee is then distributed proportionally to tokenholders locked into the governance contract. Relayers must keep a locked balance greater than the minimum balance (currently `40 TORN`) to be marked as an active relayer and be recommended on the frontend. @@ -17,13 +17,13 @@ As mentioned above, the process to lock TORN tokens has remained unchanged. * Once the approval is confirmed, you can chose the amount of token to lock, then click on **`Lock`** * All you have to do after that is to confirm the transaction in your wallet & wait for the confirmation to come through -![](/.gitbook/assets/c05e5a1813edad280544b627b24002dc8d5adcf2.png) +![](../../.gitbook/assets/c05e5a1813edad280544b627b24002dc8d5adcf2.png) ### How to claim your staking reward? To do that click the **`Voting`** button on the navigation bar at the top of the page to be directed to the governance route of the application. As soon as you connect your wallet, you will be able to see your staking reward at the top if you have a balance. -![](/.gitbook/assets/head.png) +![](../../.gitbook/assets/head.png) * Click **`Manage`** -> **`Claim`** tab -> **`Claim`** _button._ diff --git a/tornado-cash-classic/connect-wallet.md b/tornado-cash-classic/connect-wallet.md index 5059d07..e917780 100644 --- a/tornado-cash-classic/connect-wallet.md +++ b/tornado-cash-classic/connect-wallet.md @@ -1,8 +1,6 @@ # How to connect your wallet -## Connect your wallet - -To connect your wallet to Tornado Cash, you have two options: You can either click on **Connect** on the main page of Tornado Cash, _directly after selecting your deposit amount._ +To connect your wallet to Tornado Cash, you have two options: You can either click on **Connect** on the main page of Tornado Cash _directly after selecting your deposit amount._ ![Connecting via the home page](.gitbook/assets/which.gif) @@ -10,8 +8,6 @@ You can also click on **Settings** on the top right of the page then click on ** ![Connecting via settings](<.gitbook/assets/Screen Recording 2022-05-16 at 4.07.52 PM.gif>) -We recommend you to use Metamask since it is currently the most reliable and stable wallet. - ## **Metamask** 1. Once you have the extension installed, click on **Connect**. @@ -55,7 +51,6 @@ If you wish, you can navigate online through the **mobile** application. To do s ![Browsing within Trustwallet](<.gitbook/assets/trustbrowser.gif>) - ### **ImToken** To connect your wallet, you will need your phone. If you have a ImToken wallet, you should open the application then follow the next steps: @@ -67,7 +62,7 @@ To connect your wallet, you will need your phone. If you have a ImToken wallet, ![Connecting ImToken](<.gitbook/assets/imtoken.gif>) -### **Argent wallet** +### **Argent** To connect your wallet, you will need your phone. If you have a Argent wallet, you should open the application then follow the next steps: @@ -78,10 +73,3 @@ To connect your wallet, you will need your phone. If you have a Argent wallet, y ![Connecting Argent](<.gitbook/assets/argen.gif>) -### **Other wallets** - -For others wallets, steps might be really similar: **WalletConnect's QR code needs to be scanned in order to link your wallet to Tornado Cash.** Make sure to always check for a scanning icon (often located on the landing page or the settings section on your wallet's application). - - - -Written by [Haneul](https://torn.community/u/haneul/) diff --git a/tornado-cash-classic/deposit-withdraw.md b/tornado-cash-classic/deposit-withdraw.md index 40dbf7b..c2a501a 100644 --- a/tornado-cash-classic/deposit-withdraw.md +++ b/tornado-cash-classic/deposit-withdraw.md @@ -1,12 +1,12 @@ # Deposit and withdraw -This tutorial is a step-by-step explanation of how to deposit & withdraw your funds. If you want to understand how the internal system of Tornado.cash works, please refer to [this tutorial](../general/how-does-tornado.cash-work.md). +This tutorial is a step-by-step explanation of how to deposit and withdraw. If you want to understand how the internal system of Tornado.cash works, please refer to [this tutorial](/general/how-does-it-work.md). ## **Deposit** ### Choose a chain -Tornado Cash Classic is available on several blockchains, so you will have to choose among 4 chains: +Tornado Cash Classic is available on several blockchains, so you will have to choose among the mulitple options: ![](/.gitbook/assets/azpoj.gif) @@ -28,29 +28,27 @@ Click on `Deposit` and store your note on a secure place before clicking on `I b ### Be patient -As explained [here](/general/guides/opsec.md#be-patient), the longer you wait, the greater your anonymity set will be. - -Congrats ! You did it. Now your tokens are on the Tornado.Cash pool. +As explained in [this guide](/general/guides/opsec.md), the longer you wait, the greater your anonymity will be. ## Withdraw ### Choose a chain -Tornado Cash Classic is available on several blockchains, so you will have to choose among 4 chains: +Tornado Cash Classic is available on several blockchains, so you will have to choose among the mulitple options: -![](/.gitbook/assets/enregistrement-de-le-cran-2021-08-25-a-16.15.15-1-.gif) +![](../.gitbook/assets/enregistrement-de-le-cran-2021-08-25-a-16.15.15-1-.gif) ### Paste your note -Use your deposit note by pasting it in the corresponding box. Click on `Withdraw` and wait for the zk-Snark proof to be generated. +Use your deposit note by pasting it in the corresponding box. Click on `Withdraw` and wait for the zkSNARK proof to be generated. ### Confirm the withdrawal -![](/.gitbook/assets/abdaaaa.png) +![](../.gitbook/assets/abdaaaa.png) ## Note account -A Note Account allows to **store encrypted on-chain backups** of private notes. This makes safe storage of funds hassle- and stress-free with the security of the Ethereum blockchain backing each note. +A Note Account allows to **store encrypted on-chain backups** of private notes. This makes safe storage of funds hassle free, **although coming at the risk of deanonymisation if your address is ever breached**. ![](https://i.imgur.com/1MF067o.png) @@ -62,5 +60,5 @@ A Note Account allows to **store encrypted on-chain backups** of private notes. ![](https://i.imgur.com/AqkPo5o.png) -**Never share your note account key.** +**Never share your note account key with anyone or risk loss of funds.** diff --git a/tornado-cash-nova/anonymity-tips.md b/tornado-cash-nova/anonymity-tips.md deleted file mode 100644 index 1196193..0000000 --- a/tornado-cash-nova/anonymity-tips.md +++ /dev/null @@ -1,43 +0,0 @@ -# More anonymity tips - -For this section, we refer you to the [tips-to-remain-anonymous.md](../general/guides/opsec.md "mention") tutorial as a first step. All points mentioned in this tutorial still apply to Tornado Cash Nova. - -As a quick reminder, these tips include: - -* Using of a VPN, -* Not sharing the shielded key or the access to this shielded address -* If downloaded, keeping this shielded key in a safe place, -* Deleting data after use, -* Avoiding the use of the same API token for all transactions, -* Being patient between the moment of deposit & withdrawal, -* Using multiple addresses for withdrawal. - -However, with its new features, Tornado Cash Nova requires further precautions to maintain anonymity. - -## Use of relayers - -Gas fees payments are necessary for transactions. For shielded transfers & withdrawals, two payment methods are available to provide ETH for gas fee. You can either **connect your wallet or use a relayer**. - -Going through your wallet for this gas fee can compromise the anonymity of the transaction if used ETH are linkable to your identity. Therefore, **it is recommended to use a Relayer to preserve privacy** - -![Tips1](https://i.imgur.com/PsZ89Ym.png) - -## Custom withdrawal amounts - -The customized amounts feature offers more flexibility & freedom of usage. However, it can compromise your privacy if used carelessly. - -### Choosing predefined amounts for withdrawals - -![Tips2](https://i.imgur.com/dKYvNQT.png) - -Choosing one of the four predefined amounts is strongly recommended as it will allow your withdrawal to blend with the crowd and remain anonymous. - -You still have the freedom to `Set custom` to withdraw a customized amount of you choice. However, depending on the chosen amount, a connection might be deduced between your initial fund transaction and your withdrawal if: - -* the initially funded amount & the withdrawn amount are exactly the same, -* the funded & withdrawn amounts can easily be linked through a sum. - -For instance, a deposit of 0.42 ETH can be linked to a withdrawal of exactly 0.42 ETH or two times 0.21 ETH, which might compromise anonymity. However, with a withdrawal of 0.391 ETH, privacy is better preserved as there is no obvious link between the 0.42 & 0.391 amounts. - -The custom option should only be chosen with full knowledge of these facts and in complete confidence in your actions. - diff --git a/tornado-cash-nova/connect-wallet.md b/tornado-cash-nova/connect-wallet.md index efee3fd..615a667 100644 --- a/tornado-cash-nova/connect-wallet.md +++ b/tornado-cash-nova/connect-wallet.md @@ -93,7 +93,6 @@ Once you are logged in with your address & your account is set up, you can downl ![](https://i.imgur.com/F2Scf8w.png) -To obtain full privacy, the same good practices that were recommended for traditional Tornado Cash pools are still required. _You can find guidelines to maintain privacy in the sections;_ [_Tips to remain anonymous_](../general/guides/opsec.md) _and_ [_Anonymity tips_](anonymity-tips.md)_._ +To obtain full privacy, the same good practices that were recommended for traditional Tornado Cash pools are still required. You can find a guide to maintain privacy at [_Tips to remain anonymous_](../general/guides/opsec.md)_ -\_\_ diff --git a/tornado-cash-nova/shielded-transfers.md b/tornado-cash-nova/shielded-transfers.md index e7728e8..cff25bc 100644 --- a/tornado-cash-nova/shielded-transfers.md +++ b/tornado-cash-nova/shielded-transfers.md @@ -2,13 +2,11 @@ One of the specificity of Tornado Cash Nova is the introduction of shielded transfers. It allows shielded transactions of deposited tokens while staying within the pool. -So far, to transfer the custody of deposited funds, tokens needed to be withdrawn first. With Nova, you will be able to transfer a chosen amount of your shielded balance (not necessarily all of it) to another address without needing to withdraw them from the pool. +In Tornado Cash Classic in order to transfer the custody of deposited funds, tokens needed to be withdrawn first. With Nova, you will be able to transfer a chosen amount of your shielded balance (not necessarily all of it) to another address without needing to withdraw them from the pool. ![](https://i.imgur.com/cf99tOn.gif) These shielded transfers can be made to any address of your choice, as long as this address is shielded (i.e. already registered to Tornado Cash Nova pool). -As a reminder, a shielded address is registered either through the `Set up account` action or alongside an initial deposit from a wallet address. - -We advise you to double-check the shielded address to which you transfer tokens as this action is irreversible. +As a reminder, a shielded address is registered either through the `Set up account` action or alongside an initial deposit from a wallet address. We advise you to double-check the shielded address to which you transfer tokens as this action is irreversible.