Firstly, I do think ICP has the potential to be a top 5 coin in market cap, however, being exposed financially to this project has allowed me to understand it better and why it’s flawed and why I should put my money elsewhere.
I’ll begin with what’s good about the Internet Computer, in my opinion;
Asynchronous smart contract communication
This is what distinguishes ICP from other networks, it’s a completely unique take on what smart contracts can be and opens up possibilities not possible with networks that host a single monolithic state machine
(high) Node hardware requirements
Another unique(ish) idea that I like, the internet is run on servers, not desktop computers, and having high node requirements opens up more possibilities for applications
In my opinion these are the two key selling points for the IC over other networks however, sadly, they are not implemented in a way that is congruent with the crypto ethos. I’ll explain why.
The network is not decentralized, or scalable
What do I mean when I propose the network is not decentralized? I’m not talking about the number of nodes or node providers, I’m referring to the central point of control that is the NNS and the role it plays. Democracy is not decentralization. The NNS has control over literally every aspect of the network, and without it, the network cannot function. This is in contrast to governance in other crypto projects, where users vote to make changes to very specifically designed aspects of a project that simply cannot be automated otherwise.
The NNS has control over the entire topology of the network, meaning subnets are not created or load balanced at the protocol level, spawning new ones when all others are at max capacity, it is simply DFINITY picking from a pool of nodes to spawn a new subnet. Again there is plans for DFINITY to secede and let the enthusiasts(?) manage these things but again Democracy is not decentralization.
This leads into why I stated that asynchronous smart contracts are not well implemented. This thread goes into more detail as to why the subnet model hinders this core aspect of the ICs design. TL:DR? Subnets only make sense for synchronous state machines, putting asynchronously communicating cannisters together in a centrally controlled & designed subnet means that developers are limited in the kinds of network topology that will be running their app. This is in contrast to Avalanche’s subnet model where the Dapp developer has control over the subnet’s creation, it’s rules for gas, and whether node joining is permissioned or permissionless.
The second point is that the network is not scalable. You might think this is untrue based on DFINITYs marketing, however think about what scalability is; it’s the ability to increase and decrease in throughput. With node rewards on the IC, nodes are minted a fixed amount of dollars worth of ICP regardless of the amount of transactions they process, this means the network requires constant growth as node rewards increasingly debase ICP the bigger the network becomes. The network cannot scale downwards from a point of massive expansion without breaking into a death spiral as noted by some people on this forum. This also means to prevent a death spiral in the event of the network expanding then contracting the NNS would have to delete various subnets and remove nodes from the network and the cannisters they host to prevent a death spiral. This is a fragile system.
This is in contrast to every other blockchain network which can expand and contract dynamically depending on demand, which is in my opinion one of the most impressive aspects of blockchain networks, that they are anti-fragile (at least the good ones are).
My final point is that DFINITY views the IC as a commercial product and not a sovereign network like the Ethereum Foundation views Ethereum. This is of course my most subjective opinion, but I do feel strongly that this is the case.