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

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

My point here is less to do with what is gained by fixed period governance rewards, and more to do with what is lost.

In saying that, regardless of the amount of governance proposals created, the proportion of the rewards given to voters is fixed, you do indeed create a disincentive mechanism for the creation of spam proposals, but by creating a disincentive mechanism for the creation of any new proposals.

I appreciate that the motivations behind drafting and distributing proposals may be non-financial, but it seems like a shame to remove rewards-per-proposal altogether. I suppose my main point is that there may be good reasons for an increase in the number of governance proposals (e.g. an organisation facilitating community engagement) but this additional benefit could not be recognised in the form of directly increasing rewards, which seems counter to the goals of the network generally (but the NNS should know that already, right?).

Example: In one week there may be 100 really important proposals, because BTC has just been announced as the global reserve currency. The massive implications set into motion existing plans to update ICP governance and many of the “nearly there” proposals are quickly finalised and put to a vote. Let’s say 95 of these have real substance and require community consideration. A few weeks later, over the holiday period, only 1 meaningful proposal is made and voted on. From a network benefit (reward) perspective, these two periods would be the same, assuming the cap is 76% (re your calcs).

I cannot disagree with your calculation of reward proportion, but I see this as a metric of activity rather than a true measure of value. If there is lots of genuine governance to take care of, it makes sense that a greater share of neuron rewards come from this activity.

3 Likes

I think the juror-type system is essentially the same idea, but with the difference being how the reviewers are selected. In this case they are self-selecting, whereas the juror model would have the NNS assign people to the role. I was imagining a set number of reviewers, which is equivalent to @ArjaanBuijk’s unlocking value.

One benefit to this model is that it would cap the amount of time required to review new governance proposals, preventing reviewing from becoming a part time job, which i agree could make governance participation really dreary.

Random allocation of reviewers from the NNS would also hopefully prevent small groups from pushing spam proposals through and could have a per-proposal reward structure like:

review_reward * (no_of_reviewers / people_in_juror_pool)

So if 100,000 people have agreed to be called as reviewers and 100 are needed per proposal, there is a 0.1% chance of getting called up. Let’s say there is a 0.5 ICP reward for reviewing a proposal and (since this is a long term view) we estimate 100 proposals per year:

0.5 * (100 / 100000) = 0.0005 * 100 (over a year) = 0.05 ICP per person in the review pool.
Put another way, there is a 10% chance that you will review something in that year, for which you receive 0.5 ICP.

Some time later, we now receive 5,000 proposals in a year, but there are 1,000,000 people in the review pool:

0.5 * (100 / 1000000) = 0.00005 * 5,000 (one year) = 0.25 ICP per person in the review pool.
Or, there is a 50% chance you will be called up to review and earn 0.5 ICP.

This is treating all reviewers as equally qualified for all reviews. In reality, some people or organisations might show a real aptitude for review and I would hope that, in a transparent way, that could be recognised and their participation would be weighted according to demonstrable expertise or on the basis of community-driven ratings, but this adds a layer of complexity that might not be necessary.

One final thing you mentioned, @justmythoughts, is the concept of financial obligation, which I think is really important too. I can see how incentives could also become a burden. Having people opt in to a pool of possible reviewers might help to distinguish between those people who want rewards for passive (but still valuable) participation, and those who are happy to spend more time on reviewing.

1 Like

Here is my contribution …
Don’t even know if this is feasible…or to difficult to implement in the NNS
lets say, DFINITY creates a rewards NFT for Governance proposal (something like Motoko NFT).
Now, all proposal weigh value gets reset back to what is was at the beginning, all equal value, besides that Each Governance proposal would get assigned a point value equal to the amount of neuron in existence (what ever that number is), every neuron that participates in Governance proposal voting by following or by manual voting gets 1 point assigned to it, so if every neuron in existence votes in the Governance proposal every one gets a point. The left over points from the neurons that didn’t participate would get divided equally amounts the neurons that voted manually. After reaching certain amount of point ( to be determined) the NNS will airdrop one of the afore mention NFT to that neuron. In this way you are incentivized to participated knowing that you might get something of possible future great value ($1000 ICP or just a nice jpeg :slight_smile: ). This way the value of the reward is uncertain thus disincentivizing the creation of spam Governance proposals.

