Some questions about building a data center

I can help clarify some points by actually going broad: what is the goal?

To us, the goal is building a tamperproof system where no one player or group of players can collude to mess with the system (e.g. make 2 + 2 = 5). This includes making sure that each player can not stop or slow the system either. Part of this goal is to also have this tamperproof platform be “web speed” and scalable. We want a platform that grows with more machines (throwing more machines in most protocols do not increase scale).

In studying many cases, it became clear we had to do a few things:

  1. Provide a great experience for developers and their users -
  • most blockchain protocols, machines “mine” and if they get lucky they get a reward. This incentivizes miners from having branches that eventually converge. They are analogous to “bounty hunters” who get paid by the job and can turn off their machines if a better protocol comes along… even hourly. In the IC, all infrastructure providers get paid a steady stream. Nodes do not compete with each other. All nodes have to do is behave well and NOT get removed out of the network. If there is low demand on a Saturday, the node still gets paid to be part of the subnet (so it’s available for a developer). Remember, the IC is meant to have beefy, world-class professional setups, not people in a garage. The NNS detects bad or faulty ones. If a node is off a few hours per day or week or is routinely slow, the NNS will remove it. This helps maintain a great experience for the developers who now have a platform that is fast, reliable, stable.
  • Because every node gets paid by minting ICP, every node creates inflation in the network. The NNS tries to maintain a healthy balance of nodes being paid so that it has what the network needs, not too much, not too little. If it needs more nodes, it can raise rewards.
  • The IC is unbounded so it can add as many nodes as NNS approves
  • Better developer experience like this will lead to a better consumer experience (better apps built)… which leads to more adoption. Remember, there are only a few thousand apps in production using blockchain as backend… and none of them using the ENTIRE app on the blockchain.
  1. Practical vs Theoretical independence - it is important that the nodes be independent. we found that permissionless platforms pretty much led to the following cases: a few big players ruled blockchain infrastructure. This is why transparent (not anonymous) identities are important. We don’t want Jeff Bezos controlling 51% of the network. The NNS tries to maintain a healthy balance of independent parties, locations, etc…

  2. Channeling The community - In our experience, there are 100x-1000x more community members and token holders than there are infrastructure providers. We want to empower these people to have a say in the direction and keep the infrastructure side focused on high-performance, reliability, and following the protocol. The community gets paid in rewards for their votes. This is a much much lower barrier to entry for getting rewards for being a good community member. Also remember… if the community wants to change the current rules, they can do that too.

  3. Focusing on tamperproof - we found quite a number of attacks that users can do in a network without an NNS or identities.

  4. Teasing apart decentralization - Notice we teased apart what people usually mean when they say they want decentralization. They usually mean two things:

  • Their apps are living in an environment that no one can tamper with (no 2 + 2 = 5)
  • There is a way for people to take part in the growth of the network (getting rewards by voting not doing puzzles)
  1. "Does this mean I will never be able to connect my machine as infrastructure?" - no. We have been playing and studying some ideas where we could use lower-end machines. But we want to get a good core of data centers and professional-grade setup first.

  2. Much more energy efficient - by having machines do the actual computation for apps, that means they can spend energy on computation that matters. This is something that played a role in designing the system as well

10 Likes