Executive Summary
Hi I’m Kent, CTO of Agora. Agora is the governance software company focused on contributing to the Optimism token house governor and its frontend at vote.optimism.io. We provide some services to, but do not represent or speak on behalf of, the Optimism Foundation.
This update to the governance smart contract of the token house will allow allow the execution of token transfer proposals onchain directly. Whereas today, proposals on Optimism are voted onchain, but executed manually by the Optimism Foundation according to the outcome of the vote, this upgrade will make it such that for OP token transfer proposals are executed fully onchain, automatically, and without relying on the Foundation.
Note that for non-treasury token transfer proposals (such as protocol and governance upgrades) execution will continue to be conducted the by OP Foundation as before.
As part of this update, we’re also introducing minor patches that address findings from a previous audit.
If this vote passes, the Optimism foundation will upgrade governor contract to the new implementation specified below.
Motivation
Onchain Execution of treasury transfers moves us along the path towards progressive decentralization, in line with the strategy outlined in the Working Constitution and the Long-term Onchain Governance Architecture. With this proposal, we’re incredibly excited to take the first of a series of steps towards decentralization.
Specifications
Contract Changed
Optimism governor
The Optimism Governor would be changed as part of this upgrade. Please review the pull request here:
The deployed code can be found here: 0xecbf4ed9f47302f00f0f039a691e7db83bdd2624
There are no state changes to any proposals and votes in this upgrade. The only state change will be to store the upgrade block number
Voting module
This upgrade also introduces a minor fix to the governor approval voting module. Please review the pull request here:
feat: timelock support by cairoeth · Pull Request #31 · voteagora/optimism-governor
The deployed code can be found here: 0x8060B18290F48fc0bF2149EEb2F3c280bDe7674f.
Proposal types configurator
This upgrade also introduces a minor fix to the proposal types configurator. Please review the pull request here:
feat: timelock support by cairoeth · Pull Request #31 · voteagora/optimism-governor
The deployed code can be found here: 0xCE52b7cc490523B3e81C3076D5ae5Cca9a3e2D6F
Timelock (newly deployed)
In addition to changes to existing contracts, a new Timelock contract will be be deployed and hooked up to the governor after the proposal is successful. The Timelock introduces a delay before a successful proposal can be executed, and is the address ultimately controlling funds in the treasury. The Timelock is using an standard Open Zeppelin library, and will be initialized with roles as such:
Parameter | description |
---|---|
Admin | N/A |
Canceller | Governor Contract |
Executor | Governor Contract |
Delay | 3 days |
Security Considerations
This change is being audited by Trust Security. Please find their audit report here.
Impact Summary
- Agora does not anticipate any downtime due to this upgrade. Proposal creation and voting will not be affected.
- Applications that integrate with governance contracts should be aware that the contract is changing
Action Plan
If approved by governance, the Optimism Foundation admin will set the new implementation of governor proxy at 0xcDF27F107725988f2261Ce2256bDfCdE8B382B10 to new implementation deployed at 0xecbf4ed9f47302f00f0f039a691e7db83bdd2624.
Additionally, the admin will disable the previous deployed approval voting module, and enable its updated implementation deployed at 0x8060B18290F48fc0bF2149EEb2F3c280bDe7674f. Similarly, the admin will point to the new proposal types configurator deployed at 0xCE52b7cc490523B3e81C3076D5ae5Cca9a3e2D6F.
Once the contract upgrade is complete, the Optimism Foundation will hold treasury transfer dry run on the subsequent voting cycle (30) as practice.
Upon successful completion of the dry run, the Optimism Foundation will fund the Timelock with OP Tokens for future transfers.
Conclusion
This proposal outlines the “Enable onchain treasury execution” upgrade. This upgrade enables direct onchain execution of treasury
Edit on 10/21: attached audit report and new contract implementation