is this possible?

1 Like

An ICP NFT lottery… :thinking:

You are right that this is a good argument against fixed governance proposal allocations. I don’t have a good response to this yet either. To be honest, the system we have now hasn’t incentivized many people from the community to produce high quality proposals. Frankly, its a lot of work to submit a proposal. Figuring out how to submit a proposal (DFX commands today) is hard for most people, but it’s the easiest part of the whole process. Defining and documenting an idea, moderating deliberation, advocating for support, and the art of compromise are all difficult tasks and sends the proposal lead on an emotional roller coaster. If the goal is for the community to offer more proposals that are high quality and well deliberated, I’m afraid new incentive mechanisms will be required. Otherwise, it seems Dfinity is the only entity that really needs to use the governance proposal system with a few rare exceptions.

1 Like

Another approach could be to add a “spam” button so we would have accept, reject and spam. If spam gets the majority then the submitter would be penalised. The penalty would have to be defined e.g. just an exclusion for a certain time.
This way we don’t create additional complexity on the reward model.

If it’s a spam proposal and spam doesn’t count as governance, then people whose first priority is voting rewards wouldn’t hit the spam button.
If it’s a spam proposal and spam does count as governance, then the spammer wins anyway.
If it’s a real proposal and there is a spam button option, then the minority side could just start calling the proposal spam to get it nullified.

So there are definitely a few downsides to having a spam button.

@willguest thanks for taking the time to explain your position :slightly_smiling_face:

While I understand your argument, I fundamentally disagree with the idea that voters should be rewarded more when more proposals are created, and less when less proposals are created.

Think about your elected officials and ballot measures wherever you live - do you want your elected officials or yourself personally to be inundated with a larger volume of proposals of varying quality, or just those that reach a certain bar of quality, thought, and community support?

What if we’ve reached a system that for is stable, or in equilibrium - should we be incentivized to propose changes to the mechanisms in place just to earn more governance rewards? Artificially rewarding the active community by the volume of proposals of that are submitted does just this.

A participant who submits a proposal to the NNS is someone who cares deeply about the IC, just like a local government official or ballot canvasser cares about the institutions they utilize - it has no direct attachment to financial reward, but there is an indirect incentive. For example, why did I create this post, and why have I spent hours doing so and responding to feedback thus far - I am both a developer and investor in the IC, and I believe that creating strong mechanisms around the IC will protect both my investment and projects by encouraging other developers, investors, and users to join and grow the IC ecosystem.

Until recently, I believe that most NNS proposals created by the community had a similar motive - to serve, improve, and build confidence in the IC. These proposals range from @skilesare’s multiple proposals trying to get ICDevs as a named default neuron in the NNS as a voice for IC developers, to @Kyle_Langham’s proposal to index all neurons in the NNS, to @wpb’s proposals trying to educate everyone on how to use the NNS and galvanize participation in the governance process. These don’t “pay off” for any of the proposal creators in the short term, but will most likely have long term benefits to the IC (well - maybe @wpb’s did have a short-term benefit :sweat_smile: , although he stopped the proposals earlier than planned after the goal of increasing NNS voting participation was reached).

Also, its important to point out that there is a pre-defined inflation rate for the amount of ICP minted and disbursed from the NNS. Proposing more governance rewards does not change this inflation rate, it simply increases the fraction of NNS rewards that are attributed to voting on governance proposals. The reason why you end up seeing more maturity is that there are still a large fraction of NNS participants that do not vote on these governance proposals - meaning that they are losing out on governance rewards, and those rewards go to the active voters. As @borovan mentioned, this is something that is directly exploitable and would result in a variable, but significant transfer of income from passive to active NNS participants, to the point where if 50 governance proposals were submitted in a day, over 99% of rewards would be given to active voters, and passive voters would recieve less than 1% of the rewards, which is broken in my opinion.

