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

This is a great addition!

A pro of this approach is that it ensures that unpopular or opaque proposals will most likely never reach the voting floor. I see this as very similar to propositions needing a minimum # of signatures to get on a state ballot.

A con of this approach is that it does complicate the voting process somewhat, and make it more involved.

Would be curious what the NNS team has to say about this in terms of how difficult it might be to implement @jwiegley, in addition to the solution 3 described in the original post.

I’m not clear yet on how adding a 1 week no-voting period at the beginning of the proposal cycle helps. For those who want to use spam as a way of advertising to the neuron holder community, this just gives them an extra week of visibility. Implementing this scheme would not be difficult at all, but where is the incentive to raise the quality of proposals?

4 Likes

This doesn’t fully block governance proposals from reaching the NNS, but by fixing the amount of governance rewards disbursed in a 1-week period, it helps by reducing any financial incentives that would come from spamming the NNS (which is why we are receiving spam proposals currently). In fact, this makes it cost prohibitive to spam more proposals (as there is no longer an increasing payoff to creating additional proposals and reaping the additional governance voting rewards).

Decreasing visibility would most likely mean setting up an automated spam filter, which I’m happy to discuss but might be better suited to another forum topic, as in my opinion it would be important to set this up without introducing any features that would over-censor proposals.

@ArjaanBuijk had a great addition to make sure that spam proposals would never see the voting floor.

1 Like

I like this proposal.

Fix governance voting rewards on a per time period (week, month, etc.) basis

I assumed this was already a thing.

@icme Exactly!

@jwiegley Glad to hear there aren’t any significant technical hurdles required in implementing this scheme.

In response to your concerns, these specific solutions don’t block any proposals from reaching the NNS, but it does reduce any financial incentives that would be gained from creating more NNS proposals. By spamming proposals, the spammer is now essentially burning ICP for visibility.

I believe creating a template for NNS proposals coupled with a spam filter for NNS proposals would tackle the proposal quality issues more directly, as long as that spam filter is not too restrictive. I really like this approach as it would be complementary to solution 3 detailed above.

Now the NNS would have the following guards:

  • A spam filter in place to handle the proposal quality issue
  • Fixed governance rewards over a given time period, resulting in an increasing financial burden (and no financial incentive) to anyone attempting to flood the NNS with governance proposals.

Just FYI if this was not considered yet:

2 Likes

What if you had to burn 25 icp per proposal submitted? That should do it.

@justmythoughts I’m really happy you put this up. I am quite intrigued by how this will play out.

With regard #1 it seems that, when only the participation % is important, you can no longer connect the amount of governance done to the benefit to the network (rewards). The governance itself kind of loses value.

Tangent: This means that an organisation founded with the purpose of crafting readable, packaged proposal of exactly the type we need has little financial incentive to operate. Whether they produced 1 or 1000 in a week, the overall network benefit would not be recognised through rewards. Overall that would make it harder (or less likely) that such a organisation/DAO would exist or even engage with this process, which works against the goal of having better proposals.

For #1 and #2 (and generally), I find financial (dis)incentives a bit old-fashioned. They work proportionately to the wealth of the person and can also be considered costs and/or market tests. A “disincentive” fee could even work to facilitate the testing of public opinion via the NNS (diluting quality) as it provides a clear cost structure.

I like incubation as an idea because it follows a social route for proposal checking. Personally I can see how the SNS could do a lot to help this, maybe with an (open-source) automated spam filter between NNS and SNS followed by community-driven decision making.

A juror-type system could be one scalable option – accounts getting called up by the NNS (or SNS) to review something – and could offer additional rewards for time spent. Reviewers could be chosen at random, or from a pool depending on topic, or according to some criteria or (self) reported expertise. If I could choose, it would be 1 reviewer-1 vote, but I can also see how weighting based on previous attendance or participation could work.

Maybe this is all water under the bridge, if DFINITY will present a clear path forward. As someone seeing an SNS implementation on the horizon, I really hope that this does not get left to money and the markets, but falls to the community to resolve.

2 Likes

