1
0
mirror of https://github.com/tornadocash/docs synced 2024-02-02 15:04:08 +01:00

GitBook: [#111] edited sections "Intro to TC" and "How to become a Relayer"

This commit is contained in:
bt11ba 2022-03-12 09:34:02 +00:00 committed by gitbook-bot
parent 112931cb44
commit 51c79c51b8
No known key found for this signature in database
GPG Key ID: 07D2180C7B12D0FF
6 changed files with 49 additions and 50 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

View File

@ -1,28 +1,28 @@
# Introduction of Tornado Cash # Introduction to Tornado Cash
![](.gitbook/assets/image.png) ![](.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. As a decentralized protocol, Tornado.Cash smart contracts have been implemented within the Ethereum blockchain, making them immutable. They can neither be changed nor tampered with. Therefore, nobody - including the original developers - can modify or shut them down. All governance and mining smart contracts are deployed by the community in a decentralized manner.
As a non-custodial protocol, users keep custody of their cryptocurrencies while operating Tornado.Cash. Indeed, at each deposit, they are provided with the private key enabling the access to the deposited funds, which gives users complete control over their assets. As a non-custodial protocol, users keep custody of their cryptocurrencies while operating Tornado.Cash. This means that at each deposit, they are provided with the private key enabling the access to the deposited funds, which gives users complete control over their assets.
## How privacy is achieved? ## How is privacy achieved?
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. 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 enables 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 maximize privacy, several steps are recommended, such as the use of a relayer for gas payments to withdraw funds from an address with no pre-existing balance.
More details are available in _Behind the scenes:_ [_How does Tornado.Cash work?_](general/how-does-tornado.cash-work.md) & [Tips to remain anonymous](general/tips-to-remain-anonymous.md). More details are available in _Behind the scenes:_ [_How does Tornado.Cash work?_](general/how-does-tornado.cash-work.md) & [Tips to remain anonymous](general/tips-to-remain-anonymous.md).
## Where is Tornado.Cash at? ## Where does Tornado.cash operate?
Since its inception in 2019, Tornado Cash has been operating **on the Ethereum blockchain**. The protocol has been offering diversified fixed amount pools for six tokens (ETH, DAI, cDAI, USDC, USDT & WBTC) handled by the Ethereum blockchain. Since its inception in 2019, Tornado Cash has been operating **on the Ethereum blockchain**. The protocol has been offering diversified fixed amount pools for six tokens (ETH, DAI, cDAI, USDC, USDT & WBTC) handled by the Ethereum blockchain.
From June 2021, in addition to the Ethereum blockchain, Tornado Cash smart contracts **have also been deployed on other side-chains & blockchains**. Theses deployments enabled the tool to either support new tokens or benefit from Layer-2 advantages such as faster and cheaper transactions. Since June 2021, in addition to the Ethereum blockchain, Tornado Cash smart contracts **have also been deployed on other side-chains & blockchains**. These deployments enabled the tool to either support new tokens or benefit from Layer-2 advantages, such as faster and cheaper transactions.
Therefore, as of today, Tornado Cash is currently operating on: As of today, Tornado Cash is operating on:
* **Ethereum Blockchain** : **ETH** (Ethereum), **DAI** (Dai), **cDAI** (Compound Dai), **USDC** (USD Coin), **USDT** (Tether) & **WBTC** (Wrapped Bitcoin), * **Ethereum Blockchain** : **ETH** (Ethereum), **DAI** (Dai), **cDAI** (Compound Dai), **USDC** (USD Coin), **USDT** (Tether) & **WBTC** (Wrapped Bitcoin),
* **Binance Smart Chain**: **BNB** (Binance Coin), * **Binance Smart Chain**: **BNB** (Binance Coin),
@ -36,15 +36,15 @@ Therefore, as of today, Tornado Cash is currently operating on:
Until December 2021, the protocol included an anonymity mining system for some of these tokens, allowing its users to earn a governance token (**TORN**). Users were able to ultimately earn TORN on the Blockchain network by depositing in the ETH, DAI, cDAI & WBTC pools. Until December 2021, the protocol included an anonymity mining system for some of these tokens, allowing its users to earn a governance token (**TORN**). Users were able to ultimately earn TORN on the Blockchain network by depositing in the ETH, DAI, cDAI & WBTC pools.
_More information about_ [_Anonymity mining_](tornado-cash-classic/anonymity-mining.md) _&_ [_Tornado.Cash token_](general/torn.md) _are available._ _More information on_ [_Anonymity mining_](tornado-cash-classic/anonymity-mining.md) _&_ [_Tornado.Cash token_](general/torn.md) is _available._
**Thanks to the TORN token, Tornado Cash users can 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 communitys control through this governance. **Thanks to the TORN token, Tornado Cash users can 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 communitys control through this governance.
All pools mentioned above can be accessed on [tornadocash.eth.link](https://tornadocash.eth.link). They operates **under the principle of fixed amount deposits & withdrawals**. It means that each token has 2 to 4 different pools, allowing transactions of only 2 to 4 different fixed amounts _(e.g. ETH has four different pools, one for each of these amounts: 0.1, 1, 10 & 100 ETH)_. All pools mentioned above can be accessed on [tornadocash.eth.link](https://tornadocash.eth.link). They operate **under the principle of fixed-amount deposits & withdrawals**. It means that each token has 2 to 4 different pools, allowing transactions of only 2 to 4 different fixed amounts _(e.g. ETH has four different pools, one for each of these amounts: 0.1, 1, 10 & 100 ETH)_.
### Tornado Cash Nova ### Tornado Cash Nova
With the [**release of Tornado Cash Nova** (beta version) on December 2021](https://tornado-cash.medium.com/tornado-cash-introduces-arbitrary-amounts-shielded-transfers-8df92d93c37c), an **upgraded pool with unique new features** has been added to the protocol. Users are no longer constrained by fixed amount transactions. With the addition of Tornado Cash Nova, they can benefit from the use of **an arbitrary amount pool & shielded transfers**. With the [**release of Tornado Cash Nova** (beta version) on December 2021](https://tornado-cash.medium.com/tornado-cash-introduces-arbitrary-amounts-shielded-transfers-8df92d93c37c), an **upgraded pool with unique new features** has been added to the protocol. Users are no longer constrained by fixed-amount transactions. With the addition of Tornado Cash Nova, they can benefit from the use of **an arbitrary amount pool & shielded transfers**.
Tornado Cash Nova operates on the Gnosis Chain (former xDai Chain) as a Layer2 to optimize speed and cost. It allows **deposits and withdrawals of completely customized amounts in ETH**. This pool also enables shielded transactions where users can **transfer the custody of their token while remaining in the pool**. Tornado Cash Nova operates on the Gnosis Chain (former xDai Chain) as a Layer2 to optimize speed and cost. It allows **deposits and withdrawals of completely customized amounts in ETH**. This pool also enables shielded transactions where users can **transfer the custody of their token while remaining in the pool**.
@ -52,10 +52,10 @@ Tornado Cash Nova (beta version) can be accessed on [nova.tornadocash.eth.link](
## How does Tornado.Cash run? ## 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. 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 the 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 & accounts [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 deletion. Indeed, the interface will work as long as at least one user is hosting it.
_Written & updated by_ [_@ayefda_](https://torn.community/u/ayefda) _Written & updated by_ [_@ayefda_](https://torn.community/u/ayefda)

View File

@ -2,7 +2,7 @@
## General ## General
* [Introduction of Tornado Cash](README.md) * [Introduction to Tornado Cash](README.md)
* [How Does Tornado Cash Work?](general/how-does-tornado.cash-work.md) * [How Does Tornado Cash Work?](general/how-does-tornado.cash-work.md)
* [Tips to Remain Anonymous](general/tips-to-remain-anonymous.md) * [Tips to Remain Anonymous](general/tips-to-remain-anonymous.md)
* [How to use Tornado Cash with TOR](general/how-to-use-tornado-cash-with-tor.md) * [How to use Tornado Cash with TOR](general/how-to-use-tornado-cash-with-tor.md)

View File

@ -38,7 +38,7 @@ 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. 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) ![](<../.gitbook/assets/c05e5a1813edad280544b627b24002dc8d5adcf2 (1).png>)
Before the vote, the next crucial step is to review the proposal.\ 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. 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.
@ -77,7 +77,7 @@ You first need to lock your tokens in the governance contract. Click **`Manage`*
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. 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 (1).png>) ![](../.gitbook/assets/c05e5a1813edad280544b627b24002dc8d5adcf2.png)
The last step, is to make the actual delegation. Go again to [https://tornadocash.eth.link/governance](https://tornadocash.eth.link/governance) The last step, is to make the actual delegation. Go again to [https://tornadocash.eth.link/governance](https://tornadocash.eth.link/governance)

View File

@ -3,55 +3,56 @@
Following the execution of [Tornado Cash 10th governance proposal](https://tornadocash.eth.link/governance/10), anyone can become a relayer for Tornado Cash users. Following the execution of [Tornado Cash 10th governance proposal](https://tornadocash.eth.link/governance/10), anyone can become a relayer for Tornado Cash users.
{% hint style="success" %} {% hint style="success" %}
The only condition to be included on the Tornado Cash UI is to hold a min. of `300 TORN`. This minimum stake can be changed by a governance vote at all time. The only condition to be included on the Tornado Cash UI is to hold a min. of `300 TORN`. This minimum stake can be changed by a governance vote at any time.
{% endhint %} {% endhint %}
Relayers form an essential & necessary part of the Tornado Cash ecosystem. Their use guarantees privacy as they solve the infamous “fee payment dilemma” : how to pay fees for token withdrawals from a pool while maintaining anonymity? Relayers form an essential & necessary part of the Tornado Cash ecosystem. Their use guarantees privacy as they solve the infamous “fee payment dilemma” : how to pay fees for token withdrawals from a pool while maintaining anonymity?
Therefore, relayers act as a third parties and take care of the whole withdrawal. They pay for transaction fees by deducing them directly from the transferred amount. They also take an additional fee for their services. Therefore, relayers act as third parties and manage the entire withdrawal. They pay for transaction fees by deducting them directly from the transferred amount. They also charge an additional fee for their services.
Since [Relayer Registry proposal](https://tornadocash.eth.link/governance/10), the protocol will collect a fee directly from the relayers staked balance through the `StakingReward` contract for each withdrawal. This fee percentage may vary from one pool to the other and is also subject to change through on-chain governance. Since the implementation of the [Relayer Registry proposal](https://tornadocash.eth.link/governance/10), the protocol collects a fee directly from the relayers staked balance through the `StakingReward` contract for each withdrawal. This fee percentage may vary from one pool to another and is also subject to change through on-chain governance.
Its fixed at **** `0.3%` for now. Some pools remain without fees, either because the instance is too small to assign a fee (0.1 ETH, 100 DAI/USDT, 1000 DAI/USDT), or because there is not enough liquidity on Uni v3 (all cDAI instances). Currently, it is fixed at `0.3%` . Some pools remain without fees, either because the instance is too small to assign a fee (0.1 ETH, 100 DAI/USDT, 1000 DAI/USDT), or because there is not enough liquidity on Uni v3 (all cDAI instances).
## How to Become a Relayer ? ## How to Become a Relayer?
Anyone can become a relayer for the protocol in **6 simple steps** through a [Relayer Registry User Interface (UI)](https://relayers-network.tornadocash.eth.limo/). Anyone can become a relayer for the protocol in **6 simple steps** through a [Relayer Registry User Interface (UI)](https://relayers-network.tornadocash.eth.limo).
You will find below everything your need to join our relayers' club & be listed on Tornado Cash decentralized relayer registry. Below you will find everything your need to join our relayers' club & get listed on Tornado Cash decentralized relayer registry.
### 1. Warning: Be Aware & Accept Potential Risks ### 1. Warning: Understand & Accept Potential Risks
Before you commit to sharing part of your journey with Tornado Cash users as a relayer, you need to be aware & accept all potential risks of being a relayer for the protocol. Before you commit to sharing part of your journey with Tornado Cash users as a relayer, you need to understand & accept all potential risks of being a relayer for the protocol.
#### How a Relayer is chosen by user interface #### How a Relayer is chosen by user interface
The formula that is used to preset a relayer is following: The formula for designating a relayer is as follows:
* get all registered relayers from the Relayer Registy smart contract
* sort all Relayers by cheapest fee * The list of all registered relayers is retrieved from the Relayer Registry smart contract.
* select 30% from cheapest Relayers * The relayers are then sorted by cheapest fee.
* randomly choose a relayer weighted by the TORN stake in Registry * A pool of the cheapest 30% of relayers is selected.
* From this pool the relayer is randomly picked, weighted by the TORN stake in Registry.
### 2. Set up Relayer ### 2. Set up Relayer
The first concrete step is to run Tornado Cash Relayer software for Ethereum Mainnet on your computer. All steps are explained in the protocol's github. To complete this task successfully, you will have to carefully follow [these instructions](https://github.com/tornadocash/tornado-relayer#deploy-with-docker-compose). The first concrete step is to run the Tornado Cash Relayer software for Ethereum Mainnet on your computer. All steps are outlined in the protocol's github. To complete this task successfully, you will have to carefully follow [these instructions](https://github.com/tornadocash/tornado-relayer#deploy-with-docker-compose).
{% embed url="https://github.com/tornadocash/tornado-relayer#deploy-with-docker-compose" %} {% embed url="https://github.com/tornadocash/tornado-relayer#deploy-with-docker-compose" %}
Once you are done, you will need to insert your url in the input box. Once completed, you will need to insert your url in the input box.
![](../.gitbook/assets/2.png) ![](../.gitbook/assets/2.png)
{% hint style="warning" %} {% hint style="warning" %}
It is strongly recommended that you use your own RPC nodes. Instructions on how to run full nodes can be found [here](https://github.com/feshchenkod/rpc-nodes). It is strongly recommended that you use your own RPC nodes. Instructions on how to run full nodes can be found [here](https://github.com/feshchenkod/rpc-nodes).
{% endhint %} {% endhint %}
### 3. Set Up ENS Subdomain ### 3. Set Up ENS Subdomain
The next step consists in: The next steps entail:
* Creating an ENS domain for your relayer, * Creating an ENS domain for your relayer.
* Setting up its mainnet subdomain, * Setting up its mainnet subdomain.
* Adding a TXT record with the Relayer URL to the mainnet subdomain according to this specific format: * Adding a TXT record with the Relayer URL to the mainnet subdomain according to this specific format:
#### **Ethereum Relayers (Mandatory)** #### **Ethereum Relayers (Mandatory)**
@ -63,7 +64,7 @@ The next step consists in:
#### **Sidechains Relayers (Optional)** #### **Sidechains Relayers (Optional)**
You also have the possibility to add subdomains with their corresponding TXT records to support other chains than Ethereum. Sidechains relayers use a different version of the Relayer software. You have all required instructions to do so [here](https://github.com/tornadocash/tornado-relayer/blob/light/README.md). You also have the option to add subdomains with their corresponding TXT records to support chains other than Ethereum. Sidechains relayers use a different version of the Relayer software. The complete requirements with instructions are found [here](https://github.com/tornadocash/tornado-relayer/blob/light/README.md).
| TXT record | | TXT record |
| ------------------------- | | ------------------------- |
@ -90,19 +91,19 @@ Workers are the addresses that will allow your relayer to send ZK-proofs to user
To ensure an extra level of security, we advise you to set up more than one worker. To ensure an extra level of security, we advise you to set up more than one worker.
Only the mainnet requires you to register workers. All other networks do not require the usage of registered workers. Only the mainnet requires you to register workers. All other networks do not require the use of registered workers.
![](<../.gitbook/assets/4 (1).png>) ![](<../.gitbook/assets/4 (1).png>)
### 5. Stake ### 5. Stake
With the implementation of a decentralized relayer registry, a staking condition has been introduced to become listed on Tornado Cash UI. Indeed, **staking TORN is now necessary to be added to the recommended list of relayers.** With the implementation of a decentralized relayer registry, a staking condition has been introduced as a requirement to become listed on Tornado Cash UI. Keep in mind **staking TORN is now necessary to be added to the recommended list of relayers.**
The minimum stacked amount is currently set by Tornado Cash governance at **`300 TORN`**. This threshold can be changed by Tornado Cash governance at all time. The minimum staked amount is currently set by Tornado Cash governance at **`300 TORN`**. This threshold can be changed by Tornado Cash governance at any time.
When a relayer is used on a Tornado Cash pool, a small amount of TORN is automatically collected from this staked balance by the `StakingReward` contract. This element is essential to keep in mind as relayers will need to maintain their stakes balance above `300 TORN` at all time. When a relayer is used in the Tornado Cash pool, a small amount of TORN is automatically collected from this staked balance by the `StakingReward` contract. This element is essential to keep in mind as relayers will need to maintain their stakes balance above `300 TORN` at all times.
These collected fees are, afterwards, distributed among DAO members that have their TORN tokens locked. TORN are usually locked to participate in on-chain governance (suggesting & voting for proposals). You can find more information both on this [forum post](https://torn.community/t/proposal-relayer-registry-setting-parameters-after-audit/2134) & in the [Staking TORN documentation page](staking.md). The collected fees are subsequently distributed among DAO members with lockedTORN tokens locked. TORN are usually locked to participate in on-chain governance (submitting & voting on proposals). You can find more information both on this [forum post](https://torn.community/t/proposal-relayer-registry-setting-parameters-after-audit/2134) & in the [Staking TORN documentation page](staking.md).
{% hint style="warning" %} {% hint style="warning" %}
Your staked TORN amount is not claimable, and it is non-refundable. Your staked TORN amount is not claimable, and it is non-refundable.
@ -110,14 +111,12 @@ Your staked TORN amount is not claimable, and it is non-refundable.
![](../.gitbook/assets/5.png) ![](../.gitbook/assets/5.png)
### 6. Summary: Last Verification & Registration ### 6. Summary: Final Verification & Registration
The last, but not the least, we advise you to **double-check all information** present on the Summary before registering. Last but not least, we advise you to **double-check all information** displayed in the Summary before registering.
![](../.gitbook/assets/6.png) ![](../.gitbook/assets/6.png)
_Welcome to the relayer team! Thanks to you, privacy can be better respected_ 💚 _Welcome to the relayer team! Thanks to you, privacy can be better respected_ 💚
_Written by_ [_**@bt11ba**_](https://torn.community/u/bt11ba/) _\*\*\*\* &_ [_**@ayefda**_](https://torn.community/u/ayefda)\*\*\*\*
_Written by_ [_**@bt11ba**_](https://torn.community/u/bt11ba/) _**** &_ [_**@ayefda**_](https://torn.community/u/ayefda)****

View File

@ -21,7 +21,7 @@ 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`** * 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 * 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 (1).png>)
### How to Claim Your Staking Reward ? ### How to Claim Your Staking Reward ?