Fix grammatical errors, add notes and fix images & gifs resolve paths
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
0
book/.gitbook/assets/1-gmc0jw8zr5xfvrk5zyqmya.png → book/.gitbook/assets/TORN-token-distribution.png
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 204 KiB After Width: | Height: | Size: 204 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
0
book/.gitbook/assets/i6qtr0f.png → book/.gitbook/assets/anonymity-mining-claim-ap-reward-warning.png
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 212 KiB After Width: | Height: | Size: 212 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 91 KiB |
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 73 KiB |
Before Width: | Height: | Size: 111 KiB After Width: | Height: | Size: 111 KiB |
Before Width: | Height: | Size: 49 KiB |
Before Width: | Height: | Size: 156 KiB After Width: | Height: | Size: 156 KiB |
Before Width: | Height: | Size: 403 KiB After Width: | Height: | Size: 403 KiB |
Before Width: | Height: | Size: 284 KiB After Width: | Height: | Size: 284 KiB |
Before Width: | Height: | Size: 708 KiB After Width: | Height: | Size: 708 KiB |
Before Width: | Height: | Size: 180 KiB After Width: | Height: | Size: 180 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1.7 MiB |
Before Width: | Height: | Size: 143 KiB After Width: | Height: | Size: 143 KiB |
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 121 KiB |
Before Width: | Height: | Size: 180 KiB After Width: | Height: | Size: 180 KiB |
Before Width: | Height: | Size: 799 KiB After Width: | Height: | Size: 799 KiB |
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 92 KiB |
Before Width: | Height: | Size: 141 KiB After Width: | Height: | Size: 141 KiB |
Before Width: | Height: | Size: 353 KiB After Width: | Height: | Size: 353 KiB |
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 120 KiB |
Before Width: | Height: | Size: 197 KiB After Width: | Height: | Size: 197 KiB |
@ -1,6 +1,6 @@
|
||||
# Introduction to Tornado Cash
|
||||
|
||||
![](/.gitbook/assets/image.png)
|
||||
![](/.gitbook/assets/tornado-banner.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.*
|
||||
@ -52,15 +52,15 @@ Anonymity pools operate **under the principle of fixed-amount deposits and withd
|
||||
|
||||
### Tornado Cash Nova
|
||||
|
||||
With the release of a [**new __experimental__ version of Tornado Cash; Nova**](https://tornado-cash.medium.com/tornado-cash-introduces-arbitrary-amounts-shielded-transfers-8df92d93c37c), provides an **upgraded expierence for anonymity pools**. Users are no longer constrained by fixed-amount transactions, possible through the UXTO model alllowing **arbitrary (customized) amounts and shielded internal transfers**.
|
||||
With the release of a [**new __experimental__ version of Tornado Cash; Nova**](https://tornado-cash.medium.com/tornado-cash-introduces-arbitrary-amounts-shielded-transfers-8df92d93c37c), provides an **upgraded experience for anonymity pools**. Users are no longer constrained by fixed-amount transactions, possible through the UXTO model allowing **arbitrary (customized) amounts and shielded internal transfers**.
|
||||
|
||||
Tornado Cash Nova is deployed on Gnosis Chain (formerly xDAI) with the original hopes to improve speed and cost by bridging from Ethereum mainnet using the AMB Omnibridge.
|
||||
Tornado Cash Nova is deployed on Gnosis Chain (formerly xDAI) with the original hopes to improve speed and cost by bridging from Ethereum Mainnet using the AMB Omnibridge.
|
||||
|
||||
__Please note Tornado Cash Nova has a low relayer count, is in an experimental state and regularly faces issues with Omnibridge because of bridge limits and validator censorship__.
|
||||
|
||||
## How does Tornado Cash function?
|
||||
|
||||
Tornado Cash is represented by it's community, collaboration is facilitated through the governance contract or Decentralized Autonomous Organisation (DAO). **No singular entity or person controls Tornado Cash.**
|
||||
Tornado Cash is represented by it's community, collaboration is facilitated through the governance contract or Decentralized Autonomous Organization (DAO). **No singular entity or person controls Tornado Cash.**
|
||||
|
||||
All protocol related code is open-source and is published to two independent git instances:
|
||||
|
||||
|
@ -32,13 +32,13 @@ 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)
|
||||
![](../../.gitbook/assets/how-to-lock(stake).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 malicious** - 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.
|
||||
Individuals should take time to review the matters they are voting on, as given the open nature of the organization - **the code execution could be malicious** - 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/check-proposal-contract-address.png)
|
||||
|
||||
Look for the contract address on Etherscan and make sure that the source code is verified before voting.
|
||||
|
||||
@ -56,13 +56,13 @@ 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.
|
||||
|
||||
![](/.gitbook/assets/c05e5a1813edad280544b627b24002dc8d5adcf2.png)
|
||||
![](../../.gitbook/assets/how-to-lock(stake).png)
|
||||
|
||||
To delegate, go to the `Voting` route of the application. Look to the top of the page under the navigation bar and click `Manage` -> `Delegate`.
|
||||
|
||||
Fill-in the address to which you want to delegate and click **`Delegate`**. Approve the transaction in your wallet and wait for confirmation.
|
||||
|
||||
![](/.gitbook/assets/43c05d176d7f75a336af7a865565c9b23786b98c.png)
|
||||
![](../../.gitbook/assets/how-to-delegate.png)
|
||||
|
||||
You can undelegate at anytime, to undelegate simply use the `Undelegate` option through `Manage` -> `Undelegate`.
|
||||
|
||||
|
@ -4,19 +4,19 @@ _If you have privacy concerns about using this extension in this tutorial, you [
|
||||
|
||||
### Requirements
|
||||
|
||||
* Desktop enviroment (Windows, Mac or Linux)
|
||||
* Desktop environment (Windows, Mac or Linux)
|
||||
* Google Chrome browser
|
||||
|
||||
### Step #1: Download the static source
|
||||
For this part you'll need to be able to open .zip files, most operating systems allow this. Head to either the Nova or Classic release page on the community git to download the static files.
|
||||
|
||||
Nova: https://git.tornado.ws/tornadocash/nova-ui-minified/releases
|
||||
Nova: https://git.tornado.ws/tornadocash/nova-ui/releases
|
||||
|
||||
Classic: https://git.tornado.ws/tornadocash/classic-ui/releases
|
||||
|
||||
Click the version named zip file download option to download the zip file, as seen below. It should download locally to your machine.
|
||||
|
||||
![Screenshot 2022-09-06 at 11.15.52|690x407](/.gitbook/assets/eHuzorT5lslrOoxKKvRPxLtAHy7.png)
|
||||
![Screenshot 2022-09-06 at 11.15.52|690x407](../../.gitbook/assets/download-UI-static-source.png)
|
||||
|
||||
### Step #2: Open and unpack the .zip file
|
||||
As mentioned before most operating systems support unpacking .zip files, so open the file that was previously downloaded in the last step. It should create a folder in the same location with the resulting files, take note of the folder location for the next step.
|
||||
@ -24,14 +24,14 @@ As mentioned before most operating systems support unpacking .zip files, so open
|
||||
### Step #3: Install the Web Server extension
|
||||
Open up Google Chrome and navigate to the [Web Server extension page](https://chrome.google.com/webstore/detail/web-server-for-chrome/ofhbbkphhbklhfoeikjpcbhemlocgigb/related?hl=en), click the button highlighted in the image to install. Once installed, click the same button which should now say ¨Launch app¨ to launch the extension.
|
||||
|
||||
![Screenshot 2022-09-06 at 11.43.59|690x407](../../.gitbook/assets/yIT7YcJf1Kc9T7rCcdZW3bZd0mx.png)
|
||||
![Screenshot 2022-09-06 at 11.43.59|690x407](../../.gitbook/assets/install-web-server-browser-extension.png)
|
||||
|
||||
### Step #4: Configure the Web Server extension
|
||||
If everything is going correctly you should see a similar screen, firstly click the "Select folder" button (1) and select the folder that was created after the .zip file was opened. It should be in the same location where you downloaded it to. Then once it has been loaded click the link underneath (2) to view the hosted content.
|
||||
|
||||
![Screenshot 2022-09-06 at 11.29.45|690x407](../../.gitbook/assets/4R1HHWy8j2kTwjugeFCfj2NzatB.png)
|
||||
![Screenshot 2022-09-06 at 11.29.45|690x407](../../.gitbook/assets/configure-web-server-browser-extension.png)
|
||||
|
||||
### Step #5: Achieve privacy
|
||||
If you can see the frontend interface after clicking the link in the extension then you've successfully done everything correctly and you can use the protocol like normal.
|
||||
|
||||
![Screenshot 2022-09-06 at 11.40.59|690x407](../../.gitbook/assets/o04px38SoXt0G5IVTxr5rEeI588.png)
|
||||
![Screenshot 2022-09-06 at 11.40.59|690x407](../../.gitbook/assets/local-classic-ui-running.png)
|
@ -24,7 +24,7 @@ Using onion routing, you can singificantly mask your internet traffic at the cos
|
||||
|
||||
### Store notes with confidentiality
|
||||
|
||||
Your note provides a record of your original transaction. Anyone who has it can withdraw the funds deposited, but also know the details regarding the depositing address therefore allowing the ability to deanonymise the transaction.
|
||||
Your note provides a record of your original transaction. Anyone who has it can withdraw the funds deposited, but also know the details regarding the depositing address therefore allowing the ability to deanonymize the transaction.
|
||||
|
||||
### Delete history, cache and cookies
|
||||
|
||||
@ -32,11 +32,11 @@ Browser history and caches can provide a massive amount of data regarding specif
|
||||
|
||||
### Wallet
|
||||
|
||||
Metamask one of the most popular wallets - now by default, **logs IP addresses when a wallet is generated or makes a transaction** please excercise caution if you are using this choice as a wallet and do not take methods to migitate the logging. It would effectively void any anonymity acheived on-chain, if your actual IP address is exposed.
|
||||
Metamask one of the most popular wallets - now by default, **logs IP addresses when a wallet is generated or makes a transaction** please exercise caution if you are using this choice as a wallet and do not take methods to migitate the logging. It would effectively void any anonymity achieved on-chain, if your actual IP address is exposed.
|
||||
|
||||
Additionally when you configure an Metamask wallet an Infura RPC access key is assigned to your instance, **if you make two transactions from two seperate addresses from that instance they will be directly related**. It is recommended to delete and reintall the extension when transacting from the source and destination address to ensure a fresh access key and not void your destination address's anonymity.
|
||||
Additionally when you configure an Metamask wallet an Infura RPC access key is assigned to your instance, **if you make two transactions from two separate addresses from that instance they will be directly related**. It is recommended to delete and reintall the extension when transacting from the source and destination address to ensure a fresh access key and not void your destination address's anonymity.
|
||||
|
||||
It is recommended to use open source wallets to evade the surveilance present in the adopoted software like the following recommendations:
|
||||
It is recommended to use open source wallets to evade the surveillance present in the adopted software like the following recommendations:
|
||||
|
||||
* [Frame](https://github.com/floating/frame)
|
||||
* [Enkrypt](https://github.com/enkryptcom/enKrypt)
|
||||
@ -53,7 +53,7 @@ If you make 7 x 10 ETH deposit from one address and withdraw all 10 ETH notes to
|
||||
|
||||
### Use different gas parameters
|
||||
|
||||
Behavioural patterns in consisent gas values can be used to fingerprint transactions by correlation, configure arbitary gas values when withdrawing and depositing to maximise anonymity.
|
||||
Behavioural patterns in consistent gas values can be used to fingerprint transactions by correlation, configure arbitrary gas values when withdrawing and depositing to maximise anonymity.
|
||||
|
||||
### Select the strongest anonymity sets
|
||||
|
||||
|
@ -16,19 +16,19 @@ Then, run it.
|
||||
|
||||
First, search for `about:config` on your URL navigation bar.
|
||||
|
||||
![](../../.gitbook/assets/aboutconfig.png)
|
||||
![](../../.gitbook/assets/about-config-in-tor.png)
|
||||
|
||||
Then, accept the caution message by clicking on `Accept the Risk and Continue`.
|
||||
|
||||
![](../../.gitbook/assets/aboutconfig2.png)
|
||||
![](../../.gitbook/assets/about-config-tor-accept-risk.png)
|
||||
|
||||
Search for `wasm` and turn `javascript.options.wasm` on true.
|
||||
|
||||
![](../../.gitbook/assets/wasm.png)
|
||||
![](../../.gitbook/assets/tor-config-enable-wasm.png)
|
||||
|
||||
Search for `indexedDB` and turn `dom.indexedDB.logging.details` and `dom.indexedDB.logging.enabled` on true
|
||||
|
||||
![](/.gitbook/assets/indexeddb.png)
|
||||
![](../../.gitbook/assets/tor-config-enable-indexed-db.png)
|
||||
|
||||
### Step **#3 -** Install Metamask
|
||||
|
||||
@ -36,23 +36,23 @@ Go there: [https://metamask.io/download/](https://metamask.io/download/)
|
||||
|
||||
First, click on `Install Metamask for Firefox`.
|
||||
|
||||
![](/.gitbook/assets/metamaskhome.png)
|
||||
![](../../.gitbook/assets/metamask-install-firefox-and-tor.png)
|
||||
|
||||
Click on `Add`.
|
||||
|
||||
![](/.gitbook/assets/addmetamask.png)
|
||||
![](../../.gitbook/assets/metamask-extension-add-firefox-and-tor.png)
|
||||
|
||||
Allow addons.mozilla.org to install an add-on by clicking on `Continue to Installation`.
|
||||
|
||||
![](/.gitbook/assets/downloadinstall.png)
|
||||
![](../../.gitbook/assets/metamask-extension-download-and-install.png)
|
||||
|
||||
Confirm that you allow this extention to run in Private Windows, then click on `Okay`.
|
||||
Confirm that you allow this extension to run in Private Windows, then click on `Okay`.
|
||||
|
||||
![](/.gitbook/assets/allowprivateclickokay.png)
|
||||
![](../../.gitbook/assets/metamask-extension-allow-in-private-tabs.png)
|
||||
|
||||
Then, you can add Metamask to your toolbar, by doing a right click on it and dragging Metamask icon to your toolbar.
|
||||
|
||||
![](</.gitbook/assets/metamaskicon(1).gif>)
|
||||
![](<../../.gitbook/assets/metamask-add-extension-icon-to-browser.gif>)
|
||||
|
||||
### Step **#4 - Enjoy your privacy**
|
||||
|
||||
|
@ -10,21 +10,21 @@ Once the funds are withdrawn by a new address from those pools, the on-chain lin
|
||||
|
||||
**Nova anonymity 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
|
||||
* Asset management is fulfilled 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 receive shielded transfers
|
||||
|
||||
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:
|
||||
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 conscious of:
|
||||
|
||||
* 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
|
||||
|
||||
_For a more detailed explaination see guide_ [_Tips to remain anonymous_](guides/opsec.md)_._
|
||||
_For a more detailed explanation see guide_ [_Tips to remain anonymous_](guides/opsec.md)_._
|
||||
|
||||
### Zero knowledge
|
||||
|
||||
Tornado Cash uses Zero-Knowledge Succinct Non-Interactive Argument of Knowledge (zkSNARK) to maintain non-custodial shielded transactions.
|
||||
|
||||
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 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 optimized for the arithmetic circuits for zero-knowledge proofs and maintain low transactional costs in the Ethereum virtual machine. Depositing is fulfilled 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.
|
||||
|
||||
|
@ -1,16 +1,16 @@
|
||||
# Compliance tool
|
||||
|
||||
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. The right of privacy lies in the ability to have control over the information we provide and to whom we provide it.
|
||||
By design, everything is public on the blockchain, which can deprive users from their right to privacy. Anyone can have view everyone else entire financial history. 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, **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.
|
||||
To this extent, **the compliance tool enables users to prove the origin of their funds through selective disclosure.** Each note translates to a unique deposit, **this tool will issue a cryptographic proof of a deposit** allowing a third party to authenticate one's transactional profile.
|
||||
|
||||
![](/.gitbook/assets/capture-de-cran-2021-09-02-a-14.57.11.png)
|
||||
![](../../.gitbook/assets/compliance-tool-page.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.
|
||||
|
||||
_More information see section _[_Deposit / Withdraw_](deposit-withdraw.md)_._
|
||||
_More information see section _[_Deposit / Withdraw_](../../tornado-cash-classic/deposit-withdraw.md)_._
|
||||
|
||||
To get a compliance report, the user solely need to copy the note, generated after the deposit, in the dedicated input.
|
||||
|
||||
@ -24,7 +24,7 @@ If the note wasn't spent yet (i.e. assets have still not been withdrawn), the co
|
||||
|
||||
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/compliance-tool-inserted-unspent-note.png)
|
||||
|
||||
To can find more information about how Tornado Cash achieves privacy see section [_How does Tornado Cash work?_](../how-does-it-work.md)_._
|
||||
|
||||
@ -36,10 +36,10 @@ If the note was spent (i.e. assets were withdrawn to a given address using the n
|
||||
* 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 and authenthicate the presence of the note's secret in the Merkle tree for the withdrawal.
|
||||
The nullifier hash is a public input that is sent on-chain to get checked with the smart contract and authenticate the presence of the note's secret in the Merkle tree for the withdrawal.
|
||||
|
||||
![](../../.gitbook/assets/capture-de-cran-2021-09-02-a-15.12.23.png)
|
||||
![](../../.gitbook/assets/compliance-tool-generate-report-for-spent-note.png)
|
||||
|
||||
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.
|
||||
|
||||
![](../../.gitbook/assets/capture-de-cran-2021-09-02-a-15.12.53.png)
|
||||
![](../../.gitbook/assets/compliance-tool-example-report.png)
|
||||
|
@ -1,8 +1,8 @@
|
||||
# Tutela
|
||||
|
||||
As apart of the first iteration of a bounty program to incentivise contributors, a task concept formed regarding to help identify poor usage of the protocol - **that could compromise an individual user's privacy**. Which would mean the creation of a tool to compute the relative strength of any of the protocol's anonymity sets and identify potential leaks in certain transactional patterns.
|
||||
As apart of the first iteration of a bounty program to incentivize contributors, a task concept formed regarding to help identify poor usage of the protocol - **that could compromise an individual user's privacy**. Which would mean the creation of a tool to compute the relative strength of any of the protocol's anonymity sets and identify potential leaks in certain transactional patterns.
|
||||
|
||||
Interest gathered from external actors and over the the span of 3 months, a group of independent developers and academics came and coproduced Tutela; a tool to probabilistically find relations between addresses using Tornado Cash through specific hueristics and fingerprint clustering.
|
||||
Interest gathered from external actors and over the the span of 3 months, a group of independent developers and academics came and coproduced Tutela; a tool to probabilistically find relations between addresses using Tornado Cash through specific heuristics and fingerprint clustering.
|
||||
|
||||
https://arxiv.org/abs/2201.06811
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
# Anonymity mining
|
||||
|
||||
***Please, keep in mind, that you read historical deprecated article. Anonymity mining ended more than two years ago and wont be available anymore.**
|
||||
|
||||
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" %}
|
||||
@ -12,23 +14,23 @@ Individuals deposit to any one of the anonymity pools that are supported (ETH, W
|
||||
|
||||
_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 yield’s (APY’s) 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 one’s 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](http://web.archive.org/web/20210727093742/https://torn.community/t/anonymity-mining-spreadsheet/720) that helps calculate annual percentage yield’s (APY’s) 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 one’s 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".
|
||||
|
||||
![](../../.gitbook/assets/m3fh0gl.png)
|
||||
![](../../.gitbook/assets/anonymity-mining-earn-ap-deposit.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/anonymity-mining-save-note-and-send-deposit.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/anonymity-mining-check-deposit-reward.png)
|
||||
|
||||
_Notes that are active (not withdrawn) are known as “unspent” notes._
|
||||
|
||||
@ -36,39 +38,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/anonymity-mining-setup-ap-account.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/withdraw-note-page.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/confirm-withdrawal-from-tornado-pool.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/anonymity-mining-claim-ap-rewards.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/anonymity-mining-claim-ap-reward-warning.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/anonymity-mining-info-page.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/anonymity-mining-balance-info-page.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, finalize by generating the proof and submitting the transaction through a relayer or not.
|
||||
|
||||
![](../../.gitbook/assets/wo55lao.png)
|
||||
![](../../.gitbook/assets/anonymity-mining-withdraw-ap.png)
|
||||
|
||||
3\. If all steps were followed correctly, TORN will be transferred to the address of preference provided in step 2 of this section.
|
||||
|
||||
@ -81,4 +83,4 @@ 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)
|
||||
* [Tornado Cash anonymity mining optimization article](https://tornado-cash.medium.com/gas-price-claimed-anonymity-mining-a-victim-but-now-everyone-can-claim-ap-5441aaa32a1a)
|
||||
|
@ -2,16 +2,14 @@
|
||||
|
||||
TORN is an ERC20 compliant token with a fixed supply that governs the protocol, token holders can submit proposals and vote to contribute.
|
||||
|
||||
**Initial token distrbution**
|
||||
**Initial token distribution**
|
||||
|
||||
* **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-gmc0jw8zr5xfvrk5zyqmya.png)
|
||||
![](../../.gitbook/assets/TORN-token-distribution.png)
|
||||
|
||||
## Airdrop
|
||||
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.
|
||||
@ -26,8 +24,8 @@ So that a larger deposits like 100 ETH only got twice as many tokens as a 1 ETH
|
||||
|
||||
The exact curve for the time multiplier looks like this:
|
||||
|
||||
![](../../.gitbook/assets/1-bje88nlnkbe29-zcs5agkw-2x.png)
|
||||
![](../../.gitbook/assets/TORN-token-airdrop-amount-curve.png)
|
||||
|
||||
The exact airdrop formula was the following:
|
||||
|
||||
![](../../.gitbook/assets/1-megm4amqrrkx0qxva9iska-2x.png)
|
||||
![](../../.gitbook/assets/TORN-token-airdrop-formula.png)
|
@ -1,6 +1,6 @@
|
||||
# Locking in Governance
|
||||
# Staking in Governance
|
||||
|
||||
### Why? (See below on how to lock)
|
||||
### Why? (See below on how to stake)
|
||||
|
||||
All Governance systems converge towards the same pattern of consensus systems based on some form of pluralism-based voting. This is for the reason, that large-scale coordination problems can only be resolved by giving "users" or "nodes" or "validators" (however you want to call it) an incentive to cooperate, and then bind that incentive within a ruleset which ultimately the "users/nodes/validators" will prefer because it encourages the stability of the system which actually supplies them the incentives, meaning that it economically guarantees them future income.
|
||||
|
||||
@ -10,11 +10,11 @@ Since the execution of [Proposal #10](https://etherscan.io/address/0xEC2412368be
|
||||
|
||||
The entire reason why this is done is most importantly the IPFS deployment, which is expected to be the fully censorship resistant, decentralized frontend which should survive in worst case scenarios. In the combination with the former system, the IPFS deployment should not run into relayer sybil issues.
|
||||
|
||||
The fee mechanism functions by relayers locking a listing amount (currently `2000 TORN`). 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 in the user vault contract (through Governance). Relayers must keep a locked balance greater than the minimum balance (`500 TORN` currently) to be marked as an active relayer and be recommended on the frontend.
|
||||
The fee mechanism functions by relayers locking a listing amount (currently `2000 TORN`). Everytime a withdrawal is processed the registry fee (currently `0.3%` of the relayer's arbitrary fee) is deducted from their locked balance. This fee is then distributed proportionally to TORN holders staked in the [Governance vault contract](https://etherscan.io/address/0x2f50508a8a3d323b91336fa3ea6ae50e55f32185) (through Governance). Relayers must keep a locked balance greater than the minimum balance (`500 TORN` currently) to be marked as an active relayer and be recommended on the frontend.
|
||||
|
||||
The listing amount, registry fee and minimum balance are all configurable by Governance.
|
||||
|
||||
### How to lock?
|
||||
### How to stake?
|
||||
|
||||
First, [connect your wallet to Tornado Cash](../../tornado-cash-classic/how-to-connect-your-wallet.md).
|
||||
|
||||
@ -25,13 +25,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/how-to-lock(stake).png)
|
||||
|
||||
### How to claim your locking reward?
|
||||
### 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/stake-info-page-header.png)
|
||||
|
||||
* Click **`Manage`** -> **`Claim`** tab -> **`Claim`** _button._
|
||||
|
||||
|