Periodic confirmation - design

:point_up_2: :point_up_2: :point_up_2:

Lots of great points. I liked this one the most :heart_on_fire:

@lara I think another point is that it needs to be made easier for users to get a sense of which are good known neurons to follow on which topics, based on that user’s preferences. Otherwise most users will just click on the quickest and easiest known neuron they can find in the list to get through the recomfirmation process as painlessly as possible (which would defeat the purpose).

Important things to consider are:

  • does it even make sense to list sleeper neurons?
  • why not show some very simple metrics next to each known neuron that provide a high level overview of how this neuron has voted in the last 6 months? e.g.
    • Percentage of proposals voted yes, no, and none for that specific topic, providing a quick indication of activity and genuine consideration - e.g. TAGGR rejects proposals for some topics 100% of the time (so probably not a good neuron to follow for that specific topic, but a potentially good neuron to follow on a selection of other topics. For example, I cast my vote on TAGGR to inform TAGGR’s IC OS election vote, and other users do the same for this and other topics)
    • The average length of deliberation before the neuron decided to vote for that topic - e.g. GEEKFACTORY and some other known neurons vote practically instantly, consistently, on numerous topics (so clearly aren’t performing any kind of due diligence and probably shouldn’t be followed for those topics, unless you’d like to reward complaicency and encourage blind voting). Also, it would be worth differentiating between average speed of yes votes vs average speed of no votes. When the WaterNeuron DAO reaches consensus this triggers a vote if it’s a ‘yes’, whereas a ‘no’ will not be cast until the last hour of the voting period (at least with the current implementation).
    • At the very least the known neuron description should be visible in the dapp (currently it’s just the name). As a side note, the description should be allowed to be updated without requiring the neuron to change name (as is currently the case). Things change over time, and the description needs to be able to reflect important changes regarding how the neuron is managed.
  • how are the known neurons listed in the dapp ordered?
    • Why?
    • Is this a desirable bias?
    • Why not randomise it?
    • Why not allow the list to be dynamically sorted by the user based on the stat(s) that they’re interested in?

Without making information like this easily and immediately available to users when setting up their followees, I doubt we’re going to see much improvement in the intentfullness with which neurons other than DFINITY are followed.

I’m really glad to see these sorts of conversations taking place, and it does sound like we’re steadily moving in the right direction in terms of governance decentralisation :slight_smile:

2 Likes

In addition to this, it would be great if each known neuron were able to signal which proposal topics where they specialize and for those known neurons to be moved to the top of the list for that proposal topic. In fact, I’m not even sure why we would list all known neurons for every proposal topic at all. It seems like only known neurons that specialize in the topic should be listed as a known neuron followee option for that topic. Of course, you should be able to enter any neuron ID you want and it seems reasonable to make it relatively easy to see all known neurons, but by default we should make some attempt as filtering the known neuron followee options to neurons that have claimed a specialty in the topic.

2 Likes

In my opinion, it’s better to distribute the VP (and rewards) among a set of active actors rather than removing it from the count. That way, we avoid inflating DFINITY’s VP close to 50% and genuinely improve decentralization. I would love to hear your thoughts on this.

2 Likes

This would be very good. There’d probably also need to be a way of verifying and/or dissuading those who provide a disingenuous signal.

I’ve just noticed that a lot of what we’re talking about falls under the Plasma component of the IC Roadmap :star_struck:

Engagement platform for named neurons: Make information about named neurons’ voting behavior easily accessible for voters to make informed decisions whom to follow.

1 Like

I suppose a way of accomplishing that is to use the register known neuron proposal type to register each known neuron for each topic. That way the NNS can decide who should be on the list of known neurons for each topic. It could work very similar to neuron management proposals where you submit a separate proposal to change your followees for every topic. In this case, the register known neuron proposal could be submitted to register the known neuron for each topic where they make a commitment and the full NNS could decide. The same proposal type could also be used to deregister known neurons from the proposal topic if people feel they are doing a poor job.

1 Like

