I am a code4rena warden currently reviewing the addition of dynamic quorum on NounsDAOV2Logic.
Kleros Governor should prevent obviously malicious transactions from ever making it through even if the attacker has supermajority of the voting power without adding friction to day-to-day activities.
Figured I give a TLDR on how it works in case the Nouns community did not know of this option. If there is interest, I can elaborate more.
Kleros Governor Governance Flow
Snapshots (Optional)
First, use snapshots for vote signal. This gassless tool supports delegation and can be used to collect sentiment and raise awareness around a proposal.
Any proposal that did not go through snapshot could be immediately challenged and will be rejected by the court.
Kleros Governor Contract
- A proposal is submitted along with deposit and enters a challenge period (let’s say 5 days). A proposal is a list of [
target
,calldata
,value
]; - If the proposal passes the challenge period, anyone can execute it;
- Someone can challenge it with a deposit during the challenge period. If it is challenged, the proposal goes to court.
- The court analyses the contents of the proposal and checks if it violates (for example) NounDAO constitution.
- The court gives its ruling. The ruling can be appealed.
- Jurors that give incoherent rulings (e.g. clearly participating in an attack) get slashed if their ruling is inverted in the final ruling.
- Finally, if the proposal passes it will be executed and the challenger loses the deposit. Otherwise, it is not executed and the proposer loses the deposit.
Deposits
- The proposer’s deposit is a bounty awarded to a successful challenger. This incentivizes whistleblowers;
- Similarly, the challenger’s deposit is a bounty to discourage attackers from preventing improvements to the protocol.
Conclusion
For an obviously malicious transaction such as the one executed on Build Finance DAO, the system forces the attacker to subvert the entire Kleros system which makes attacking the Nouns treasury unprofitable.
This system has been used to govern Kleros and Proof-of-Humanity for a while. It is battle tested.
Here are some Kleros docs to dive deeper.
Disclaimer: I understand how Kleros and Kleros Governor works because I was a kleros dev.