Proposal to fix governance proposal rewards at 75% on a daily basis

(May 8th, 2022) Recent Edit: This proposal has been changed after feedback to fix governance proposal rewards on a daily basis (originally was on weekly basis). All other mechanisms of the proposal remain the same. For clarity, the terminology of a completed proposal or one reaching completion means that voting has finished and the proposal has moved from a status of “Open” to a status of completion (i.e. Rejected/Executed).

Goal

As a community, revise the current governance voting rewards system to disincentivize proposal spamming for profit, while still incentivizing voter participation and allowing anyone to easily submit an NNS proposal (no censorship).

Why you should approve this proposal: (TLDR Value Proposition)

Fixing governance rewards on a daily basis removes the financial incentives from creating governance proposals without raising the proposal reject cost or lowering governance voting rewards

The Solution

Fix governance voting rewards at 75% of all voting rewards disbursed on a daily basis (UTC Time). Regardless of the number of governance proposals that reach completion in a given day, the voters are rewarded for their participation divided by the number of proposals completed in that day, and these rewards are disbursed at the end of the day to ensure the correct voting reward per vote cast, and that no vote on a single proposal is worth more than any other proposal with that time period.

If the NNS receives 1 or 1000 proposals that reach completion on a single day, a participant that votes on all proposals will receive the same voting rewards. The governance rewards paid out over time will therefore be predictable and stable, and the fixed governance rewards will remove any financial incentives or potential conflicts of interest in creating an NNS proposal.

What this Proposal does not do

  • This proposal does not remove the incentives to spam the NNS for visibility or advertising
  • This proposal does not give less or greater governance rewards to voters if there are more governance proposals submitted that reach completion on a given day. The governance rewards remain constant, regardless if there are 0 or 100 governance proposals that reach completion on that day.