I think I agree if I understand you correctly. I’m all for ideas that create incentives for people and organizations to get involved in technical proposal reviews and that create incentives for neuron owners to follow them. I think Voting Rewards Function on the dashboard should be a cap on voting rewards that are distributed to all NNS governance participants, but that the distribution should include greater incentives for those that put in more work. Hence, I think it is a horrible waste of resources to simply forfeit governance rewards when people choose not to participate while we have a gaping hole in the decentralization of the NNS. We need to be putting resources into developing people and organizations that can make real contributions to NNS governance at the protocol level. That’s my first priority, but if we are going to continue not incentivizing technical contributions to NNS governance through the NNS, then I think a better use of forfeited voting rewards would be to distribute them to everyone who is voting as per the original tokenomics design, which would indeed include DFINITY having a higher voting power.

That said, I already showed in a previous comment that DFINITY already triggers half of the voting power that is cast on Governance and SNS & Neuron’s Fund proposals today. They may not own 50% of total voting power in the NNS, but there are a lot of people willing to follow them and that is their right. It doesn’t require 50% total voting power in the NNS to execute a proposal. Hence, I don’t think we should avoiding changes like periodic confirmation due to the concern about how much voting power is controlled by DFINITY. If DFINITY ends up with an ability to trigger more than 50% voting power, then based on prior voting behavior I think DFINITY will become less likely to vote on controversial topics and they will seek ways to shake away their followers so they don’t trigger so much voting power. It’s happened several times before. I think DFINITY has a genuine and demonstrated interest in advancing decentralization of the NNS. I think our focus should be on cultivating people and organizations that can take a more active role in the decentralization of the NNS on technical topics and rewarding them for that work.

2 Likes

I mostly agree, @wpb. I’m just concerned that this proposal, as it stands, relies on an optimistic assumption about increased participation. If this assumption proves incorrect, DFINITY could gain more than 50% control over certain topics (without followers), which is a threshold we must avoid crossing at all costs, at least for legal reasons.

Also, if this is pushed to the SNSs later on, there is a good chance that most of them end up with the team having more than 50% as well.

1 Like

This is a very reasonable position and I’m sure many will vote on this proposal with this concern in mind. If you don’t mind, I’d like to give a little more history about how we have already been in this position and how it was resolved by DFINITY. I wrote a medium article about it in May 2022.

At genesis, the Governance proposal topic was included in the All Topics catch all category AND all neurons were configured by default to follow ICA (neuron 28), which is controlled by DFINITY. Decisions on proposals were also made by Absolute Majority for the first 6 months after genesis. This meant that over 50% of total voting power in the NNS was required to vote to adopt in order for it to pass. If this threshold was not reached, then the proposal would always be rejected. It quickly became obvious that people were not voting manually on Governance proposals, so the only way that they could pass is if DFINITY voted. Since for the Governance topic DFINITY wanted the community to decide the vote, they were forced to wait until the final hours of the voting period and then cast a vote that matched the majority at the time.

This raised a lot of red flags of course, so then the Simple Majority voting mechanism was implemented. This new mechanism executes proposals based on majority of votes cast and only requires a minimum of 3% total voting power to vote to adopt in order for a proposal to execute. So by Nov 2021, DFINITY didn’t have to vote in order for Governance proposals to reach consensus and they actively abstained on all Governance proposals. They really had no choice because voting on any Governance proposal meant that they triggered the remainder of the voting power in the NNS (all 100% TVP). DFINITY did not vote on any Governance proposals at all between early Nov 2021 and late Feb 2022. This means that DFINITY had no voice in the outcome of those proposals.

So the solution to this problem that DFINITY created was to remove the Governance proposal topic from the All Topics catch all category and to increase the weight of Governance proposals compared to all other proposals. They also created the Register Known Neuron proposal topic specifically so the community could make themselves known as reliable Followee options. These changes were implemented by late Feb 2022. It drove a lot of people to start participating in NNS governance, which had a huge impact on the decentralization of the Governance proposal topic. The SNS & Neuron’s Fund proposal topic was implemented later and followed the same pattern as the Governance topic.

