Context: Considering Factors that Affect Scalability
As we prepare to migrate neurons to stable memory early next year, we have been considering the longer-term scalability of the NNS voting system.
One major question about the upper bounds of how many neurons can be stored and participate is the size of the neurons, as well as the ways the neurons are used in computations.
Misunderstandings about Following
Neuron following is a much-used and often misunderstood feature of neurons, and is the source of most of the cost of processing votes. (See also NNS Dapp guide for context)
Many users set up following expecting following more than one neuron to result in missing fewer votes. But in fact, following more than one neuron means that the majority of the followed neurons need to agree in order for your neuron to follow.
For neurons only optimizing for rewards, having more than one followee is against the interest of the neuron holder.
If a neuron wanted to vote according to a broader community, following a handful of organizations’ beacon neurons might be desirable, even if it meant risking missing some votes.
Beacon neurons, which may be managed by a large number of principals voting, is the one use case where a large collection of followees makes sense.
Impact of Following on Scaling
To prepare for future growth and make upgrades safer, we are moving data into stable memory. However, this means some operations will take longer. Vote Cascading is one of those operations, and we are looking for ways to improve the worst case scenarios. Limiting followees is the biggest impact change that we can make.
While the actual computational costs are based on the actual data in the canister, the limits in the canister to protect against attacks are based on the worst-case scenarios within those limits. In the interest of keeping a responsive governance canister as we scale, we would like to lower the number of followees a neuron can have in the normal case.
Proposed Changes
Therefore, we propose the following changes:
-
Limit Normal Neurons to no more than 5 followees per topic, and 35 followees total (this allows for making exceptions to each rule, and still allows following enough high-quality neurons to let your vote be decided democratically).
-
Optionally, for neurons that need the ability to store the full 15 neurons on all topics, charge a one-time fee that would discourage idle use of the feature, but not large enough to prevent organizations from setting up Beacon Neurons.
For existing neurons with more followers, the following would not be affected until such time as it needs to be changed. Users would have to get back under the limits in order to add new followers to existing neurons.
We believe this would affect a very small number of existing users.
Looking forward to a thoughtful discussion!