Request for Comment: Public & Private NNS Neurons

The fact is that whether you object or not, ICP will veto your objection through absolute voting rights. This is ironic. Without openness and trustworthiness, why do we need blockchain?

If Dfinity vetoes everything, how come @dominicwilliams , ‘Possible Optimizations of NNS Tokenomics,’ was dropped? Please don’t be the catpirate bringing disarray and chaos to the forums.

3 Likes

Hello, everyone. First of all, thank you for all the feedback. It really is appreciated.

I think the main concern is that neurons can choose for their votes to be hidden. Let me address that in this post. For specific individual questions, I’ll reply in a separate post.

In regards to votes being private, the concern is very valid and understandable. Clearly, the more transparent the system is, the easier it is to trust it. On the other hand, I don’t think implementing this proposal means that the system can’t be trusted anymore.

Regarding transparency and trust, here are some important points that we hope people will consider:

  • As the system stands now, not all votes are visible to the whole world. This proposal would not change that.
  • The vote counting machine itself is completely transparent. By reading the code of the governance canister and the platform that it runs on, you can prove or refute by yourself that it does what it’s supposed to (e.g. votes are counted correctly). There is no need to take someone else’s word for it (e.g. DFINITY).
  • Not everything in all blockchains is public. For example, you generally cannot connect an ID with a real life person.
  • Trust is always our highest aim. Whereas, you can think of transparency as a means to achieve trust as an end.
  • When applied in the wrong places, transparency destroys trust. For example, it is of the utmost importance that encryption keys not be transparent.

I think the question should be, “Do I need to take someone else’s word at face value? Or, can I prove or refute by myself that the system does what it’s supposed to?”. If you can prove or refute correctness by yourself, I would argue that the system is verifiable (and therefore, trustworthy).

Regarding privacy, here are some additional points:

  • It is also a reasonable concern, and deserves our consideration. Examples abound, including in the realm of voting. Some have already been mentioned in earlier posts. Let me offer another one: when voting on whether to form a labor union, it is generally considered “good” that ballots be kept secret so that people can vote without fear of retaliation.
  • Private voting is normal in the offline world. One reason is to prevent vote buying.
  • It is possible to reconcile privacy with verifiability.

One way to achieve both privacy and verifiability is for the vote counting process to be transparent to everyone, not necessarily every individual ballot. This is just as true inside the blockchain world as it is outside. The way this is achieved in the ICP governance is to open source the vote counting machine. Everyone can (and should) inspect it.

7 Likes

100%. There are some crypto ethos we should adhere, especially transparency for transactions.

Please refrain from implementing any privacy options in governance matters, as everything should be completely transparent, including voting choices, stake, voting power, maturity, follow/followers, dissolved delay, age, etc.

The NNS DAO will lose all credibility if participation details are hidden.
As ICP is still in its early days, we have been anticipating upgrades to enhance transparency. However, just as the Neuron index, which will significantly improve transparency, has passed, there is already talk of making details hidden.

I sincerely hope Dfinity drops the matter and announces it as they did with possible tokenomics changes.

If more NO votes are needed on this topic, let us know so we can run a X campaign calling on the community to voice their opinions here. I don’t think it’s something positive that should be publicized on X, and Dfinity should also refrain from voting in case of a proposal.

2 Likes

Let’s see what the current sentiment is for private neurons.

  • NO
  • YES
  • DON’T CARE
0 voters
2 Likes

Why would you make votes for this poll public? :grinning:

I guess it’s a convenient way to know who to attack if someone votes YES and you are in the anti-private neuron camp…

…AND vice versa of course.

It’s quite ironic to use a public poll to assess the sentiment of who is in favor of private neurons.

BTW, I hope this doesn’t come across in a negative way. It was only meant to be funny.

2 Likes

To prove the point, otherwise, we may end up with the majority in the comments being against private neurons while the poll shows the opposite. That’s what we risk happening with NNS DAO governance.

I strongly believe that if you vote, you should be prepared to explain the reason behind your choice if called upon. While private voting may have its place, I believe it does way more harm than good. We should strive for greater transparency, even if it complicates certain situations where private voting might be preferred.

p.s. Waiting for you to cast your vote. :wink:

4 Likes

Blockchain transactions and governance should be transparent.

6 Likes

Most people are not known neurons so who would you call in most neurons’ case?

2 Likes

Neurons currently have private information that I believe should remain private unless the neuron owner wants to make it public. The original intent of the neuron index proposal was to make sure that all neurons in the NNS could be accounted for since some of them have hidden neuron IDs. This is the only major problem that needs to be solved. This doesn’t mean they need to be any more public than every other neuron. The only place that it makes sense to have the private / public neuron discussion that goes beyond the current public / private information that already exists for every neuron is in relation to registered known neurons. It would be helpful to make Followee selection AND hotkey IDs for registered known neurons public information. Their votes are already public and they are stored indefinitely on the dashboard. Interestingly, the NNS does not keep an indefinite record of the vote history of registered known neurons, but I think it should. Any neuron that is not a registered known neuron should have the right to choose if their vote history is public or private. I see this in a similar way to real world elections. You don’t have the right to know your neighbors vote unless they tell you. In fact, the privacy of voting is essential to real world elections in order to get a true independent, objective result. Otherwise, special interest groups would put pressure on citizens all the time to vote a specific way. The same goes for blockchain governance. It’s just a bad idea to force neuron owners to have a public vote history. At least the privacy part today comes from the fact that the vote history is recorded by neuron ID instead of identity.

2 Likes

I’m not suggesting that every neuron needs to go through KYC and expose its data. Each neuron remains private since the identity behind it is unknown unless it is voluntarily disclosed.

