Assessing governance & voting enhancements

Short summary: To drive forward the discussion on how we can improve governance, especially to prevent spam proposals, we propose how new design proposals can be evaluated. We provide a first evaluation of some of the designs proposed in the forum, and we propose a roadmap on how to proceed with this discussion.

Background & goal

Caused by a number of submitted proposals that did not have any actionable content, there are flourishing discussions in the community on how to prevent such spam proposals. Often, these discussions go over and beyond the original spam issue and propose further improvements for other aspects of the voting process as well.

We are very happy to see how many interesting discussions were proposed and how many people actively participated in these discussions!

To evaluate different ideas and compare them with each other as well as with the current governance system, we think it is important to first define what goals the governance system should even achieve.

To this end, the aim of this post is to:

  1. Propose a set of governance goals that can be used to assess proposed solution and compare them with each other
  2. Summarize the different solutions against spam that have been proposed by the community and assess them against these goals
  3. Propose a roadmap towards improving governance.

What we ask from you

We are looking for feedback for all three points! That is whether you think the proposed goals make sense, whether you agree with our initial assessment of the existing design proposals, and whether you think the proposed way forward is reasonable.

Goals of the voting process

Why we propose goals

In order to discuss whether a proposed governance design is a good one, we first have to define and agree on what properties constitute a “good governance”.

Example: Imagine a governance system with a single trusted voter. If this voter never submits spam proposals, such a governance system would solve the spam problem. However, we can probably all agree that such a governance system would not be desirable to govern the Internet Computer as it is clearly not decentralized. Therefore, to fully understand whether a given governance design is desirable, it is important to consider all goals.

Such a set of goals will also allow us to compare different proposed designs. If a design A satisfies one goal more than another design B, A should be preferred to B. Of course, in practice, there will be many cases where design A achieves a certain goal better than B and another goal worse than B. In such cases, a list of defined goals is still helpful to make tradeoff decisions about which goals should be weighted more.

The goals that we propose

This is a list of goals that we propose to consider when evaluating governance designs and changes. These goals also influenced the current design of the NNS.

  • Decentralized & active: The governance is decentralized. That is, the voting power is distributed over many, independent entities and there is not one single or a few entities that can decide by themselves how the Internet Computer evolves. Also, there is a broad and active community meaning that many participants regularly interact with the governance and there is a variety of active voters (known neurons).
  • Secure & available: Malicious proposals, that would be against the interest of the majority, cannot bypass the voting process and be “voted through” by exploring limitations of the voting protocol. Moreover, the governance system is always available to take new proposals and process them.
  • Long-term thinking: Voters are incentivised to vote in the long term interest of the Internet Computer.
  • Efficient & scalable: The voting process remains practicable when the Internet Computer and its community increase in size over time. This includes ease of deployment (change is easy to program and test). Also, the voting process can be completed efficiently by voters. For example, it is efficient to identify worthy proposals and easy to vote.
  • Reactive: High priority proposals, for example urgent security patches, can be adopted and executed quickly.
  • Purposeful: Proposals should not be misused/bogus. For example not
    • Skew rewards without meaningful proposals
    • Bad content, display bad/inappropriate content to users
  • Simple & accessible: There is a low barrier for entry, meaning that users with limited commitment (small staked amounts, low dissolve delay) can propose new ideas and contribute to the discussion. The voters understand how the governance system works.

Of course we are very keen to also have a discussion on these goals and get input if we missed some important ones!

Initial assessment of designs proposed in the forum

Three general solutions against spam proposals that have been discussed in the forum are periodic followee confirmation, adjustment of all voting reward weights to 1, and voting in stages. We have assessed the above goals for each of them. There are additional solutions under discussion by the community which we could jointly add to the assessment.

We first present in an overview table how we assess the different goals in each of these proposed solutions compared to the current governance system.

We then give more details about how we arrived at these choices.

Overview assessment of proposed designs

More details regarding the assessments of the different designs

