Signed-off-by: AlienTornadosaurusHex <>
5.5 KiB
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(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, 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
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.
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.
Look for the contract address on Etherscan and make sure that the source code is verified before voting.
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.
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.
You can undelegate at anytime, to undelegate simply use the Undelegate
option through Manage
-> Undelegate
.