How does this affect me as a voter

  • Nothing changes - keep voting on governance proposals and you will receive the same rewards as if one proposal was submitted each day (75% of your rewards will from governance proposals)
  • You will receive rewards proportional to the (# governance votes participated in / # governance votes total) for proposals that are completed during that same day.

How does this affect me as a proposal creator

  • Nothing changes

**End of what will be submitted to the NNS**



Explanation of the Current Problem, and Why Fixing Governance Rewards is the Solution

(If you want to understand how governance rewards currently work in the code, keep reading)

The following explanation is copied from this post on 4/5/22


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, out of curiosity I did a bit of peeking into the code behind how voting rewards are distributed and found this. My interpretation could be off and I welcome anyone from DFINITY to correct me (@jwiegley @diegop), but I’ll take each piece of code at a time in how I’m interpreting it.

The following code snippets are taken from this commit as of 4/5/22 (commit 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 far. In fact, 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.

If 50 proposals were submitted per day, 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 current 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.

7 Likes

For the sake of clarity in the proposal topic body above, each reference to “proposal” is assumed to be a “governance proposal”, and not any other type of proposal.

Damn it i just made a big show about reverting to original settings and removing weighted proposals but from what i can see this is elegant as hell. You have effectively bridged all concerns with this solution. We keep the weighted governance proposals, it removes the exploit, and also increases participation, all proposals remain equal, everyone can continue submitting proposals without barriers. I will give it another look after work but so far this one is simple, easily deployable and works.

I have to give this a much more thorough look but this a good core system. The only thing left is to solve for general spam.

If the proposal to revert to original settings passes we have 4 months of in depth deliberation. I like this solution as a core rewards engine. However, The only thing left is to solve for general spam that will inevitably hit the NNS.

1 Like

Is a mercy rule possible? Can’t we just early decline a topic if it’s clearly going to fail.

Mercy rule followed by everyone getting rewards

So, we’d have to wait a week to be rewarded? If so, no thanks.

2 Likes

Thanks for bringing up this point, I agree certain voters might want more control with respect to merging compound interest or control of when to split and sell a neuron.

This proposal could be changed to fix the governance rewards to 75% of all voting rewards disbursed on a daily basis.

1 Like

Thank you, @justmythoughts for giving this problem so much attention. I will do my best to understand the technical solution you are proposing.

My two cents are as follows:

…there are pre-existing systems we can draw upon, if not for implementation, for inspiration.

The Jury System and Pre-Moderation come to mind. Could all proposals be pre-moderated by a random selection of Internet Computer citizens, perhaps identified through Proof of Humanity?

In the event a proposal fails to achieve ten twelfth’s approval for meeting publicly accessible criteria for each proposal type it is flagged for rejection.

@anonymous and @icme

I see how this could be a point of contention. Governance rewards hit the NNS asynchronously and last for several days, so the shortest time period for rewards I could possibly see using would be daily. Then the governance rewards awarded to each user would be calculated the fractional weight of all proposals the user voted on that end on a specific day (UTC time based) out of the 75% daily governance rewards.

For example:

  • On Monday, no governance proposals end → all voters receive 100% governance rewards for that day.
  • On Tuesday, 1 governance proposal ends
    • A voter that voted on it receives 100% of governance rewards for the day
    • A voter that did not vote on it receives 0 governance rewards for the day
  • On Wednesday, 2 governance proposals end
    • A voter that voted on all 2 of the proposals receives 100% of governance rewards for the day
    • A voter that voted on 1 of the 2 proposals receives 50% of governance rewards for the day
    • A voter that did not vote on any of the proposals receives 0 governance rewards for the day

Let me know what you think.

Hi @NickM, thanks for jumping into the discussion. Let me know if you have any questions regarding the technical pieces of this proposal, or how/why this proposal would work.

Here’s my response to your $0.02.

I hesitate to introduce any solution that requires human time and effort before exploring automated solutions. Not only does this require time from NNS Voters, but humans make mistakes and can make biased decisions based upon their beliefs or what side of the bed they wake up on that day.

To touch on the point of bias, let’s say that a well thought out proposal to eliminate governance proposal rewards from the NNS is created. This proposal would be wildly unpopular, but should a small jury voters be able to censor it from the platform. I would argue that the smaller the sample size (of jurors), the greater the possibility of something like this happening. Algorithms and mechanisms can be biased as well, but at least they are consistent and proposal creators would hopefully understand these rules and limitations before submitting a proposal.

Here is my solution for spam proposals and quality assurance checks. We basically create an amazon micro turks solution for the NNS using existing neurons. Neurons are rewarded from the proposal cost. At the current cost of 10 ICP, 10 neurons would get 1 icp each.

Appreciate the time you have given to the response.

Your proposal has merit and I look forward to following its progress.

Based on the time basis comments above from @icme and @anonymous, I’m considering updating this proposal to fix governance proposal rewards on a daily basis instead of a weekly basis.

I would also like to take input from the community with respect to what fixed % of daily staked rewards should come from governance proposals. 20%, 50%, 75%, etc.? I have my own thoughts and reasons, but I want to make sure there’s some agreement on a good target.

(Sorry for the @ mention spam), but would love input from some thought leaders like @LightningLad91, @lastmjs, @wpb, @skilesare, @cryptoschindler, and @Zane. Also any input on the technical complexity of making such an update or any commentary from DFINITY (engineering/other) would be appreciated @diegop.

Also, any one else with questions or critical feedback please jump in - I would love to address any concerns before I start crowdfunding for this proposal.

Isn’t this mathematically equivalent to our current reward system?

Even giving 100% credit for governance rewards to everyone on days with no governance proposals still seems mathematically equivalent because exchange rate and all other topics fall under the All Topics Except Governance “catch all” that everyone also get by default.

This iteration that I’m replying to now seems a lot different mathematically than the original proposal in the first post of this topic.

1 Like

I like the idea of daily rewards better than weekly rewards, but I’m not strongly opposed to weekly rewards.

In your calculations above (the first post), please note that there are 144 exchange rate proposals each day since they occur every 10 minutes. Another point of interested is that there have been a very high number of routine business topics (proposals other than exchange rate and governance). Hence, you may want to up your estimates of “other” topics. My suggestion is that you submit your proposal based on an assumption of 2 governance proposals per day. This will future proof your proposal for the mid term since we can reasonably assume the number of governance proposals will increase over time. Perhaps in 1-2 years the estimate will need to be 3 or 4 governance proposals per day, but it seems reasonable to start with an assumption of 2 per day for the next 1-2 years.

All that said, I’m still not a fan of fixed rewards for governance proposals. I fear it will inhibit progress toward decentralization later if we make this change today. As we move toward Dfinity and the IC community wanting more proposal topics to become decentralized, I think the only way it will happen is if those proposal topics can have high proposal weights like Governance does today (there are other requirements for it to work, but proposal weights have proven to be fundamental). Hence, I’m currently a bit skeptical that fixed Governance rewards is a good idea.

Also, as mentioned in other threads, I don’t think proposal weights is the root cause of spam. I think the root cause is the imbalance in voting participation that is caused by default neuron configuration of Followees. Default Followees has lead to an expectation that people are entitled to voting rewards because of staking, but entitlement to voting rewards is actually granted only if voting occurs. Hence, we really need to focus on solving the voting participation problem across different proposal topics as the solution and I think proposal 55651 will accomplish that goal. The community and Dfinity also need to put a lot more effort into broadly and loudly communicating tokenomics changes to NNS participants.

That’s my two cents, but I fully support you moving forward with this proposal and letting the governing body decide. I will gladly contribute to your crowdfunding effort. I’m very impressed with how much time and effort you have put into developing your proposals as well as how you have managed the deliberation. You are a true leader in the community and I appreciate all your efforts.

1 Like

Let’s say you vote on every single governance proposal.

In our current system, all other proposals being equal, the amount of governance rewards the active voter would receive per day is directly proportional to the number of governance proposals submitted in that single day.

I’m saying that we should change the rewards system so that the amount of governance rewards the active voter receives should not vary from day to day. By doing this, we should remove the attachment between the number of governance proposals submitted in a particular day and the governance rewards disbursed on that same day.

Currently, the only thing that changes governance rewards from a voter’s perspective is their individual voter participation record on the governance proposals that hit the NNS.



My personal opinion is that one of the flaws with the current rewards system of the NNS is

The more proposals that are submitted under a given topic, the more rewards are given out for that topic.


A quick example to demonstrate why this is a flaw in my mind.

Let’s imagine a bustling DeFi future on the Internet Computer, where 10 minutes is now too slow and all sort arbitrage opportunities exist if the ICP/XDR exchange range isn’t updated quickly enough.

If we now update the exchange rate to every 30 seconds (20X the number of exchange rate proposals per day) → this results in a sizable increase in the reward generated from exchange rate proposals

However, to me it doesn’t seem that the increase in exchange rate rewards is proportional to the intrinsic utility and value of the increasing the number of exchange rate proposals.

In this scenario, would you say that the overall IC and NNS voter community really benefits that much more from the increased exchange rate proposal volume?



This is why I believe the overall governance proposal rewards should be fixed on a daily basis.

I further believe that each proposal topic’s overall rewards should also be fixed on a daily basis, but I think a single topic such as governance and this proposal would be a good starting point to test this out before switching to a system in which all proposal topics have fixed rewards on a daily basis.

1 Like

Based on great community feedback from @anonymous, @icme, and @wpb, I have updated the proposal on May 8th, 2022 at ~5:30pm (PDT) to change the fixed governance proposal rewards time period basis from weekly to daily.

I have changed all references in the proposal from weekly to daily, and have included a clarification that the proposals included in a day’s fixed governance rewards distribution much be completed (i.e. reach a status of Rejected/Executed) during that same day.

4 Likes

Hi @justmythoughts, all

as agreed previously please find below a draft assessment of this proposal against our design goals. Feedback on this assessment is very welcome!

  • Decentralized & active: Slightly negative as voters will get the same governance rewards regardless of whether there are 10 or 1 governance proposals to be assessed.
  • Secure & available: Neutral.
  • Long-term thinking: Neutral.
  • Efficient & scalable: Slightly positive. The removal of the spam incentive for skewing rewards makes voting more efficient.
  • Reactive: Neutral.
  • Purposeful:
    • skew rewards - Positive. Removes the incentive to submit additional spam proposals.
    • bad content - Neutral.
  • Simple & accessible: Neutral.

Other questions/comments:

  • As already brought up by you, how should we calibrate the splitting parameter (75%)? Under which circumstances (and driven by which criteria) should we change it over time?
  • What happens on a day with no governance proposals? (apologies if this is already specified and I missed it)
1 Like

@bjoernek Thanks for your insightful feedback!

To respond to a few of your points



I would argue that this proposal does have long-term positives. Because voters receive a fixed amount of ICP (according to the inflation rate at the time) regardless of the number of proposals that are introduced on a given day, voters are not incentivized to approve proposals in order to allow proposal creators to submit more proposals without having to pay a reject cost (i.e. the whales that have been supporting ysyms’ proposals).

Also, unlike Proposal to covert from system based reward to voter based reward; to implement an accept quorum mechanism; and to return the reject cost to 1 ICP, this proposal ensures that the inflation rate of ICP stays on schedule according to the tokenomics parameters specified, allowing for a predictable inflation rate.



This proposal is a standalone solution for removing the financial or “rewards skew” incentives tied to creating spam proposal. I recommend that this proposal be passed in tandem with one of the other proposals that remove the advertisement/visibilitiy or “bad content” incentives for submitting spam proposals:



Great question!

In the spirit of changing as little variables as possible at a time, I chose 75% as it was the original intention behind the change to governance proposal weights introduced earlier this year via Proposal: 34485 - ICP Dashboard. This change was accompanied by a 30 day campaign to incentivize voter participation in which @wpb submitted 1 proposal per day to the NNS. Having 1 governance proposal per day submitted to the NNS (in total) meant that in a given day roughly 75% of staked rewards came from governance proposals.

This rewards percentage was provably shown to increase voter participation in the NNS, and so I believe it makes for a good percentage constant starting place.

Due to the recent spamming by ysyms, voters are receiving ~86% of their voting rewards from governance, yet the overall voter participation has not noticeably changed since the end of @wpb’s proposal campaign.

This shows that there’s diminishing returns in terms of the how much voting power will increase as voter rewards increase. I therefore disagree with the feedback and assessment with respect to “Decentralized and Active” that this change will have any meaningful impact on voter participation.

In fact, I would argue that with fewer spam proposals to clutter things up, this will incentivize voters to take a more active role in their voting.

1 Like