Hello nano community! I love nano and I love what you guys are doing! Keep up the good work! Heres a protocol idea that i personally find to be really interesting. I wrote about it on reddit a while back, thought this post is a bit more thought out.
This is the idea:
Currently only the wallets owner is allowed to change the representative of the wallet. What if this was extended to both the owner of the wallet and the current representative of the wallet?
"If the original representative was a malicious actor, could he not just change their vote weight back to themselves and then do a 51% attack?"
If a representative decides to change the representative of someones wallet, then it would no longer be the representative of that wallet. Since only the current representative of the wallet is allow to change the representative, then the original representive no longer has the power to change it. Therefore the representative change is irreversible for the original representative.
"Couldn't a malicious actor delegate the votes to other nodes from the same actor, and therefore hide how much power he has"
There isn't much stopping you from doing something simular today. As we see with binance, which holds about 20% of voting weight, which is not easily visible from the voting weight distribution
"But some people don't want their representative to be able to change their representative. They want to choose a representative and have it stay there. I am a poweruser and i want to have control"
One solution to this is to make this an optional feature. The transaction that changes the representative could also include a boolean which indicates whether or not the wallets representative should also be given power to change the representative. This way, wallets could have a on/off button on whether or not they should "allow your representative to change your representative".
The Advantages
- Solves the issue of offline vote weight (nodes that are shutting down will now be able to get their voting weight away from their node)
- Solves the issue of relying on people to change representatives
- Potentially further decentralization (a node with high vote-weight could decide to give some away to smaller nodes that he/she trusts)
The Disadvantages
- The time needed to develop this
- Makes the learning curve of nano a tiny bit steeper (while it might simplify for most users, who may not need to think about representatives)
- Could increase the attack surface, as it increases the complexity. For example, if this was created and a bug was found that allows one to change anyones representative, then it would be game over for the nano network
Bonus:
Allows for a automatic vote-weight mixer. This could be great for "lazy people". Simply make this your representative, and the representative will find a node that it trusts, and delegate your vote to the trusted node. Or maybe just evenly delegate vote-weight randomly to nodes? This would of course be entirely optional and can be made by the community
Bonus 2:
I am skeptical about this bonus idea, but it is interesting. What if offline vote-weight is thrown into a mixer and then re-delegated to online nodes? This could be an optional feature on nodes for example