forked from tornadocash/docs
69 lines
5.5 KiB
Markdown
69 lines
5.5 KiB
Markdown
# Governance
|
|
|
|
_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?
|
|
|
|
In order to participate in Tornado Cash governance, users first need to lock tokens in the governance contract to obtain a voting balance. **If a user votes or creates a proposal, the tokens are time-locked until the proposal execution period (8.25 days from proposal creation).** Individuals can also be delegated voting weight which additionally timelocks the allocated tokens if used in either context.
|
|
|
|
To create a proposal, a user needs the proposal threshold of at least `1,000 TORN`. Proposal format follows an independent deployed contract with verified bytecode that can be executed from the [governance contract](https://etherscan.io/address/0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce)(using `delegatecall`). Individuals are suggested to create an open source repositories for their proposals, alongside simulating execution for sufficient security practices.
|
|
|
|
The proposal voting period is `5 days`, quorum (minimum amount of votes required to be valid) is `25,000 TORN`. If the proposal fails to reach quorum it is invalid and will not execute even with a winning majority.
|
|
|
|
After a proposal succeeds, it is subject for a timelock period of 2 days. After the timelock, any individual is able to execute the proposals. If proposal fails to be executed after 3 days from the timelock, it is labeled _expired_ and can no longer be executed.
|
|
|
|
All of the above parameters of governance are configurable at the discretion of governance, and may change at a future date to address the changing demographic. There is also other capabilities configurable in the [native governance token contract](https://etherscan.io/token/0x77777feddddffc19ff86db637967013e6c6a116c#code), which can be identified through the `onlyGovernance` function modifier.
|
|
|
|
Proposals can focus on a wide range of subjects:
|
|
|
|
* Protocol improvements and features (new anonymity pools, parameter configuration)
|
|
* Expenditure requests for funding public goods, education and advocacy
|
|
* Contributor remuneration
|
|
* Economic strategisation
|
|
* Governance configuration
|
|
|
|
### How to vote?
|
|
|
|
> *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. Many public RPC endpoints now have censored transacting to and from Tornado Cash deployments, look for non-censoring alternative endpoints on [chainlist.org](https://chainlist.org)*
|
|
|
|
You first need to deposit (or lock) TORN tokens into the governance contract.
|
|
|
|
Go to the `Voting` route of the application, look to the top of the page under the navigation bar and click `Manage` -> `Lock`.
|
|
|
|
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 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)
|
|
|
|
Look for the contract address on Etherscan and make sure that the source code is verified before voting.
|
|
|
|
![](../../.gitbook/assets/d2d37d169a94f09156e76fa522b7974cb7c9ac3f.png)
|
|
|
|
> Using locked tokens in a vote subjects them to a timelock of 8 days approximately with current governance parameters
|
|
|
|
To vote, simply click on the green check or the the red buttons whether you are in approval of or in rejection of the proposal. Confirm the transaction to finalise your vote. A vote can be changed during the voting period if a voter decides to revert their previous choice, this requires an additional transaction.
|
|
|
|
### How to delegate?
|
|
|
|
> Delegated voting weight is treated exactly like voting weight, meaning if the balance is used to create a proposal or vote on a proposal the originating deposit will be locked for approximately 8 days
|
|
|
|
You first need to lock your tokens in the governance contract. Click **`Manage`** -> **`Lock`** tab
|
|
|
|
Approve the governance contract to transfer your TORN tokens by clicking on the **`Approve`** button. Once the approve is confirmed, chose the amount you want to delegate and click **`Lock`**. Confirm the transaction in your wallet and wait for the confirmation.
|
|
|
|
![](/.gitbook/assets/c05e5a1813edad280544b627b24002dc8d5adcf2.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)
|
|
|
|
You can undelegate at anytime, to undelegate simply use the `Undelegate` option through `Manage` -> `Undelegate`.
|
|
|