Neuron follower/followee voting deadlocks

I wanted to bring attention to something I thought of a while ago and recently observed in practice.

How a neuron votes is summarized here under “Following multiple neurons”: Maximizing Voting and NNS Rewards - Internet Computer Wiki

I believe the simplest version of this is the one I tested out: 2 neurons that follow each other and don’t vote manually will never vote.

While this may seem obvious or even nonsensical, I think it could easily happen and possibly already is happening.

Two parties that have trust and mutual respect for each other may think it’s a good idea to set their neurons to follow one another. They may not communicate this to each other or even be aware that the other is doing the same.

I’m not sure if follower data for neurons is available but I would be interested to know if this is happening in the wild.

I imagine this becomes much harder to understand for more complicated follower/followee scenarios.

Perhaps the NNS could be updated to detect cyclic relationships and display something in the UI to notify affected parties.

For reference, the test I ran was:

  • Neuron A follows neuron B for all topics except governance.
  • Neuron A follows neuron B and for governance proposals.
  • Neuron B follows neuron A for all topics except governance.
  • Neuron B follows neuron A and for governance proposals.

I did this deliberately and realize that following 2 neurons for governance means the follower will abstain from voting since only ever votes.


Really cool thought experiment, thanks for testing this out!

This sounds like a potentially expensive feature in terms the holding/computing all the neuron followee paths one may need to go down in order to find a cycle (that results in the deadlock). You could limit the followee graph to a depth of 1-2 to find the cycle, but this feels more like a user preventable error (by paying attention and checking in) than one where a check needs to be put in place.

Might just be nice instead to have a feature that allows one to view a specific neuron’s voting history, display the % of times historically that it has voted vs. abstained on a proposal, and whether it has already voted on the proposal in question (if you follow multiple neurons), and then have the user make decisions to update their followees based off of this information.