Is this really a flaw? It was predicted long before the change was implemented that eventually some participants would decide to submit spam proposals to increase their monetary gain. Keep in mind that the original purpose of the change is to increase voter participation. As voter participation increases, the bonus for voting on governance proposals decreases, and thus the incentive to submit spam proposals will decrease. Assuming that voting participation continues to increase over time, and I see no reason to believe that it won’t, this problem will eventually fix itself.

4 Likes

This is the solution, everyone’s getting worked up and spazzing for no reason, its not even a requirement to log in every day to vote since anyone can blindly follow a neuron for governance and if you cant even do that then I couldn’t care less if you miss out on your auto pilot “rewards”, call it a tax for not paying attention and thanks for the extra tokens. Don’t like it? Then vote ta da

1 Like

@plsak Thanks for bringing this up I was not originally aware of this roadmap item! As mentioned above, I believe a spam filter or “mechanism” would be complementary to fixing the governance voting rewards within a given time period. The one thing to be careful of with a spam mechanism is that it is not too restrictive - I’d be interested to hear from @diegop and the foundation on what their plans are for this spam mechanism.

1 Like

Hi @willguest thanks for your input!

A few points:

I’m not quite clear on what you mean here, can you elaborate on this a bit?

With respect to your comment on financial disincentives if the reward is fixed by time period, I think it’s important that voters participating in governance proposals are rewarded for their time - the question what is the appropriate reward amount for a week of proposal votes is up to the community.

In the case where we have a bad actor that is not affected at all financially by the cost to create a proposal (say a whale or even a foreign country), @ArjaanBuijk had a idea that would act as a great solution

Based on this suggestion of a minimum support “signature” threshold, I’m imagining a future where the IC is massively successful and 1000s of governance proposals are created on the NNS each week. Many are spam and are caught in the filter, but let’s say 50-100 make it through. That’s still too much work for one person in any week. Proposals that have garnered the necessary support from the community will be well known, and default followee neurons/active members will search for the proposals that they support. As long as a proposal receives some minimal number/percent of votes, it would make it to the next round. The majority of spam/unpopular proposals would therefore “fall off the ballot” at this point, with no necessary action needed to be taken by the community in terms of reading/interacting with the spam proposals.

The question remains on how to motivate individuals or entities to vote on proposals that would pass that minimum threshold. Your juror-type system is an interesting and satisfactory solution, albeit a bit more active of a solution than I would like to be involved in personally, especially if I have a busy week and am chosen to review 10-20 of these incubated proposals. I believe that like a state ballot proposition, there should be enough organic support not tied to any financial compensation for an individual proposal to pass some minimum support threshold and unlock after the incubation period to make it to a “live vote”.

The property that governance rewards are fixed per time period/basis ensures that NNS voters don’t feel financially obligated to vote on proposals in incubation that have not reached a minimum support threshold. In this way, NNS participants then are not forced to read through and vote on 50-100 proposals just to find the ones they care about, but are only rewarded by voting on proposals that hit the minimum support threshold and unlock (or go “live”) on the NNS.

Definitely agree that this would be a neat feature to have to an SNS - although I’d imagine each application would want to have a lot of control over each of the “toggle-able” weights and features. I’m optimistic given the recent influx of input around this solving this proposal spam issue that the community will come to a satisfactory resolution in due time!

1 Like

On idea 1, I don’t really understand how it is different than the system today other than averaging over 7 days (or a month) instead of 1 day. Is it because voting rewards would only be derived from governance proposals and nothing else? If so, I could back that idea (it’s effectively the same as resetting default following for All Topics Except Governance). Would you please clarify further?

On idea 2, how would you decide which is the most important proposal for voting? And the second most important? Etc? Does it matter or are you assuming everyone will vote on every proposal? That may be reasonable, but I’m just trying to understand the mechanics of the proposal weight degradation.

On idea 3, I like the idea of a delay period. I have a recommendation for a slightly different twist. When the proposal is submitted to the NNS, a forum topic should be created automatically that requires deliberation for 1 week. At the end of 1 week, the proposer is required to submit a revised proposal before voting is initiated. Not perfect, but I do like the idea of ensuring deliberation. During deliberation, I suppose you could implement a Spam button to prevent the proposal from moving forward, but it seems that could be abused by people who don’t like the topic. Hence, I’m inclined to think the forced deliberation part is good, but maybe not the spam identifier. I also don’t think this disincentivizes spam proposals. People will just be willing to let them play out. The goal of spam proposals is either low cost advertising or higher voting rewards, so this idea doesn’t seem like it solves that problem.