So if pessimistic assumptions on the impact of periodic confirmation turn out to be true and DFINITY gains more than 50% total voting power on the Governance and SNS & Neuron’s Fund topics, then all it will do is paralyze the voice that DFINITY has on these topics. They will most definitely be motivated to drive further change. Perhaps that will be for legal reasons. Or perhaps that is because they are among the biggest believers in decentralization.

I don’t believe that any SNS projects had default following set up for the team neuron. Hence, all following that exists for SNS project is already by active choice by the neuron owners. I’m not aware that this issue needs to be addressed on any SNS projects.

2 Likes

I hope so.

Just in case we don’t want the codebases to diverge too much.

1 Like

too late for the original 8 year gang.

this is what delegating your NNS vote to a followee is supposed to be, which you want to change. no difference at all.

1 Like

Do you agree that what you quote as your concern is

  1. already the case in today’s design and
  2. would also be the case if we implemented a reset of following instead of the design proposed here?

Already today “a neuron which votes on all proposals on a given day will receive the pro-rata share in terms of total NNS voting power of the total daily available rewards.” (from the post you also quoted)
In particular, this total NNS voting power includes the sleepers’ voting power.

If you agree with this, are you then just saying that you think this aspect of the governance is not good?
If this is not really a distinguishing factor between the options we discuss here, I’d rather have a separate discussion on this. It seems to me that none of the options exclude changing this later if the NNS wishes to do so.

Delegating your NNS vote to a Followee does not in any way absolve you from the responsibility of making sure your own neuron is always participating in NNS governance. ICP is a governance token. We don’t get paid staking rewards by the NNS. We get paid voting rewards. If something changes because the NNS decides that the current design is not working as intended, it is up to you to change accordingly. When effort is made to get the word out about changes you cannot be absent or ignore the changes.

With WaterNeuron, when you stake ICP you get nICP, which is not a governance token. The ICP is deposited into a neuron that the WTN token holders control. Hence, your nICP earns staking rewards and has no voting responsibility.

Staking with the NNS and with WaterNeuron are fundamentally different.

I can relate to this as an 8 year gang member myself. It’s my largest investment in the internet computer ecosystem by far. However, we all knew when we decided to stake that staking alone is not enough to earn rewards. There are no staking rewards with ICP…there is only voting rewards. If you think you can set and forget your neuron and earn rewards indefinitely then you are at high risk of missing changes that require you to take additional action. The responsibility that you accept when you decide to stake ICP in the NNS is that you will govern the NNS. You will not get paid rewards for that activity if you don’t remain aware of changes that have been adopted by the NNS. The NNS governing body is responsible for making sure that the value of the governance rewards that are provided are maximized, so if there are holes in the system that are preventing optimal governance then it is well within the rights of NNS participants to make changes that help mitigate those problems. While there was not an alternative in the first 3 years that paid a return on staking alone, one exists now in the form of WaterNeuron.

Yes, this is the system we have today. Because the referenced change switched from “used NNS voting power” to “total NNS voting power” in the daily rewards calculation, sleeper neurons are currently diluting the rewards that are allocated to everyone who is actively participating in NNS governance.

Indeed I do believe that this referenced change was not good for governance (since it hasn’t been used to help advance decentralization in the ways described). However, I think taking the concern I have expressed into consideration now is fundamental for the implementation of the intent of the original periodic confirmation proposal. That proposal was adopted at a time when daily rewards were distributed to all voting power that voted, not to all voting power that existed. Even though the sleeper neurons are not getting rewards when they don’t vote today, they are diluting the rewards for people who do and they will continue doing so at a higher rate if this current design is implemented. People voted for this proposal knowing that the daily reward distribution is divided among all voting neurons. I believe that people voted for this proposal because they believe that sleeper neurons should not be diluting the voting rewards of active participants and they should not be the cause of spam (which was solved by reducing he proposal weight for Governance from 20x to 1x, not by the implementation of proposal 80970). You have a choice in how the voting rewards are distributed with this design and I believe choosing to implement it according to total voting power goes against the original intent of the periodic confirmation proposal.