3 Likes

@justmythoughts All good points. I am not totally convinced one way or another in terms of rewards-per-proposal or not. My investor-developer interests are a bit conflicted as well.

I totally agree that having high quality proposals is the ambition (and that there should be a spam threshold), so why not make the rewards somehow reflect that, maybe with a scoring mechanism?

1 Like

Imo votes on any sort of proposal should be pretty binary (Yes/No). Features like a weighted proposal score work in terms of judging proposals against one another (ranking), but don’t work as well if you’re asking people (not algorithms) to vote on a binary outcome. It just becomes super subjective, and make the process more complicated for voters.

Now in terms of a machine learning model (automated, not involving people), adding features with specific weights works pretty well → for example, these features and weights are used when classifying your email as SPAM or HAM (not spam).

So you disagree with the principle of voting rewards? If the voting is not the thing being rewarded, then these are participation rewards and, if it is not the action of voting that determines your rewards, what does?

Can I just click “participate” once a week/month, and then I am guaranteed the same reward as someone who reads every word of every proposal, thinks about them, maybe even does more research to fact check certain points or develop their perspective, and then makes as informed a decision as possible?

Honestly I find your argument to be based on a couple of theoretical or ideal situations, neither of which exist. Election officials can be corrupt (what?!) and not everyone who submits a proposal cares so deeply, evidently.

But I do not mean to attack you - I am a huge fan of the IC, in awe of the work already done and totally dedicated to building amazing things here (hopefully for years to come). I am so grateful to you for raising this topic. This is, after all, the foundation for the discussion… I just think that removing reward per proposal will lead to less engagement at a time when it is needed the most, by removing a piece of the NNS architecture that is central to participation.

In a stable state, I completely agree with your assessment, but we are a long way from that. The governance system can also be changed and, if and when we reach that point, I may well have a different opinion.

Something does need to be done, however. As a constructive proposal, can I suggest separating the two concepts. The discussion on per-proposal or fixed-period rewards will likely always have people on both sides (and maybe it should), but the idea of reviewing proposals seems to have broad support.

3 Likes

If it’s a spam proposal and spam doesn’t count as governance, then people whose first priority is voting rewards wouldn’t hit the spam button.

  • Spam button may reward as accept or reject so voters are not penalised

If it’s a spam proposal and spam does count as governance, then the spammer wins anyway.

  • No spammer are penalised delay before next proposal and financial penalities

If it’s a real proposal and there is a spam button option, then the minority side could just start calling the proposal spam to get it nullified.

  • Yes but how to define is spam or not except by voters

Note: if the main motivation of owner of ICP is getting rewards honestly I’m not sure ICP is the right choice.

Here is my take on Dominic’s proposal spam solution.

I call for A Proposal Action Potential as a preliminary action for proposals

We should have proposals go through a preliminary step where they are manually reviewed by random members of the community. These members should be given a bonus reward for taking the time to manually filter out proposals which could be spam.

Just like the action potential of an actual cellular neuron, this system only triggers when a threshold is met by voting participants. It is an all or nothing reaction. If the a majority believe the proposal to be valid it triggers fully into the NNS for voting.

Remember we have to keep systems as organic as possible and as simple as possible with as little steps as possible. Instead of trying to rework a decentralized system from scratch we should directly observe decentralized systems already in place in nature and copy them accordingly.

Here is a link to a draft of the concept for those who are interested
.
https://jsu2x-syaaa-aaaaj-aafba-cai.ic0.app/proposal-action-potential.html

This system strongly resembles the mechanics of a firing neuron cell in the brain.

using randomly selected sample sizes of the NNS population with reward based voting also helps generate insight of what the opinions of the general community are. Of course I also believe accepted proposals should be discussed in detail as well before hitting the NNS. But for now I just wanted to focus on filtering proposals from users. Randomization and 1 vote per user system is heavily needed in the NNS to balance voting power imbalances.

