Core Contracts

Regnum Aurum Acquisition Corp
HardhatReal World AssetsNFT
77,280 USDC
View results
Submission Details
Severity: high
Valid

 Missing Voter Weight Decay

Missing Voter Weight Decay

Issue

  • What it affects: The voting power of individual voters.

  • Problem: The voting power of a voter is calculated dynamically using their current voting power at the time of voting, rather than a snapshot taken at the time of the vote.

Impact

  • Voters can vote with their full voting power and then immediately unlock or reduce their voting power (e.g., by withdrawing tokens or reducing lock duration).

  • This allows voters to influence the outcome of a proposal without maintaining their voting power throughout the voting period.

Example

  1. Voter A has 100k voting power and votes in favor of a proposal.

  2. Immediately after voting, Voter A unlocks their tokens, reducing their voting power to 0.

  3. Their vote still counts as 100k, but they no longer have any stake in the protocol.

Fix

Take a snapshot of each voter's voting power at the time of voting and use that snapshot for vote weighting.

proposalVote.voterPower[msg.sender] = weight;
Updates

Lead Judging Commences

inallhonesty Lead Judge 3 months ago
Submission Judgement Published
Validated
Assigned finding tags:

Governance.castVote uses current voting power instead of proposal creation snapshot, enabling vote manipulation through token transfers and potential double-voting

inallhonesty Lead Judge 3 months ago
Submission Judgement Published
Validated
Assigned finding tags:

Governance.castVote uses current voting power instead of proposal creation snapshot, enabling vote manipulation through token transfers and potential double-voting

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.