Periodic confirmation of followees
  • Decentralized & active: Improvement
    • Requires periodic confirmation of following and thus a more active interaction in the process.
  • Reactive: Worsening.
    • Only approx 190mn active voting power currently on governance topics.
    • A periodic reconfirmation of neuron following would presumably (at least initially) result in a similar active voting power for other topics as well (out of a total voting power of 410mn).
    • Thus, even if all voters voted, we would have to wait for the end of the voting period which is a show-stopper for urgent updates (e.g. update of subnet)
    • We consider this as being one of the most important goals to keeping the IC secure and thus do not recommend to implement this solution without further enhancements
  • Purposeful - no reward skew: Improvement
    • Removes the financial incentive to submit spam governance proposals.
    • Only works if default following for governance and non-governance will be set up identically.

@wpb, @Kyle_Langham: As you coordinated the discussion on periodic confirmation of followees, what are your thoughts on this assessment in particular on the point of reactivity. Has this already been covered in prior discussions ?

Reward weights back to 1
  • Decentralized & active: Worsening
    • After introducing the weighting scheme, voting participation increased from approx. 10% to 40%. Reverting to the old set-up might reduce participation in voting on governance proposals.
  • Purposeful - no reward skew: Improvement
    • Removes the financial incentive to submit spam governance proposals.
Voting in stages
  • Secure: Improvement
    • Additional hurdle against malicious proposals.
  • Efficient & scalable: Improvement.
    • Only proposals supported by a certain amount of voting power will be submitted to an overall vote. This prepares for a future with many more governance proposals.
    • Proposals are pre-screened before they reach the general audience. Thus the voting process becomes more efficient for the standard user.
  • Purposeful no reward skew: neutral/slight improvement.
    • More effort is required to get to the overall vote. However, it only partially addresses this issue, as there is still a financial incentive to bring spam proposals to the general vote in order to collect governance rewards.
  • Purposeful no bad content: Improvement.
    • Seems like a pragmatic way to not show inappropriate content as part of the overall vote.
  • Simple & accessible: neutral/slightly negative.
    • Makes it more difficult to get proposals to an overall voting stage. However, in order to get a proposal passed eventually, you need to gather prior support in forums anyway. Thus, this is not really an extra barrier.
    • The voting process becomes more complex.

@lastmjs: As you recently proposed a solution for voting in stages, do you agree on the above assessment and do you have any additional comments?

Roadmap and priorities

We would be happy if the lively discussion on this subject is continuing and look forward to also contribute in further evaluating proposed designs!

Before taking concrete actions we think it is also important to take a step back, systematically compare all discussed solutions with each other and think about whether we can combine other ideas to arrive at an even better design.

The NNS team is currently working heads down on the service nervous systems (SNSs), which we consider to be a key feature for the development of the ecosystem on the Internet Computer.

Therefore, we propose to include the work on spam proposals on the DFINITY roadmap but not prioritize it over the SNS work. This means that fully analyzing and implementing the spam proposal prevention cannot be addressed right away and will take more time.

We are looking forward to your inputs and suggestions on all of the above topics! Specifically, the discussion around spam proposal prevention will be led by @bjoernek.

Lara & Björn

9 Likes

I agree with your assessment of the highlighted goals as they apply to the periodic confirmation of Followees proposal (although I would make different assessments of some of the other goals not mentioned)…

The Reactive goal is worsening as you have described, but only for the short term. I think we will quickly move from 47% voter participation to 51% voting participation. It took about 1 week to go from less than 10% to over 40% when proposal weights and reset of default following for Governance were implemented. I believe this quick response from the community was assisted by the daily education proposals that were ongoing at the time of implementation, so word spread quickly. Hence, I think communication is a quick and easy solution to this problem that will get us to the threshold we need for Absolute Majority voting on proposals that need quick response.

