[Discussion] Upgrade Governance Contracts from Compound Alpha to Compound Bravo

:writing_hand:This is a draft proposal that we are seeing feedback and looking to iterate upon.

:information_source: This proposal is (tentatively) intended to be voted on in the MARCH proposal cycle. However, we want to provide ample time to discuss this proposal given its significance so we are posting the draft already. We are open to moving it back to a later cycle if we get the sense that the community is not confident to execute the upgrade.

Input
Author(s): @shelb_ee & @abbey (Radworks Governance Committee) & @bendi (ScopeLift)
Type: executable
Created: 2024-02-21]
Status: discussion

Purpose

This proposal aims to:

Overview & Backround

In October 2023, the community approved [RGP-17] Upgrade Governance Contracts from Compound Alpha to Open Zeppelin Governor, a social proposal aiming to gain approval for an upgrade of the radworks governance system. The acceptance of this proposal signified the community’s consensus on upgrading Radworks’ governance contracts and also allocated a grant to the ScopeLift team for initiating the upgrade process.

They have completed their first milestone of work, which included preparing the Governor contract using OpenZepplin’s implementation of Governor Bravo, prepared foundry scripts that will be used to deploy the Governor and put the upgrade proposal onchain, and running hundreds of fuzz tests to simulate the upgrade and exercise the new Governor to ensure it will function after the upgrade. Approval of this proposal would trigger the implementation of the OZ Governor upgrade, along with disbursing payment to the Scopelift team for their completion of final milestones.

Reasoning & Analysis

Reminder: Why upgrade?

Compound Alpha governance contracts no longer suit the needs of Radworks governance system. While they have all of the basic capabilities we need as a community-governed network, the contracts are now deprecated, leading to a list of limitations and exposing the system to a number of risks (read more here). Other major DAOs have already moved on from Compound Alpha, including Compound itself.

Open Zeppelin Governor is the successor to Compound Governor Bravo. It is not only fully compatible with Governor Bravo (i.e includes the same benefits and features), but also offers additional capabilities and allows for upgrades to governance parameters without requiring complete migration. The Governance Committee believes that many of the features available in the OpenZeppelin Governor contracts will enhance Radworks’ governance system, enabling a more detailed expression of input into proposals and offering easier management tools for governance facilitators.

Some key differences between Bravo & OZ Governor that we found interesting include:

  • The OZ Governor allows for governance to update governance parameters in the future via a vote, rather than replacing the whole governor
  • Upgrading the Governor removes the risk of a multi-block MEV economic attack on the DAO
  • The OZ Governor is more up to date, more actively maintained, and contains various security enhancements that have been integrated over years of iteration
  • The OZ Governor includes a number of new features, including the ability to vote Abstain and to provide a human-readable “reason” when a vote is cast

In addition, there are a further capabilities that the OZ Governor contracts enable that be beneficial for us to consider in the future:

  • OZ lets you describe quorum as a fraction of the total supply instead of a fixed number of tokens
  • OZ supports the Flexible Voting extension, which allows voting from an L2 or a shielded pool, new delegation schemes, etc.)
  • OZ supports NFT voting in addition to ERC20 voting
  • OZ makes the timelock delay optional

Ecosystem Adoption:

The OZ Governor has seemingly become the industry standard, and is used by many DAOs both small and large. As it seems to have become the default choice for many small DAOs, there are a number of large DAOs using it. For example, ENS launched their DAO on OZ Governor. HOP Exchange, Unlock, Optimism and others are other examples who use OZ-based Governors (i.e. some have built a customization on top of the OZ Governor but use the core codebase).

OZ contracts also allow for integration of additional useful integrations, such as the Flexible Voting extension. The Flexible Voting extension - which was created by the ScopeLift team & is only compatible with OZ Governor - but Gitcoin and PoolTogether have recently adopted the Flexible Voting extension into their OZ Governor. The Governance Committee is interested in exploring Flexible Voting in the future due to its modularity.

Security:

The OZ Governor contracts were released in August 2021 and have been consistently audited since. According to ScopeLift, OZ Governor is more actively maintained than Compound Governor Bravo.

Read more about why we didn’t suggest upgrading to Bravo here.

ScopeLift Preparation for the Upgrade

ScopeLift is a small team of expert, full stack EVM devs that was recommended to us by the Tally team. They were selected by the Governance Committee to help prepare the upgrade given their experience and expertise.

Since November, the ScopeLift team has spent time preparing and testing the contracts for the upgrade. They have spent around 200 hours preparing for the upgrade. They have deployed a candidate contract (see repo) and it is being reviewed by our devs now.

Implementation

When the proposal is formally moving through the governance process, ScopeLift will again update the test suite against the proposal data now onchain. This will ensure, once again, that no errors were introduced in the proposal process. They will also patch Seatbelt to run against Radworks’ Alpha Governor and produce a safety report for the upgrade.

If the proposal passes, the execution will happen automatically upon passing of this proposal onchain. The Governance Committee will coordinate with the Scopelift team to make sure that the timing of upgrade does not interfere with any other governance proposals that may be active at the time.

The ScopeLift team has already received a grant to fund this first milestone of their work. The passing of this proposal will include a $RAD distribution from the treasury as compensation for the final two milestones for their work (outlined here).

Note: We are posting this proposal on the forum well ahead of the March proposal cycle to allow for ample time to review and discuss. If the community has no major issues with the upgrade in early March, we plan to put this proposal through the March cycle. If there are issues, we will delay it to a later cycle. This is a really important upgrade and we do not want to rush it through the governance process. In any case, please try to voice your questions and concerns as soon as possible so that we are able to find solutions to move forward.

Reporting & Success Criteria

The upgrade will be successful if the contracts execute with no issues.

Timeline & Budget

The budget for milestones 2&3 of Scopelift’s work total to be $10,000 worth of RAD. This was agreed on in their original Grant proposal.

This amount will be sent to the following Scopelift address from the Radworks treasury:

0x5C04E7808455ee0e22c2773328C151d0DD79dC62 (scopelift.eth)

Next Steps:

  • Review and discuss the upgrade that ScopeLift has prepared. The ScopeLift team will be monitoring this post and answering questions as they come.
  • Tentatively move the proposal through the March proposal cycle. This timeline is tentative on there being no major issues that are brought up by the community.
  • Execute the upgrade to OZ Governor: If the proposal passes, the upgrade will happen automatically. If it is successful, the DAO will be able to proceed with its governance of the treasury and protocol as normal.

As there have been no issues or challenges raised by the community, we are planning to put this proposal through the March proposal cycle.

Please review and respond to this proposal before the Proposal Review call next Wednesday, March 13th.

Due to some concerns voiced in other channels on timing of this upgrade alongside other proposals, we are going to postpone this upgrade another month.

Keep an eye out for this proposal in the April cycle.