Proposal to incentivize the diversification of followees in the NNS

I like governance and tokenomics that drive voluntary behavior rather than force action on others. Thus, I fell like Periodic Confirmation of Neuron Followees has a bit of what we call a “code smell” in the programming world. It is well thought out but feels a bit heavy-handed. I’m proposing the following as an alternative. A carrot instead of a stick if you will.

Objectives

  • Increase decentralization of the NNS.
  • Decrease the incentive for spam proposals as the number of maximally diversified followers reaches 100%.
  • Encourage the creation of new organizations that will create named neurons.

Solution

*Adjust the credit received for each vote by a factor dictated by a logarithmic function(someone better at math find this function) such that each additional followed that controls <10% of the NNS voting power increased the reward toward 1. For example(1/10 = * 0.02, 5/10 = * .3, 7/10 = .75, 8/10 = .95, >10/10 = 1.

  • Manual votes receive full credit.

Implementation for Proposed Solution

When rewards are calculated, the system determines if the neuron voted manually on a proposal. If they did then they get full credit. If they voted via a follow, the ratio is determined and their credit is multiplied by that factor.

Neurons that control more than 10% of the voting power should be displayed with a red background and a warning that following fewer than 10 other non-red neurons may result in a reduction in rewards.

How does this affects me as an NNS voter?

  • If you vote manually you need to make no changes to get full credit.
  • If you follow neurons you need to find at-least 10 dependable neurons that vote on every proposal or have a plan to follow someone who does.

Why this proposal works

  • People want their rewards so they will work together to produce enough qualifying neurons for everyone to get their maximum rewards.

NNS App UI Changes

  • Add a calculation of the total following influence and if a neuron is over 10% it should be highlighted in red.
  • Add a calculation to determine if a neuron votes regularly…if they have not voted in the last X number of days, highlight them yellow so that it is easy for users to tell if they have qualified neruons.
  • Maybe mark good to go neurons in green?

Arguments Against/Potential Issues

  1. This will not stop the current spammer from submitting NNS Proposals.

Rebuttal: It will eventually.

  1. People can just set up 10 of their own neurons to follow that don’t have influence and have those follow just a few neurons.

Rebuttal: This seems like a lot of work once we have > 10 named neurons in the system. It will be much easier to randomly select neurons from the list.

  1. If a neuron gets too popular it will become red and users will have to change their neuron following.

Rebuttal: Good.

Discussion Lead

@skilesare

Thanks to @wpb and @Kyle_Langham on the work for the periotic confirmation of named neurons proposal. It is a valid solution and I’m just trying to stir up debate.

1 Like

Would you please provide clarification on a few things…

  1. are you intending for this to apply to all proposal topics or just governance topics?
  2. If it applies to only governance, then how does it address the voting participation imbalance that incentivizes spam?
  3. If it applies to all topics, then how do we find 10 followees that vote on exchange rate, system canister management, etc proposals that are considered routine business?
  4. Is it really that hard to push a button 2x per year when you are already performing other tasks?

I do like ideas that incentivize decentralization and making sure public known neurons don’t end up casting too much voting power when they vote.

  1. I’d say all topics. We do eventually want them all decentralized. Having 10 independent entities confirming the XDR to cycle ratio makes it very hard to hack.

  2. I’d apply it to all. If it applies just to governance then it eventually balances out the spam incentivization in the same way as Periodic Confirmation of Neurons. If everyone wants the full reward they need to edit their neurons asap and thus there is no more advantage for the spam.

  3. Until we have qualified neurons everyone is on the same playing field…or they are not because some ingenious person creates an (independent) bot to vote and shares it with his friends. Eventually, word leaks or code leaks and we have 20 or so bots to choose from. In meantime someone could just ask people to pay them to vote for them. Or follow the 17 named ICPMN neurons for all topics. If they are following ICA/DFINITY then they get a vote, but action can be taken by those voters to divert their vote if required. It increases the decentralization factor even if people just go through the motions. In fact, since manual voting gets you the same votes as everyone else it would be advantageous to run your own bot, or subscribe to a bot with a hotkey. I’ll allow that maybe it makes sense to start this with governance and scale-out from there.

  4. It is not hard, but it adds complexity to the code. Usability complexity can be masked by good interfaces. Code complexity can make the system difficult to change in the future. This proposal again is a two-line fix where I can tell you what line needs to be added( add a member of ballots called manual and set it at ic/governance.rs at 79bbd3177f6532037eb29d62b3e52a364a8103ee · dfinity/ic · GitHub and change the voting power by the ratio after ic/governance.rs at 79bbd3177f6532037eb29d62b3e52a364a8103ee · dfinity/ic · GitHub). I’ll grant that adding a property to each ballot may be a bridge too far from a data perspective as the reward function is very heavy already. Governance is difficult. Creating governance function that doesn’t blow the cycle limit is harder :joy:

1 Like

The default configuration on a neuron was set up by someone who clearly understood the problems people would face and we should complement this by extending that understanding.

I decided to study and participate without any neurons so I am not part of the problem but looking at the project to stake in the future.

I read comments that as a neuron owner you are bombarded with many proposals and this seems problematic to me when you may not have the skills required to vote and therefore become part of the problem of participation.

Would it be better to separate proposals into categories and then my neuron can be configured to subjects I can participate in?

Raising the participation rate by default.

Don’t forget I have not experienced this process yet and need your feedback to understand.

This is exactly how it works. There are a number of categories. It could be argued that “governance” could be further subdivided. As we get a larger set of evidence we can suggest this.

The subdivided then should be broken down to options and checkbox’s within a category which has been decided by the upper level group that has dealt with spam and have the expertise for those with less or the status of following which may justify a different level of reward?

Is there a link where I can view the neuron structure.

I am still undecided on this idea. I do like that it incentivizes decentralization. I think there are two aspects that need to be considered further.

  1. Voting with multiple Followees gets increasingly risky as the number of Followees go up. In the worst case scenario with 10 Followees, if they vote 5 Yes and 4 No, then your neuron will Abstain from voting. Hence, incentivizing many Followees comes with this added risk. Perhaps that is a good feature because it could drive high expectations from public known neurons, but at this time it is questionable to me.
  2. There are not enough incentives for organizations to become registered known neurons. It’s a lot of work to fulfill that status. Not many organizations have taken up the challenge to pursue that designation yet. I’m inclined to think it would be preferred for to have more organizations offering to be public neurons that can be followed, although there is nothing wrong with it being individuals. Something doesn’t seem right about fulfilling these Followee incentives with private neurons. A way to game the system would be to create 10 neurons that all follow Dfinity and then set those 10 neurons as Followees for your main neuron(s). Perhaps that is valid, but at this time doesn’t seem right to me.

At this time I don’t have actionable suggestions to offer, but will think about it more.

2 Likes

I feel like the strange abstain vote from followers should break down after a certain number of followees. Or rather abstain should never be an option as reject is the status quo. If it is a tie, reject. If more vote accept than reject it should always be accept. Just get abstain out of the equation and it is no longer an issue.

1 Like

Incentivize:
Motivate or encourage (someone) to do something; provide with an incentive.

You must have achieved your goal as you now conceive that you have achieved your outcome and now say, you have: created a problem while blaming others.

There are no bad organization, just bad people working or participating there:
As always there are a number within that will undermine for their personal gain and pertain that it is their right while knowingly doing something to benefit themselves and undermine the purpose of a process with the attitude of, I don’t care.

You say you want to incentivize with the intention of being rewarded from those who you want to punish then you create bad will and have given more reward to those who undermine your intentions.

Disincentive:
Can also be an incentive to motivate those who feel they don’t have the expertise, desire or just not sure because of the lack of information and don’t have the expertise or are unable to create what you call spam.

These are the staker-s that most likely want what’s best for this community

You don’t want to help those who need help to participate from the lack of information or understanding why they don’t participate, to reward yourselves and you have allowed greed and bad behavior.

You will also see comments from others using profanity who are disappointed and have become angry from your punishing the weak and rewarding the strong bad players.

I am a newbie here because I believe in this project and have stake my savings for its success and want to be involved. I was not part of what is pointed out as a large problem because I didn’t stake till I had done my homework and read the ICP documentation as opposed to asking questions in this forum as I soon found that there was no help or I was left hanging with poor answers.

I would like to see this forum be used as a place of knowledge and to help those who you punish to bring more participation not find ways to reward yourselves and create the holes in your proposals that spammers have hacked.