1 Like

Are you planning to submit this idea as an NNS proposal? I was hoping someone would do it. If nobody else takes the lead, then I was going to do a version of Dom’s idea myself. I think it has a lot of potential for the reasons you cite.

Would you please document this idea in a google doc or directly into a new governance topic on the forum? I’m having a very difficult time reading the information in your link. I also suspect it cannot be posted as a proposal in the current format. Hence, it should be time we’ll spent transitioning to a document format. I’d like to read and comment once you create the forum topic.

If you decide to submit this as a proposal, you may want to comment on Open Call for Proposals to Resolve Non-Actionable Proposals too. The goal is to coordinate effort at submitting these proposals to help filter ideas that the governing body wants to pursue further.

I really like the concept of a 1 user 1 vote type of system, but until we have people parties and proof of personhood this most likely won’t work as intended. For example, look at the voting power that DFINITY currently holds, and how this voting power is distributed over many neurons DFINITY Foundation Voting Power - #2 by diegop

Therefore, randomly assigning neurons a “jury vote” will just encourage whales to split their neurons and voting power more sparsely, or encourage a system where users split their neurons as many times as they possibly can to game the system. This would actually counteract a fair 1 person 1 vote system, as a group of motivated enough whales could create a bunch of accounts and split their neurons as many times as possible across those accounts, and then open up the possibility where they are voting 5, 10, 50 times per preliminary period on proposals. As far as I can see, the only way currently to fairly hold a preliminary voting round (until proof of personhood is established) is to take this idea from @ArjaanBuijk

You are making excellent points, but in my opinion the exact mechanisms don’t have to be worked out at this times. I think it’s the concept that is important right now. All proposal ideas will need to include tolerance for Dfinity to shape the exact mechanics of execution. That said, it does seem reasonable to identify these concerns as a risk that needs to be addressed in the proposal. I guess I’m not terribly concerned because Dfinity is working on proof of humanity and it seems like implementation of this proposal would occur later in time than the rollout of people parties.

I think it’s important for the community and DFINITY to shape those mechanics together, and to send these types of voting change proposals to the NNS with their change mechanics as close to completely specified as possible (for example, what was done with the Compounding Maturity Proposal, for which the mechanics were pretty much 100% specified in the forum post, or what you and @Kyle_Langham are suggesting in your reset governance voting followee neurons proposal, which has a well defined scope).

Therefore, DFINITY (and eventually the community) will play their part in terms of implementation, but I don’t think the community should raise or vote on proposals that change voting mechanics without providing specifics in terms of what the end deliverables or functionality changes are. Passing proposals without specifics is a good recipe for those proposals not being worked on, or ending up with an end deliverable that’s vastly different from the original intention.

Imagine this like a ticket or task in a backlog - if that task is not well scoped in terms of deliverables, it requires extra work on the part of DFINITY to research and implement the feature after the proposal is passed, which puts more interpretation lee-way in the hands of the engineer(s) working on it, and could upon completion turn out to have a completely different twist then was the intention of the author and community who passed the proposal.

I think we as the community should do our best to carve out as many knooks and crannies of a proposal as we can before passing it to ensure that proposal is appropriately scoped and of high quality, and is therefore easy to act upon and implement. This requires participation from the foundation and from DFINITY engineers who are experts in that area of the IC.

Having a discussion of how voting could when proof of personhood happens is an interesting discussion point, but I’m not sure that creating a proposal now based on future features that have yet to see the light of day is fruitful - lets cross that bridge once we get there and have an idea of what that future feature feels like.


Note: This is different from DFINITY Roadmap proposals, which allocate foundation resources (engineers/researchers) to a specific area of the IC, and are essentially research and vision oriented, outlining the broad and general changes that we want to see. The equivalent here would be an NNS proposal saying something akin to "The DFINITY Foundation will research and develop solutions for combating spam proposals

1 Like