If you were to distribute voting rewards based on the Adjusted Voting Power modification presented in this design, then implementation of this design would completely remove the problem of sleeper neurons and would get us back to the original reward distribution design. All voting rewards would be distributed to neurons that are actively participating in governance.

In the event that we are trying to lower inflation by continuing on this current design of distributing rewards based on total voting power instead of active voting power, then perhaps a more appropriate way of handling that would be to decreasing the size of the Voting Reward Function so the daily reward pie is smaller.

2 Likes

@wpb makes a very good point. There’s a distinction between total potential voting power (that Wenzel is refering to above) and total adjusted voting power (based on activity/reconfirmation) in this design. If the adjusted voting power is what’s used for determining the outcome of the proposal, then surely adjusted voting power would also be the most appropriate way of determining the rewards for having voted on that proposal. I believe the implementation (in addition to how it needs to be described) would be simpler this way.

:point_up_2: I’m not convinced there’s a need for drawing this distinction, unless it’s an intentional move to reduce inflation. I strongly agree that that should be handled separately and explicitly, if that is the intent.

Would you be able to clarify the reasons for drawing this distinction between total ‘potential’ and total ‘adjusted’ voting power (why not just use ‘adjusted’ vp in both cases)? This clarification would help me to understand this proposal a lot better :slight_smile:

1 Like

yes, that’s why we set followees. i haven’t messed with my settings since 2021. that doesn’t mean i’m inactive. it’s just annoying to have people think we need a babysitter telling us to press some pointless button on a timer (which can apparently be automated around anyway).

that is true. the way you are punished if you’re not paying attention is if your followee stops voting. so, you have to keep an eye on things.

like i said before, if you’re trying to decentralize the voting power from following dfinity, a one-time reset / confirmation of followees is sufficient, unless i’m missing something. there is no need to repeat it every few months and waste everyone’s time.

Dubious speculation: The idea might be to move VP to WaterNeuron or a new canister currently being developed by some ex-Dfinity members, where you wouldn’t need to click.

I agree that doing it periodically doesn’t make much sense since it’s going to be programmed away.

After more than 2 weeks, let me summarize the discussion and propose some edits to the original design based on the received feedback.

We propose the following changes to the original design.

  • A few different ideas were shared with respect to what is the right period after which the voting power adjustment is applied. After the discussion, we propose that the voting power adjustment starts after 6 months and decreases until the minimum is reached at 7 months. As pointed out by community members, this nicely means that one relevant action every half year is sufficient for neurons to keep getting rewards.
  • For inactive neurons, it was discussed whether in addition to the voting power adjustment the following settings should also be completely removed. Based on the discussion here and because this is closer to the original proposal, we propose to add such a reset of followees to the design.

Let us also address some other alternatives that were raised.

  • Decisions could be based on the full voting power rather than the adjusted voting power.
    In particular it was discussed whether the current design comes with a significant risk for 51% attacks.
    • Using the non-adjusted voting power would be a risk for urgent proposals as explained in the “Alternatives considered” of the original post.
    • As argued in the discussion, with the new design it is still expensive to launch a 51% attack: sleeper neurons’ tokens are still locked and thus an attacker would have to buy a large portion of the liquid ICP tokens (see Bjoern’s analysis).
    • For all actively voting neurons, the relative voting power for decision might increase. For neurons with a lot of (sleeper) followers, e.g., DFINITY, the induced voting power including the followers would decrease as the sleeper neurons would not vote anymore. Therefore, this is overall a step in the right direction.
  • The rewards could be based on the adjusted voting power rather than the potential voting power.
    • The main reasons why we propose to base the reward on the potential voting power are
      1. Already today, the voting reward computation is taking into account the non-voting neuron’s voting power. The initial intention of the design was to keep this as similar as possible.
      2. It can be considered a nice side effect of this feature that it would potentially decrease inflation, as mentioned for example in this post and this message in another post. Likely, as the sleeper neurons would not get any rewards, the effect of this feature is that there is less maturity distributed. If in contrast the adjusted voting power is considered for the rewards, this would increase the maturity, and thus likely increase the inflation, compared to today.
  • Rather than having periodic confirmation, there could be a one-off reset, possibly also with batches of neurons being reset at a time.
    • The main concern is that it is hard to predict whether it would be possible to make fast decisions in cases of hotfixes. If neurons are reset in batches, it is also unclear what should be done if the first batch is reset and we then observe that it is impossible to reach 50% - would the next batch still also be reset?
    • Another motivation for a regular reset that was raised is that users might die or lose their keys. It is thus advantageous to regularly consider who are the voters who are still around and active.