I also think the minimum voting period for non governance proposals should be no more than 24 hours. In fact, I see nothing wrong with shortening that if necessary to say 4 - 8 hours. There are no public known neurons that offer a service to the community to vote independently on any topic other than Governance. This service is not needed yet, so we all follow Dfinity anyway. When Dfinity votes, so will everyone else. Hence, we don’t need the extra time (e.g. 4 days) that was originally requested for Governance proposals to also be applied to other topics.

One final solution that I think is reasonable is to clarify the definition of total voting power. If a neuron is consistently not voting, then should it really be counted in the total voting power calculation? It’s not an issue right now because of default following, which permanently gives all non active votes to Dfinity for All Topics. Most neurons will confirm their Followees if proposal 55651 is implemented, but anyone who doesn’t is not participating in governance. Since governance participation on the IC is defined by voting and not by staking, then should we really be counting neurons that never vote in that total voting power calculation? I think this is a fair question.

I highly recommend you include the proposal linked below from @Jarred-Sauce in this assessment. It was a late addition to the discussion, but I think it is a very simple and elegant solution that disincentives spam for advertisement and announcement (e.g. “bad content”). It penalizes the a spam proposer without penalizing a quality proposer and without penalizing the voter. It does this in a way that is scalable, simple, accessible, efficient, and secure.

4 Likes

@bjoernek

Might I suggest also looking at Proposal to fix governance proposal rewards at 75% on a daily basis

I’m curious how you and @lara might judge this proposal on each of the criteria you’ve described, in terms of its goal to limit the financial incentive behind submitting spam proposals.

I think fixing governance proposal rewards would specifically work very well in tandem with the “Voting in stages” proposal suggested by @lastmjs, especially since that proposal solves the advertisement/visibility incentives behind spam proposals, but does not solve the financial incentives.

1 Like

@bjoernek

Regarding your statement on the Periodic Confirmation of Followees proposal

Why did DFINITY then not make this point known when the proposal was in deliberation as this seems to be a potential security issue? And why did they not vote against this proposal?

I think it makes a lot of sense to keep as much staked ICP voting as possible given the fact that keeping voting power locked up in the NNS and voting (whether that voting is passive or active) protects the IC from a large actor (say a foreign country or potential bad actor like a country or Facebook) from flash buying as much ICP as possible and passing a proposal to degrade the network (such as attacking the network with an improper exchange rate proposal or governance proposal).


Also, reading your statement in the context that the given proposal has already passed - are you saying that as it stands now the DFINITY Foundation is against or has hesitations about implementing the Periodic Confirmation of Followees proposal?

1 Like

I would like to give feedback on my experience with voting. I do follow some of my voting power to others and also check several times a day to see if there are new proposals to vote on, not sure but I feel there a proposals that I have not voted on.

I would like to give 100% to voting and if a proposal is limited to 4 - 8 hours then I feel I am not giving or been given that choice. As the NNS cannot broadcast a new proposal to neurons owners would a timeframe for voting for proposals work in a world community.

Do some proposals also end depending on the percent of the votes.

I feel that I not given the ability to give100% voting as a new neuron owner.

Having information about the voting I have missed out on could help and motivate me to understand my misgivings and the motivation how to understand and vote better and therefor achieve the goals of a better participation rate.

I am happy to reactivate my followers in a given period as at the moment this default system gives me the confidence that I will receive the rewards I am owed for my investment, time and belief in this project.

Would you please clarify what proposal topics you vote on manually other than Governance proposals? How long do you need to vote on them?

There are a lot of Subnet Managements, System Canister Management, and Node Admin proposals that have been occurring lately. As an example, there were approximately 40 Subnet Management proposals throughout the day last Friday. Most of those are voted by Absolute Majority almost immediately when Dfinity votes, but I have noticed a few are not voted immediately. Perhaps those are the proposals you have been voting manually.

1 Like

Thank you @justmythoughts: Yes this makes sense and I will include in the assessment.

1 Like

This is a fair point and we should have identified and raised this point earlier. Going forward, I hope that the above goals will facilitate the discussion and I will act as an entry point from the side of DFINITY.