I still think spamming will continue until the root cause is eliminated, which is people going after voting rewards of people who are not voting on governance. Eliminating default rewards for routine business proposals is one way. Another is to let the spam play out until 95% of the voting power is configured to vote on governance. I’m afraid the later will take a while.

By the way, I love how you are focused on ideas that keep proposal cost low and encourage higher voter participation. I think we have these ideals in common.

2 Likes

Governance rewards are fixed per time period…I’m trying to understand this idea. Are you saying something like 75% of total awards available for a 7 day period are dedicated to governance no matter how many proposals are submitted?

Hi @wpb, thanks for your feedback and the positive vibes!

I agree that #2 has a few flaws, specifically that this makes certain proposals more valuable than others. There may be a few tricks to make users unable to predict which proposal would be worth the most, such as delaying rewards to the end of the voting period (1 week, etc.) and then randomly assigning the decreasing rewards to each of the proposals within that period, but I agree that this would not be optimal.

I’d be happy to clarify if you can elaborate on how this would be the same as resetting default following for All Topics Except Governance, I’m a bit confused on that equivalence.

With this proposal, I’m only talking about extending the rewards for governance proposals to average over one week - this does not include other proposal topics. I believe the this change for governance proposals starts to make more sense when a 1-week incubation period is introduced in idea #3.

This fixed rewards allocation over a 1-week time period instead of a 1-day time period does several things:

  • It gives NNS participants more time to evaluate and vote on a proposal as well as allowing some predictability with respect to when a proposal will be live for voting.
  • It stabilizes the amount of governance voting rewards allocated, (which I believe are currently majority of voting rewards).
  • It requires NNS participants to stay active, but does not require them to have a part-time job as an NNS proposals reviewer. :sweat_smile:
    • NNS participants should be rewarded for staying up to date on governance proposals, but anything quicker than a weekly cadence turns into a part-time job/serious hobby.
  • It places an emphasis on requiring voters to check in and vote weekly on any governance proposals in order to maximize voting rewards, and removes the need to submit daily governance proposals in order to maximize voting rewards.

I really like this idea and support it - just a few edge cases/questions

  1. This locks the deliberation period for one week - what if the creator of the NNS proposal wants a longer deliberation period, or to post the proposal with prior to submitting it to the NNS?
  2. This requires a hook from the NNS into the forums, and centralizes the forums as the goto place to discuss Governance Proposals. What about people who want to submit a proposal on Twitter, Medium, or DSCVR?

Look into my comments above with respect to @ArjaanBuijk’s suggestion on a minimum support “signature” threshold. I think the positive filter is better than requiring people to label a post as spam, which as you say could be abused. The best approach for handling spam is putting in place an automated and unbiased mechanism or filter, which it looks like DFINITY has on the roadmap for Q2.

2 Likes

Can you be more specific about the fixed reward allocation? Voting reward allocation is already fixed every day. Are you saying a certain percentage of that allocation would go to governance? Are you thinking 25%, 50%, 75%, 100%? I understand the 7 day average part. I’m trying to figure out the fixed allocation part.

2 Likes

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

That’s a perfect explanation. I understand now and definitely agree. In fact, your initial calculation feels right to me. It seems a governance reward allocation of 75% of total available voting rewards is the right ratio. I would not be opposed to 85% either. You are definitely correct that this kind of fixed allocation would disincentivize low effort proposals.

Of course it would need to be averaged over many days instead of daily simply because there are not enough governance proposals for daily allocation (as you have pointed out). I think a 7 day (or 30 day) rolling average would work though. It doesn’t have to be a fixed 7 day time period. That way proposals can come out any day and voting rewards can be paid out every day.

1 Like

You have made an incredible work. Thank you for that !:pray:

This has been the Snowpiercer equivalent of the money train.

It should be fixed though, at least iterated upon. It’s a weird situation, exploitable by anybody to benefit those that actually have skin in the game and care about the future of the IC.

99% of those losing income as a result of spam governance proposals probably have no idea it’s happening.

2 Likes