PTIP-88 Upgrading the PoolTogether Governor

PTIP-88 Upgrading the PoolTogether Governor

Simple Summary

This proposal upgrades the Governor contract that controls the voting for the PoolTogether DAO. The current Governor is deployed at 0xB3a87172F555ae2a2AB79Be60B336D2F7D0187f0. It will be replaced by the new Governor deployed at 0x8a907De47E00830a2b742db65e938a3ea1070A2E.

Motivation

PoolTogether’s onchain governance is based on Compound’s “Governor Alpha” contracts. Compound itself moved on from these contracts years ago, as have most major DAOs. Today, the best practice is to use some variant of the OpenZeppelin implementation.

The outdated governance contracts come with a number of specific risks and downsides:

  • The DAO’s treasury is susceptible to a multi-block MEV attack
  • The DAO treasury holds 30.41 ETH (~$56,000) that cannot be transferred
  • The DAO is limited to proposals that execute 10 onchain actions at a time
  • The DAO’s governance parameters cannot be updated by the DAO
  • The contracts are incompatible with tooling providers, who increasingly eschew support for Governor Alpha
  • The DAO cannot take advantage of the growing ecosystem of Governance integrations being built with Flexible voting (DeFi Voting, L2 Voting, etc…)

Upgrading the DAO’s Governor contract to an OpenZeppelin variant, with ScopeLift’s Flexible Voting extension, will solve all the aforementioned problems. To learn even more about the advantages of Governor Bravo compatible contracts, check out this blog post.

Specification

The PoolTogether DAO’s timelock has an admin role that is currently owned by the Alpha Governor. The proposal will update the timelock admin to the new Governor. After this proposal executes, all future proposals will route through the updated Governor. The upgrade has been extensively tested and simulated by ScopeLift.

Technical Specification

The script that will be used to put this proposal onchain can be viewed here. The proposal will call setPendingAdmin(0x22C0260E31B3a38bA719C0caDCA3AF5A03110821) on the Timelock and __acceptAdmin() on the new Governor.

Poll

Upgrade the PoolTogether Governor
  • Approve
  • Reject
  • Abstain
0 voters

Edit: Removed some parts of the template left in by accident

2 Likes

I reviewed and ran ScopeLift’s tests and everything looks good to go in terms of QA.

@bendi regarding the initial deployment params, I believe they may need to be updated.

I assume the DeployInput.sol will be used for production.

@Lonser I believe we decided on a 1 day voting delay? The period and threshold remain the same, as discussed.

3 Likes

First of all, big THX to the ScopeLift Team for the great work!
Also THX to Brendan for checking out the code, if people missed it, here the comment from the PTBR-1 .

Ben linked the Repo and the Readme there as well, so everyone else can also check out the code too if they want ofc! :slight_smile:

Also, yes, the plan is to keep period and threshhold the same and make the voting delay 1 day!
As info for everyone, this param can be changed later by Governance if wished!
Only the quorum is a fixed param, that one will stay at the current 100k POOL. :slight_smile:

2 Likes

Thanks Brendan. Yes we will redeploy with the updated 1 day voting delay parameter. Glad things look good to you!

1 Like

We redployed the candidate PoolTogether Governor with the requested change to the voting delay parameter. Everything else remains the same. The new candidate Governor is located at 0x8a907De47E00830a2b742db65e938a3ea1070A2E

1 Like

PTIP-88 is live onchain

Vote with POOL

Voting closes 2023-08-20T14:32:00Z

1 Like

Also posted on the Discord, but sharing here as well:

All the tests and simulations have run and completed. You can see them at the following locations:

This proposal is now safe to vote on. We are confident it will execute properly and function as expected afterwards. Thanks again to the PT community!

2 Likes

Hi all, the upgrade proposal has now been executed. Tally is configured to work with the new Governor here: Tally | PoolTogether

I just want to say thank you one more time to the PoolTogether community for entrusting ScopeLift with this work. We are looking forward to possibility of future collaboration with the DAO.

3 Likes