Overall, we think the proposed design with these adjustments reflects the main intent of the original proposal, namely neurons having to regularly reconsider following and a reset of following if this is not done. In addition, it ensures that default following is reset and has the side effect of reducing inflation, which some community members find advantageous.

It is impossible to know what other intentions voters had when voting on the original proposal.
If more details are required to find an agreement, maybe a new motion proposal is needed that replaces the original one.

4 Likes

FWIW, I would probably do a one-off batched reset, progressing as long as we remain safely above 50%. I believe the chances of us not reaching 50% are similar to DFINITY owning more than 50% of the adjusted VP. The proposed idea feels like too much work for everyone, with an uncertain outcome.

If I remember correctly, there are a few L1 DAOs (Polkadot?, Cardano?) that use councils in case an emergency hotfix needs to be approved. Such a council could be composed of named neurons, SNS, etc.

1 Like

Thank you for this summary @lara. The changes seem appropriate and the summary of alternatives that were raised seem accurate. My only sticking point is that the reward distribution is still based off potential voting power instead of actual active (aka adjusted) voting power. This means the governance reward distribution and proposal decisions would be based off different mechanisms and we are using this mechanism to control ICP price (via inflation control) instead of using it exclusively to reward governance participation. I’m not opposed to inflation control, but I think it should not be done in the context of governance reward distribution.

I would actually prefer to see a new motion proposal to replace the original one. Is this something that you are planning to do or does this need to be community led? Since I was an original author of the periodic confirmation proposal, I would be happy to put forward a refined proposal if you prefer for the discussion to be community led. If you plan for this to be DFINITY led, then will you please consider explicitly raising this question of which of these two mechanisms should be used to distribute rewards?

1 Like

Thanks for this summary @lara. I’m very much in favour of everything this proposal seeks to achieve, except for what feels to me like a misguided approach to reducing inflation (which weakens the entire proposal in my opinion).

Could you clarify why it would increase total maturity? Surely the difference (compared to today) would be zero-sum. The loss for sleeper neurons would be equivalent to the gain for active neurons.

I’d like to clarify what I mean by misguided to make the reasons for my opinion clearer. Sleeper neurons indicate that some stakers aren’t motivated/aware enough to maintain their neuron. In the context of sleeper neurons, active neurons become more valuable to the network. This is obvious when you consider the extreme case of minimal participation. It would make far more sense to increase the incentives for participation the more that participation dwindles (much like how prices are dictated by supply and demand). This would be a stablising feedback loop (why wouldn’t we want that?).

It’s not accurate to assume that the value provided to the network by those who are active participants in NNS governance (by voting directly and/or by maintaining their following) should be measured in absolute terms. Everything has a context, and the value that an individual NNS participant brings to the table is relative to all those who cannot be bothered. If one day 99% of NNS participants lost interest and stopped engaging, wouldn’t you like to see the incentives for the 1% increased (to make sure that they don’t follow suit, and in fact avoid this situation emerging in the first place)?

Inflation should be reduced by simply reducing rewards proportionally (taking into account the number of sleeper neurons today, and adjusting reward rates accordingly), if a reduction in inflation needs to be achieved alongside this proposal.

At least, this is my stance, and it’s why I would personally plan to reject a proposal that intends to introduce a stick without a carrot :carrot:

1 Like