The quorum calculation uses live total voting power instead of historical values from when the proposal was active. This violates the fundamental governance property that a proposal's success/failure should be immutable after voting ends. Proposal success/failure should be finalized at voting end, not retroactively changed.
Proposal success/failure should be finalized at voting end, not retroactively changed. Quorum is calculated using current total voting power (_veToken.getTotalVotingPower()
), not the total at the proposal's end time. This allows Defeated proposals to later succeed if total voting power decreases. Successful proposals to later fail if total voting power increases.
The quorum calculation uses live total voting power instead of historical values from when the proposal was active. This violates the fundamental governance property that a proposal's success/failure should be immutable after voting ends.
Proposal Creation (Total Voting Power = 100k)
Quorum = 4% of 100k = 4,000
Proposal receives 3,500 votes (for + against)
Result: Defeated (3,500 < 4,000)
After Voting Ends
Many users unlock tokens → Total Voting Power drops to 50k
New quorum = 4% of 50k = 2,000
Proposal now succeeds retroactively (3,500 > 2,000)
Same proposal could alternate between Defeated/Succeeded states. Historical governance decisions become mutable
Foundry
Ensure the quorum is calculated using the total voting power at proposal creation time
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.