Introduction
The IC is not yet as decentralized as many of us want it to be, in this post I’d like to discuss some potential changes to improve the situation.
Decentralizing the IC is a battle that’s fought on 2 sides: the NNS and the Network.
NNS
The NNS is the core aspect of the IC, no matter how many nodes and providers the network has, if the NNS is controlled by an oligarchy, none of that will matter. There are 2 changes I think would improve the level of decentralization on the NNS: quadratic voting and raising the minimum voting power needed for Governance proposals to pass.
Governance proposals
Currently a governance proposal can pass just by having simple majority and more votes than the opposing party, this was fine cause up until recently individual participation on the NNS was quite low and it was hard without Dfinity’s vote to reach absolute majority, but things are changing now.
If we look at how voting works IRL a law needs 51% to pass, that means in the worst case scenario there is a 2% difference, in my opinion its silly for a proposal to pass cause it has 0.1% more voting power, if a proposal were this close, it should go back to the drawing board and make some changes to appeal the opposing party. This proposal is a clear example of this issue as It passed with just 0.5% more voting power: Proposal: 48623 - ICP Dashboard
What I’m proposing:
Either require Governance proposals to have absolute majority to pass or require a governance proposal to have an advantage of 1/3% over the opposing party (e.g if 20% voted against a proposal, it would need at least 21/23% to pass).
Quadratic voting
Let’s be honest, as of now the NNS is controlled by a group of individuals who were lucky enough to buy millions of tokens at prices retail has never seen, if one wanted to get the same voting power as those individuals now, he would have to spend tens of millions of dollars in ICP and the situation will only worsen as ICP price increases and their neurons gain maturity and age bonus. There is no point in building a decentralized internet if its still run by a few rich guys, trading Bezos for a bunch of VCs would be a complete waste of Dfinity’s tech.
There are many ways to fix this issue, but no matter how we go at it, the end goald should always be: “How can we empower individuals votes on the NNS?”
Dom has already proposed a solution in a blogpost: Ultimate Decentralization Using Virtual ‘People Parties’ to Deliver ‘Proof of Personhood’ at Scale | by Dominic Williams | The Internet Computer Review | Medium
Citazione
The solution is to enable community members to anonymously prove their personhood, and to specify a single neuron that belongs to them as a discrete human being. The Network Nervous System can then treat such neurons specially, and boost them by augmenting the real ICP that is staked inside with additional virtual ICP, thereby increasing both their voting power, and the voting rewards that the people holding them earn.**
In extremis, the Network Nervous System could even add a billion virtual ICP to neurons for which proof of personhood had been assigned. This would do two incredible things:**
It would create a blockchain governed by one person, one vote**
It would create the first Universal Basic Income scheme via voting rewards in which participants are truly anonymous and cannot be discriminated against or sanctioned.**
This would be an improvement to the current situation, but at the same time it would make staking on the NNS just about passive income, cause no matter how much and for how long you stake a random person will always have more voting power than you. It’s also prone to abuse, a bad actor could pay a hundreds individuals in poor countries to gain a lot of voting power for a small sum. It would also be hard to balance, too much voting power and what I said above could happen, too little and it wouldn’t change much.
My Proposals:
I thought about 2 potential solutions,they both require people parties (like Dom’s proposal) and quadratic funding, what is quadratic funding?
Citazione
Quadratic Funding (QF) is a more democratic and scalable form of matching funding for public goods, i.e. any projects valuable to large groups of people and accessible to the general public.
“Matching funding” is a model of funding public goods where a fund from governments or philanthropic institutions matches individual contributions to a project. QF optimizes matching funds by prioritizing projects based on the number of people who contributed. This way, funds meant to benefit the public go towards projects that really benefit a broad public , instead of things that only have a few wealthy backers. In QF, [total funding] for a proposal is [the square root of each contribution to it → summed up, then squared.] QF strongly encourages people to make contributions, no matter how small, and ensures a democratic allocation of funds meant to benefit the public.
So what do I propose?
- Add a quadratic voting type of boost: the more individuals with verified IIs vote on a proposal the more voting power increases.
- Add quadratic funding: In quadratic funding a voter can pay an arbitrary amount of money if he really cares about a law, if Dfinity were to adopt this system the NNS would give verified stakers the option to pay ICP (which are then burnt) to support a proposal, the amount of paid ICPs from all neurons would then be summed and go through the quadratic formula.
Why do I think my solutions are preferable to Dom’s?
They don’t break the current balance of the NNS completely, but expand upon it. Stakers still must have skin in the game for their vote to count (lock money for a long period of time) and the more they invest, the more their voice counts, but at the same time individuals choice is rewarded more than the one of a few whales.
Network
No matter how many nodes and providers the IC has, there will always be a weak point: data centers.
Data centers must comply with the law of the country they are located in, a couple years ago Dom said IC smart contracts would “live” in cyberspace, therefore they woulnd’t have to comply with state laws:
But as many of you might know this argument wasn’t enough to stop Nintendo lawyers from filing a DMCA complaint, at the end of the day canisters are hosted and executed by physical servers and if the data center wants to shut them down, there isn’t much we can do. Dom mentions DeFi in that presentation, well if USA were to ban DeFi most likely Europe and other countries would follow, in that case only nodes hosted in countries were DeFi isn’t illegal would host DeFi related canisters.
To solve this issue Dfinity proposed this solution: Path forward on leveraging boundary nodes for content filtering , but it has 2 caveats:
- Each operator of boundary nodes will be responsible for defining their own policy and practices
Problem: Boundary nodes providers could run a cartel and blackmail dApps to not blacklist them - Since boundary nodes generally serve specific geographies and jurisdictions, this makes it possible that canisters will be accessible in some places, but not others, depending upon where legal action occurs.
Problem: this should never be the case, as long as there is at least 1 boundary node serving a canister it should always be accessible, in the worst case it should be slow to use due to latency or the node not being able to serve all requests.
My Proposals:
Permissionless Boundary Nodes
Boundary nodes should be able to be run by anyone with a verified II, there are many ways this could be implemented, in my opinion nodes not permissioned by the NNS should:
- Require an ICP stake
- Require HW standardized by the ICA
- Require an Internet Identity verified via People Party
- Be remunerated based on service provided to the network
Badlands
In case some of you don’t know what Badlands is, its a concept proposed by Dom for a permissionless subnet: Introducing the Internet Computer ‘Badlands’ Concept | by Dominic Williams | The Internet Computer Review | Medium
Badlands is still very much up in the air for the time being, the specs are far from finalized, but in my opinion it is something the IC needs, in this paragraph I’ll discuss a few points about Dom’s proposals that in my opinion need to be rethought/expanded upon.
The Hardware
Citazione
Badlands is a concept that involves applying Internet Computer technology to create a new network supported by amateur node providers from home, using low cost devices, that creates the maximum possible level of decentralization and censorship resistance for smart contracts. It will act as an extension of the Internet Computer, and be fully interoperable, but have different properties.
Whereas the node machines in the Internet Computer network have high minimum specifications and can cost more than $10,000, the node machines used in the Badlands network will standardize around special Raspberry Pi configurations, and cost less than $250.
I disagree with this choice, I don’t understand why we should be forced to choose between 2 extremes: 10k servers or cheap Raspberries. The best option should be to have separate badlands subnets like the IC is supposed to have in the future. BTC is mined on hardware that costs thousand of dollars and ETH mining isn’t cheap either, so while it’s nice that running a node is accessible for more people, it’s also a limiting factor for the network, badlands should at the very least have a low spec/high spec subnet type, the low spec one should require a Raspberry Pi and the high spec consumer grade HW like an I7/I9.
The Token
Citazione
The new network would receive its own BDL ledger, with the BDL token acting as the governance token within the Badlands network’s own Network Nervous System.
If this approach were taken, then the genesis BDL ledger might be initialized by taking a copy of the ICP ledger, providing each holder of ICP with an equivalent number of BDL.
I don’t think this is the best approach cause:
- As I said at the beginning of this post no matter how many nodes and providers the network has, if the NNS is controlled by an oligarchy, none of that will matter. Giving out free tokens to VCs will give Badlands the same issues we currently have on the IC NNS, especially if none of the stuff I talked about is actioned upon.
- It would dilute the ICP price
What I’m proposing:
- Require an ICP or BDL stake
- Require HW standardized by the ICA (low end and high end subnets)
- Require an Internet Identity verified via People Party
- Be remunerated based on service provided to the network
- ICP can be converted in a one way transaction to Badlands cycles, not tokens
- BDL token is airdropped to NNS stakers and Badlands node providers, no snapshot or anything, start with a slate as clean as possible and rewards early contributors
Why I think its a better approach:
- Makes ICP more valuable
- Network is both decentralized and performant (albeit not as IC)
- No ICO and no whales, early contributers (node providers not VCs) will be the one with the most tokens
- If paired with NNS changes it would be one of the most decentralized chains
Conclusion
As you may have noticed I haven’t described the specifics on any of the stuff I proposed (e.g number of tokens required to run a node), that’s cause I don’t think I’m the right person for this kind of decisions, I made this post only to share my doubts and ideas, hoping it would spark discussion in the IC community. I’m very much excited to hear what you guys have to say!
Thanks for your attention.