Currently, canisters cannot own ICP neurons. This restriction was added to prevent neuron marketplaces from emerging through which an attacker could in theory quickly buy up neurons to gain enough voting power to attack the IC.
Each ICP neuron has a single owner which can never be changed. But if a neuron was owned by a canister, that canister’s owner could be changed, transferring the ownership of any neurons that canister controls. So by preventing canisters from controlling neurons, we prevent neurons from being transferrable.
However, this means that SNSs are all losing out as their treasuries of ICP are sat idle, rather than earning voting rewards. Which in turn means that SNS projects have become incentivised to withdraw their ICP treasuries from the control of their SNSs to stake them in neurons owned by individuals. Which is bad!
I am one of the developers of OpenChat, and we would like to stake some portion of the OpenChat treasury for 6 months so that it can earn rewards while still being readily accessible in the future if needed. We would also like to offer ‘Lifetime Diamond Membership’ where users would pay ICP into an 8 year neuron controlled by the SNS and their account’s running costs would then be covered by the voting rewards from the neuron.
I have spoken to many other SNS teams and every single one I’ve spoken to has wanted the ability to stake some of their treasury.
I think the benefits massively outweigh the risks, especially because there is already over 130M ICP staked for 8 years, so even if a neuron marketplace were to emerge, so much voting power is already locked away that no attacker would be able to quickly buy up a significant amount of voting power.
Also, neurons actually can already be controlled by canisters! But they would have to do so using tECDSA and http out calls from canisters and it would be fairly complex. But as soon as one person builds a library which handles this then it becomes easy for everyone to use.
So it is better to allow canisters to own neurons directly, since then the governance canister can detect how much voting power is controlled by neurons and if it grows too quickly, action can be taken to prevent it growing further. Whereas if canisters remain restricted, eventually someone (probably me ) will build a library allowing canisters to control neurons, and neurons controlled through tECDSA are indistinguishable from neurons controlled by humans, so from that point onwards we have no way of knowing how much voting power is controlled by neurons.
TLDR: The risks are pretty much non-existent and the restriction is hurting every SNS project plus preventing other valid use cases where canisters would want to own neurons. So let’s drop the restriction and allow canisters to own ICP neurons!
PS: To drop the restriction is a 1 line code change!