# Governance System Upgrade
## ****************Why Upgrade****************
We would like to upgrade our Compound alpha Governor contracts to the latest Open Zeppelin Governor contracts. We believe many of the features and capabilities available the latest contracts will improve the governance experience at Radworks - allowing for more detailed expression of input into proposals and easier management tools for the Governance team. We can also use some of the additional features with these upgrades (Franchiser, Flexible Voting) to design incentive mechanisms for governance participation and to further distribute influence in the DAO without having tokens leave the treasury.
## Key Features
The OZ contracts are the latest and greatest in governance contracts, which is why we chose to bypass Compound Governor Bravo. Each of these upgrades has been audited and are already trusted by other DAOs. See details about key difference between the contract upgrades below.
### Compound Alpha vs Bravo: Key Differences

### Bravo vs OZ Governor: Key Differences
OZ Governor is the successor to Compound Governor Bravo, so generally it has more features and more modularity than Bravo. [Click here](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/governance/README.adoc) for a full list of OZ Governor contract upgrade features.
Key Differences:
- OZ makes the timelock delay optional
- OZ lets you describe quorum as a fraction of the total supply instead of a fixed number of tokens
- OZ allows wall-clock times instead of block times if you prefer
- OZ supports the flexible voting extension, which allows voting from an L2 or a shielded pool
- OZ supports NFT voting in addition to ERC20 voting
### Additional Features We Plan to Implement
<aside>
ℹ️ Please note that implementing these features would be an separate engagement on top of the main governor contract upgrade. As both are backwards compatible, they can be added after the contracts are upgraded.
</aside>
👉 **[ScopeLifts Flexible Voting](https://github.com/ScopeLift/flexible-voting)**
OZ Governor Flexible Voting is built on OZ Governor and allows delegates to split their voting weight across For/Against/Abstain options for a given proposal. It also allows for the ability to have forward compatibility with things like multichain governance, specific voting strategies, etc.
******************************************************New use cases this unlocks:******************************************************
- Voting with tokens while earning yield in DeFi
- Voting with tokens bridged to L2
- Shielded voting (i.e. secret/private voting)
- Cheaper subsidized signature based voting
- Better voting options with tokens held by custodians
- **Enable vestees to delegate & vote with their share of the unvested tokens currently held in the multisig vesting contracts. This is possible, but would require some extra smart contract development. It's nothing too complicated but it is additional work and should be **scoped separately**. It could be implemented and deployed at any time after the Governor upgrade.
👉 ********************[Franchiser](https://github.com/NoahZinsmeister/franchiser/blob/main/spec.md)**
<aside>
ℹ️ The Franchiser contracts linked here are "hacky" given the limitations of the legacy Governor. Flexible Voting enables you to build much cleaner, simpler, safer implementations that offer the same functionality. Scopelift also argues it would be much simpler than the Franchiser.
</aside>
Franchiser contracts allows token holders (incl. treasuries) to selectively delegate portions of their voting power to third parties, while retaining full custody over the underlying tokens. How it works:
1. At any time, any voting token holder may specify some `amount` of voting power to give to a `delegatee`. This creates and funds a `Franchiser` smart contract designed specifically for the holder, who becomes the `owner` of the contract, and the `delegatee`.
1. The `Franchiser` contract allows the `owner` to recall the delegated tokens on demand.
2. The `Franchiser` automatically delegates voting power to the `delegatee` with no further interaction required.
2. `Franchiser` contracts allow `delegatees` to further sub-divide their tokens amongst several `subDelegatees`.
1. At any point the `delegatee` of a `Franchiser` may specify an `amount` of voting power to give to a `subDelegatee`, which creates and funds a *nested* `Franchiser` owned by the `delegatee`.
2. The `delegatee` may recall any delegated tokens on demand.
3. The maximum allowable number of `subDelegatees` varies. The `delegatee` who was granted voting power by an `owner` may designate up to 8 `subDelegatees`. Each of those may then specify 4 `subDelegatees` in turn, then 2, then 1, then 0.
## Execution of Upgrade
[Scopelift](https://www.scopelift.co/) is a team recommended to us by Tally to conduct the upgrade. Scopelift is doing the upgrade fro Gitcoin from Governor Alpha to the new OZ governor with Flexible voting that has finished audits.
**Cost: 50k USDC**
- From Scopelift: “The fee will go toward something on the order of **150-200 engineering hours** spent by Senior ScopeLift engineers. Those hours will be used to construct and deploy the new Governor and do exhaustive testing and simulation of the upgrade process to ensure the new Governance system will function properly afterwards. If you screw up a Governor upgrade, it can have very bad consequences, up to and including locking the treasury funds, so we cut no corners and leave no stone unturned in making sure this is done 100% correctly.”
## Next Steps
- Get feedback from Ele & Alexis re upgrading contracts
- Work with Scopeshift to upgrade contracts
- Work with Scopeshift to impliment Flexible Voting & Franchiser