2 Likes

I think periodic confirmation of followees is a useful building block to improve governance. And yes, given the identified issue, we should analyze and discuss how this issue can be addressed, also in conjunctions with other ideas discussed in the forums.

2 Likes

Thank you @wpb, I agree that education can and should be a part of the effort to enhance & improve governance. However, I think we should aim for having a solid majority for urgent updates, so that we can reach a conclusion quickly on urgent subnet updates in a variety of circumstances (just about 50% might be a bit tight).

3 Likes

Yes, this is a very good question! I also started to think about active voting power which might be a useful enhancement for the periodic followee confirmation. One drawback that I see: Active voting power is currently around 195mn, out which 90mn is DFINITY. So introducing active voting power now (say for all categories) would give DFINITY close to 50% (of the active voting power). So we would need to see how to encourage and increase active voting beforehand.

2 Likes

Hi @bjoernek and @lara,

Thanks for putting these thoughts down and sharing with the community. I really appreciate the gift that is a mental framework for evaluating new ideas and proposals. I agree with the 9 design objectives, with the very minor caveat that Efficiency should also include the ease of deployment (ie, is the change easy to program and test).

I also agree with your evaluation of Periodic Confirmation of Followees. I’ll add that the affect on the design objective of Reactive will decrease over time as voting power skews towards active participants from the natural course of staking. This is caused by two trends: new stakers on the NNS tend to be voting participants and neurons dissolving to less than 6-months tend to be skewed towards non-voting participants. It could be that over the next few months a stronger absolute majority of participants is formed.

In terms of prioritization, I fully agree with prioritizing the SNS development and deployment over measures to reduce spam. I also invite the community to think of ways in which we can reduce the spam in the meantime while also: 1) not diverting resources from SNS development, 2) skewing rewards back towards non-active participants (this is said not out of greed or fairness, but rather because I’m highly doubtful that any such proposal would pass) and 3) is acceptable given the 9 design objectives above.

6 Likes

Thanks for the feedback @Kyle_Langham !
Adding ease of deployment to the efficiency goal makes sense and this is now included in the post. I also did some small alignments for consistency on this category which is now called Efficient & scalable throughout the text (in the original version I had sometimes “Efficient” and sometimes “Efficient & scalable”).

1 Like

The following vote as I understand it was placed within the system by Dfinity and I don’t see too many problems with it.

What I read is that it is the active not the inactive that are creating problems by looking through the code and seeing how and to do spamming. Yet I see more about how to make the inactive pay the price.

Please understand that I love to see solutions and the forum trying to do something to fix the active problems but I have to give my opposite view.

It seems to me that we should stop the spammers and their behavior.

As I understand the spamming problem
There are neuron owners that have large quantities of coins but more importantly receive many more rewards than most for voting.

A demonstration I saw was about 2 examples that referred to 1 holder having 60,000 icp while the other had 32,000 icp.

So I believe, while we can follow and receive rewards from following and there seems to be much to vote on each day that some feel they can earn more rewards by putting up bogus proposals to earn further rewards.

I see it was proposed to raise the cost per proposals for failure around a model of coins equal for all holders that put forward a proposal.

I believe the 2 examples of the holders above would receive 100s of icp a year while I will receive 10s of icp a year for the same voting.while the cost of a proposal is the same for all.

This could make it costly for myself but for those with larger amounts of coins would still feel this is not expensive for them and may continue to spam.

If you were to change this to a percentage of your whole stake then this would make it more equal. The only ones that would complain are those spamming.

We would then find those same clever people, retain their advantage by setting up smaller neurons for a proposal and for that I would think that we could calculate the percentage on the anchor to include all neurons.

But then I have never put forward a proposal and I am not sure of the process other than seeing what I feel is a proposal for spammers that are laughing at us right now and myself the follower feeling bad about myself.

Maybe I don’t understand the issue correctly and maybe I will see my stupidity at a later time but at this time you must forgive me for feeling the need to voice my opinion.

