Clarification on how neurons vote

Will someone from Dfinity Foundation please clarify what constitutes a majority vote of followees when neurons vote automatically in the liquid democracy implementation of the NNS. Specifically, I am interested in knowing if the neuron follows the majority of the followee neurons individually or if the neuron follows the majority of the followee neuron voting power.

As a simple example, lets say neuron A follows neurons B (3 VP), C (4 VP), D (5 VP), E (50 VP), and F (100 VP), each with their respective voting power (VP). If neurons B, C, D, and E vote YES and neuron F votes NO, does neuron A vote YES or NO? In this scenario, 4 followees voted YES and 1 voted NO. However, based on followee voting power there were 62 votes of YES and 100 votes of NO.

As another example, if neurons B, C, D, and F do not vote, but neuron E votes YES, does neuron A end up not voting, voting YES, or voting NO? A majority of followees did not vote, but of the votes that were cast the majority voted YES, but at the same time, there were not enough votes cast to make a majority of voting power among the followees.

Thank you for offering clarification on what a majority vote of followees means. It seems that understanding this will be important for deciding how and when to add followees other than DF and ICA in the liquid democracy model and as we march towards increased decentralization over time.

Copied below is the Neuron Command called Follow as described in the linked medium article form Dfinity that describes the Internet Computer’s Network Nervous System, Neurons, and ICP Utility Tokens. This section describes how a neuron will automatically follow the majority vote of a group of followee neurons. The text in bold is the area that I an trying to clarify.

  • Follow
    Add a rule that enables the neuron to vote automatically on proposals that belong to a specific topic, by specifying a group of followee neurons whose majority vote is followed. The configuration of such follow rules can be used to: a) distribute control over voting power amongst multiple entities, b) have a neuron vote automatically when its owner lacks time to evaluate newly submitted proposals, c) have a neuron vote automatically when its own lacks the expertise to evaluate newly submitted proposals, and d) for other purposes. A follow rule specifies a set of followees. Once a majority of the followees votes to adopt or reject a proposal belonging to the specified topic, the neuron votes the same way. If it becomes impossible for a majority of the followees to adopt (for example, because they are split 50–50 between adopt and reject), then the neuron votes to reject. If a rule is specified where the proposal topic is null, then it becomes a catch-all follow rule, which will be used to vote automatically on proposals belonging to topics for which no specific rule has been specified. If the list of followees is empty, this effectively removes a follow rule.
2 Likes

Also curious about this - thanks @wpb for asking.

1 Like

In my understanding the majority of voting power should matter.
Otherwise the followees always would have 1/N percent in voting. But if they have 1/N percent why would they stake more icp? To get more influence in the final decision it is required to invest more in the network.

1 Like

To my understanding it would vote YES. The voting power is not included in deciding which side to follow, only the fact that a neuron voted is considered.

And YES again. I think the focus is on “vote to adopt”, meaning that out of all the neurons that voted a majority needs to vote to adopt for the neuron to follow that decision.

For any proposal topic, a neuron can be configured to vote automatically by following the votes of a group of neurons, voting to adopt proposals whenever a majority of the followees vote to adopt, and voting to reject whenever adoption by a majority becomes impossible.

[source: Understanding the Internet Computer’s Network Nervous System, Neurons, and ICP Utility Tokens | by DFINITY | The Internet Computer Review | Medium]

2 Likes

Thanks Wenzel for the great question. I’m not in the NNS team, but from what I understood reading the code, the decision if a neuron votes or not is determined by the fact if more than half of followees have voted for a YES or at least half of them have voted for a NO: ic/governance.rs at bd3b73e075aea1cc81b23b38ccfb138ca4ab17ab · dfinity/ic · GitHub

I see no evaluation of their voting power.

1 Like