Perhaps I’m missing something, but what advantage is there in concealing data from an already anonymous neurons?

4 Likes

Two examples come to mind.

  1. Synapse and CodeGov Followees create new neurons for the purpose of making their votes on specific topics transparent to the community. While they are voting members, they are not promising anything except transparency on those specific topics. It does not include all topics and it is only for the duration that they are voting members on those topics. However, once they expose the neuron ID and link it to their identity, their vote continues to be shown on the dashboard and vpgeek on all topics including after they have stopped their service as a public voter. This is unfair to them because it can be easily misinterpreted and misrepresented. They should be able to turn off this public visibility if the apps do not do it for them.
  2. Neurons have account IDs that can often be somewhat easy to link to the neuron IDs by simply correlating staked amounts, dissolve delay, and age with voting power (all public information for any neuron ID). Genesis neuron accounts can also be identified because the very first transaction in their account is a mint that occurred at genesis. There are people who are skilled at tracing transaction history and making connections between publicly revealed identities and neuron IDs even when the publicly revealed information was not intended to result in connection to their neuron ID. These connections should not be made easy if the neuron owner doesn’t want it to be public.

I’m looking at this from the perspective that private members of the community should be allowed to remain private so they can vote with their own convictions without having to be influenced by vocal people in the community who will try to use their influence to persuade their vote. Everyone needs to have the freedom to vote independent of these influences.

5 Likes

Maybe it’s just me, but I honestly don’t see the issue with transparent voting, especially considering the current blockchain space where other chains with on-chain voting that allows direct tracking of wallets.

I hope other community members share their perspectives, and thank you for providing examples.

5 Likes

My Comments:

I think this is a useless proposal and a malicious one because it allows these “named” neurons and champions of “decentralization” to escape accountability and collusion than they already are capable of.

I never see DFINITY building tools to improve transparency regarding voting, smart contracts and tokenomics. What’s up with that I wonder… Maybe just the priorities don’t align with world computer vision as some of the stake holders are not capable of it so they end up creating barriers to those who are.

I firmly believe that DFINITY, Synapse, and CodeGov are committed to the best interests of the ICP. I want to avoid posts like the one above that spread conspiracy theories, which transparent voting would negate.

I am not saying that there aren’t certain use cases where private neurons would be beneficial, but at what cost?

As the Russian proverb says, “Trust, but verify.”

4 Likes

Thanks DFINITY for consulting the community, and providing context. It’s unfortunate that it’s being met with animosity.

While I think this idea provides something valuable for the minority who may value their voting privacy (for whatever reason :person_shrugging:) I wonder if it also takes something valuable away from the majority (I’m assuming most people aren’t fussed about their voting history being public and are skeptical of the motivations of those who are).

Perhaps individuals who wish to take their voting transparency away from the community should receive smaller rewards (in effect, paying some amount for their priviledge). This would incentivise transparency, recognising the value it provides for others, but wouldn’t mandate it. The exact differential could be decided on by the community. What do you think?

6 Likes

Hi all,
let me first reiterate or clarify a few important points about the high-level design.

In many ways this proposal would increase transparency.

  • The design makes additional information available about some neurons (public ones) and especially about known neurons. This enables users to base their decision on who they want to follow on more on-chain, and therefore verifiable, information. For example, as a follower I can learn whether a known neuron that I follow in turn follows others and if so who these other neurons are.
  • Already now, users can de facto “hide” the information about their neuron by not revealing their neuron ID, including their stake. A neuron index would ensure that neurons cannot be “hidden” anymore. The index would list all neurons with some information about them, including the neuron’s stake. This would provide more transparency, for example how the voting power is distributed among unique principals. *Correction edit: this should say “among unique neurons.” *
  • Already now, users can de facto “hide” the information about their neuron by not revealing their neuron ID, including their ballots. As this is an “indirect way” rather than an explicit feature, not all users might be aware about this and some might be surprised what kind of information they reveal when searching for their neuron on a dashboard. Since users already have this choice, we think it is preferable to give users an explicit choice that is easy to understand.

This proposal does not decrease verifiability.

  • We agree that transparency is important. Why is this the case? The main motivation for transparency is to achieve verifiability, fully following the blockchain and security principle of “verify, don’t trust”.
  • In voting, verifiability is split into individual verifiability which ensures that each voter can verify that their ballot was submitted and universal verifiability which ensures that anyone can convince themselves that all submitted ballots were counted in the result. Both of these properties are given in NNS governance: every user can see that their ballot is included in governance and everyone can verify the governance code and convince themselves that all submitted votes are considered in the end-result.
  • Compared to now, the new design might make some ballots become visible which are not visible now - for example neurons whose ID is not known now but that choose to be public in the new design. The converse is also possible: for neurons whose ID is known but that will choose to be private. In both cases some ballots are visible while others are not. More importantly, in both cases individual and universal verifiability are given as argued above.
5 Likes

Hi @Doudi, this is a nice idea. We also discussed that it would be nice for public neurons, no matter if known or not, to get a name. As always there are some details that would have to be considered.
We propose to tackle and discuss this with the community as a separate feature, as we think they are sufficiently independent and the change proposed here already adds value.

2 Likes

You are right that this change would require such platforms to adopt. We could communicate the detailed new APIs early and discuss how we can make the required work as minimal as possible.
We think the change is worth this investment for the above mentioned reasons, such as:

  • Such platforms could now show additional information for many neurons
  • It cannot happen that users accidentally reveal information about their neuron that they didn’t intent simply because they entered their neuron ID.
1 Like