1 Like

Here are a few things to consider to address this issue:
1 - I think active voting power will quickly reach into the 75+% level very soon after periodic Followee confirmation is implemented. Hence, this concern will likely be resolved naturally.
2 - Dfinity holds voting power in many neurons according to @diegop. If you find that you have too much voting power compared to the rest of the NNS, then you can choose to not vote with some of the neurons.
3 - To be honest, I would rather start with Dfinity having too much voting power in the very beginning than to continue with the voting participation imbalance that is currently caused by default following on All Topics. I think this is a minor issue and would be glad for Dfinity to have too much voting power if active voting power is adopted as the reference point for voter participation. I like this enhancement a lot.
4 - There is always the option of setting up some of the Dfinity neurons to follow other public known neurons in order to ensure that the Dfinity neurons are maximizing voting rewards during a transition to increased voter participation. Since Dfinity owns their voting power, they can choose to follow any other neuron for any reason they want just like everyone else. You could even use this as an incentive for new public neurons to surface by giving them a voice.

Those were just several ideas that come to mind to address the concern. However, I’m not really that concerned. I think the issue will quickly go away on it’s own.

1 Like

As I understand voting: If you have a stake under 6 months then you get no rewards but I not so sure of that. I signed into the NNS and was getting familiar with the information. I filtered proposals that were rejected and started viewing these and I assume they are the spam that is mentioned.

Each one I went through I noted that the information displayed: dissolve delay < 6 months and 1 with created after proposal.

This was displayed within the Ineligible Neurons information:
The following neurons had a dissolve delay of less than 6 months at the time the proposal was submitted, or were created after the proposal was submitted, and therefore are not eligible to vote on it:

But I can also see that these proposal where voted on by the adopt or reject numbers.

Too many thoughts and question are going through my head so I would rather some one tell me that ineligible persons are not getting to create proposal and get rewards.

Did my last comment make this discussion redundant?

Short summary: To drive forward the discussion on how we can improve governance, especially to prevent spam proposals, we propose how new design proposals can be evaluated. We provide a first evaluation of some of the designs proposed in the forum, and we propose a roadmap on how to proceed with this discussion.

If those who have less than 6 months can’t make proposals then half or most of the spam is gone and continuity picking on the inactive followers to remove them from receiving rewards is self governance for your personal gain. Do the inactive know how you speak about them like this and are they aware this forum exists and want their participation?

I love the default setting that Dfinity set, shows a set of values and good leadership but the rot I see coming into this system is the greed and selfishness from within and not just from the spammers.

Hi @kvic
To make sure that I understand your thought process and idea:

  • You observed that the neurons which are making spam proposals have typically a dissolve delay smaller than 6 months.
  • Hence you propose that only neurons with dissolve delay bigger than 6 months should be able to submit proposals.

Is this a fair summary? From my perspective such a rule would not create a real hurdle to spammers. He/she could simple use one neuron with dissolve delay greater than 6 months which is easy to set up.

To make it slightly more precise: If the dissolve delay of your neuron is below 6 months, then your voting power and allocation of voting rewards is zero.

Your interest in my mindset is interesting when I feel I have observed a pattern about a problem with spammers that is the concern of this discussion.

I feel that the pattern observed is the mindset of the problem that you are referring to. That spammers can purchase or set up a neuron with 1 icp and then cause all the spamming they like with little risk. That all the observed spam proposals had the same pattern of being under the 6 month period. Your issue seems to be with me and not seeing my observation.

I am not trying to be fair, if you want to behave improper then I will provide my point of view but I see again you are protecting the improper and that I am unfair.

You are right, I want those too gutless to invest into the nns for greater than 6 months that have not risked their investment for better not to have a say in the nns but you would prefer to protect them and ridiculed me as having the wrong mindset.

I wonder about your mindset.

I wonder if the spammers mindset is that if a vote is designed to un-reward those neurons that spam they will lose very little but you prefer they stay.

1 Like