Auditing Compound Protocol

Under this model, we should make clear that tokenholders should only vote for one proposal. In other words, tokenholders should vote “yes” on the proposal they prefer, and abstain from the others (since the multi-sig will cancel all proposals except the one with the most “yes” votes). This will ensure that we avoid any weird overlapping vote dynamics between the various proposals.


In terms of voting mechanics it seems like this adds additional and unnecessary friction. If voters & the community multisig are required to do this every time we pick a vendor for a specific function on Compound, it sets a bad standard for future votes (though this model should work in the short-term for this vote). We should look into doing one of the following:

Direct Voting for Vendor Selection. Adding additional functionality to the GovernorBravoDelegate contract to enable multiple & customizable options for voting on governance proposals. In this model, a “Audit Vendor Selection” Proposal would be created with ToB & OZ & Abstain listed as potential options by the community multisig or an unbiased third party, with the ToB & OZ correlated to a specific action (i.e. sending COMP tokens to the auditor as the first payment for auditing). There should be an arbitrary limit on the number of options allowed on a governance proposals (i.e. 2-4 to start), and voters would only be allowed to pick one option.

Correlating Proposals. Similar to the role that the community multisig is playing in @jamico’s model, we would create a function that would enable proposals to be batched together, with only the proposal in the batch with the highest votes FOR (where the proposal is passing) being approved. In this model, a third party proposer would create the batched proposals, and launch them together. Should any proposal pass by the end of the voting period, all proposals but the one with the most FOR votes would be cancelled by the contract. Additionally, voters would only be able to vote for one proposal within a batch.

In either of these two options, we solve the problems of 1) relying on the community multisig & 2) requiring voters to be cognizant of not voting on more than one proposal. Still trying to figure out the specific details for implementation, but would love to hear thoughts on implementing such functionality into the governance module.

s/o to @Rk2357 & @annamira for the inspiration here

5 Likes