Governor Update Proposal #3: Enable onchain treasury execution

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

30 Likes

I am an Optimism delegate with sufficient voting power and I believe this proposal is ready to move to a vote.

2 Likes

We are an Optimism delegate with sufficient voting power, and we believe this proposal is ready to move to a vote.

1 Like

I am an Optimism delegate with sufficient voting power and I believe this proposal is ready to move to a vote.

I am an Optimism delegate with sufficient voting power and I believe this proposal is ready to move to a vote.

I am one of the Synthetix Ambassadors, and I am an Optimism delegate [Delegate Commitments - #65 by mastermojo ] with sufficient voting power, and I believe this proposal is ready to move to a vote

I am an Optimism delegate with sufficient voting power and I believe this proposal is ready to move to a vote.

I am an Optimism delegate with sufficient voting power and I believe this proposal is ready to move to a vote.

We need to start decentralizing governance from somewhere because the ethos of crypto is rooted in decentralization, and we must stay true to this principle. With this proposal, we can embark on that journey.

I am an Optimism delegate with sufficient voting power and believe this proposal is ready to move towards a vote

Mint blockchain is an Optimism Delegate. After reviewing the proposal, we are ready to support it. We believe that enabling on-chain treasury execution is a significant step toward further decentralization, reducing reliance on manual execution by the Optimism Foundation.

1 Like

Finally a step to the right direction.

1 Like

Hey @Mint team! Welcome to Optimism Governance :grinning:

Please note that for your approvals to be valid, you must use this format in your comment:

4 Likes

This proposal doesn’t specify the proposer parameter. Only canceller, executer, and admin. I assume that the proposer role will be the governor contract, but it should be specified here. Also, if the executor is the governor contract, then wouldn’t the token house have to vote twice for each treasury execution? Once to propose to the timelock, and once to actually execute. Unless there’s some Timelock execution function on the governor contract that allows some class of delegates to execute a timelock proposal. Also, if the canceller is the governor contract, then we have a similar issue. If it typically takes 7 days to get a vote through, then there will realistically never be a way for the collective to make emergency cancellations of treasury transfers.

Another question: does the foundation have any veto privileges of treasury executions? The way this proposal reads, I would assume no. But I want to clarify to make sure.

This proposal seems underspecified for the seriousness of this step towards decentralization in my opinion. Will probably be voting against (on behalf of Blockchain@USC).

3 Likes

Thanks for questions and sorry for any confusion.

With the timelock deployment, the proposer and executor roles will be granted to the governor. After a proposal passes, anyone can queue it to the timelock and execute it once the timelock period ends.

As for canceling, the governor manager, proposer, and timelock can cancel a proposal. Given that the governor manager is the foundation multisig, they would have veto privileges to cancel proposals.

The security council will also play a crucial role in providing a veto function should anything malicious get queued but these processes are still being ironed out.

1 Like

The inclusion of a security audit by Trust Security adds an additional layer of trustworthiness to this upgrade. This transparency is critical for community confidence in such governance changes. Based!