Community Discussion: Revise Governance Voting Rewards to Fix Proposal Spamming Rewards Exploit

Yes, I think the percentage of the total voting awards attributed to participating in governance proposals over a 7 day period should be fixed to whatever the community aligns on (50%, 75%, 80%, etc.), regardless of the number of governance proposals submitted during that time period (0 to infinity).

I’m arguably not an expert on governance voting rewards and do not work for DFINITY, so my initial observations have simply come from noticing my mergable maturity, and following discussions on the forums.

Therefore, I did a bit of peeking into the code behind voting rewards and found this. I could be wrong, but I’ll take each piece of code at a time in how I’m interpreting it.

The following code snippets are taken from the most recent commit as of this post (4ed64eb628db52d378c2b3c7db09f9f0ab6c3331)

This essentially means a governance vote is 20x any other vote, and 2000x an exchange rate vote. Based on the estimates in the code, the breakdowns per day assuming a single governance proposal is cast each day look like this

  • governance = 1 * 20 = 20
  • exchange = ~100 * 0.01 = 1
  • others = (a handful) 5 * 1 = 5;

Therefore, if one governance proposal per day is submitted we would have roughly 20/(20+1+5) or 76% of all voting rewards attributed to governance.

This piece of code calls the aforementioned reward_weight() function for each proposal, and then for each voter ballot increments the voting rights by the reward weight for both the individual voter, and the total voting rights of all voters on the NNS.

This piece of code calculates the reward for each voter based on (used_voting_rights * distributed_e8s_equivalent_float / total_voting_rights)

What this says to me is that even though total daily voting rewards on the NNS are capped by the distributed_e8s_equivalent_float, the more governance proposals there are per day, the more that percentage reward allocation due to governance proposals could go up. For example, let’s look at if we now have 2 governance proposals per day.

  • governance = 2 * 20 = 40
  • exchange = ~100 * 0.01 = 1
  • others = (a handful) 5 * 1 = 5;

All other proposal topics equal, if 2 governance proposals are introduced per day then roughly 40/(40+1+5) or 86% of all voting rewards are attributed to governance.

One can imagine if then someone submits, 5, 10, 20, etc. governance proposals per day that are voted - which may very well happen if someone reads this post. People will not have the time to keep up and vote on everything, which will cause more centralization around followee neurons in order to ensure NNS participants don’t miss a vote. Those submitting the spam proposals would be counting on NNS participants missing a vote, and therefore taking rewards from those who missed a vote in this zero-sum game.

This is another strong reason of why governance proposal voting rewards per time period should be fixed. The logic shifts the incentives towards creating more governance proposals, instead of placing a focus on the NNS participants voting on the governance proposals that are created, regardless of how many proposals are created in a given time period.

3 Likes