Difference between revisions of "Decentralization in ICP: Infrastructure Governance"

From Internet Computer Wiki
Jump to: navigation, search
 
(33 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Background==
+
==Summary==
  
The infrastructure layer of ICP is best summarized as:
+
As a blockchain protocol, decentralization is very important to the design and implementation of ICP. This article is one of a subset explaining the design intent and the current state of the world when it comes to ICP decentralization. '''Its main focus is analyzing ICP as a [[sovereign network]] with a DAO controlling infrastructure governance'''.  
* ICP is composed of [https://dashboard.internetcomputer.org/subnets subnets]
 
* Each subnet is composed of nodes (owned and controlled by node providers), which are remunerated in ICP by the network minting ICP
 
* Each node lives in an independent data center (not cloud providers), which the node provider pays to upkeep and maintain. An example of data centers include Equinix in Spain.
 
  
==Design Intent==
+
To see the whole picture, it is recommended to see the following articles:
  
===Design intent of the infrastructure layer follows from the following observations===
+
* [[Decentralization in ICP]]
 +
* [[Decentralization in ICP: Critical Dapps on the IC]]
 +
* [[Decentralization in ICP: Protocol Governance]]
  
a. An empirical pattern from studying other blockchains: infrastructure layers tend towards high-concentration (2-4 entities) controlling 51% of the infrastructure and 1-2 jurisdictions (e.g. US, China) controlling 51% of the infrastructure. In practice, permissionless (even without a DAO) infrastructure layers tend to a concentration where the “anyone can run a node from home” tends to be a figleaf for concentration of a few big players.
+
==Background: Sovereign Network using Deterministic Decentralization==
  
b. Networks like BTC or ETH have protocol-level limitations where the protocol will have the same throughput of transactions whether it has 10 nodes or 10,000 nodes. These do not scale by adding more nodes.
+
The infrastructure layer of ICP is best summarized as:
 +
* ICP is a [[sovereign network]] composed of [https://dashboard.internetcomputer.org/subnets subnets] that follow [[Deterministic Decentralization]]
 +
* Each subnet is composed of nodes (owned and controlled by node providers), which are remunerated in ICP by the network minting ICP
 +
* Each node lives in an independent data center (not cloud providers), which the node provider pays to upkeep and maintain. An example of data centers include Equinix in Spain.
  
c. Many networks have inconsistent node uptime/availability as miners switch off/on their nodes due to unpredictable crypto markets, sometimes making nodes unprofitable to run.
+
==Current State of Infrastructure Decentralization==
  
d. A lot of the node’s computation in other blockchains is used up in puzzles (e.g. Proof of Work) rather than useful computation.
+
To best understand current state of ICP topology and node diversification, the following forum posts lay the most information:
  
===ICP is designed to have the following properties===
+
1. [https://forum.dfinity.org/t/ic-topology-series-node-diversification-part-i/23402 IC node diversification (Part 1)]
  
a. The IC's method of "manicured" subnets, even though less decentralized in theory, actually gives you better decentralization in practice.
+
2. [https://forum.dfinity.org/t/ic-topology-node-diversification-part-ii/23553 IC node diversification (Part 2)]
  
b. ICP compute capacity grows by adding more nodes
+
==Example: Adding a node to the network==
  
c. To balance ICP minting rate and developer demand for compute, the NNS DAO decides how many more nodes to add
+
For a concrete example, adding a node to the network takes the following steps:
  
d. To maximize decentralization, NNS DAO measures and maximizes decentralization, rather than leave it to chance
+
===1. Node provider submits a proposal to [https://dashboard.internetcomputer.org/proposal/107568|become a node provider]===
  
e. To incentivize ICP to have maximum availability, the node reward has predictable rewards for each node
+
[[File:Node provider submits a proposal to become a node provider.png |800px ]]
  
f. To incentivize general availability, ICP rewards nodes for being part of the system and removes them if they start to deviate consistently.
+
===2. NNS DAO decides if they want to add this node provider===
  
g. To maximize reliability and health of the network, NNS DAO can remove nodes that consistently deviate (maybe they are faulty or are malicious).
+
===3. If accepted by the NNS DAO, submit proposal to add node to subnet or data center===
  
 +
* Node provider submits a proposal to add a node in a specific subnet in a [https://dashboard.internetcomputer.org/proposal/107569 specific data center] in a specific location
  
==Deterministic Decentralization: How nodes join the network==
+
[[File:Proposal_to_add_data_center.png |800px ]]
 
 
Therefore, this “Deterministic Decentralization” is the idea that ICP should measure and maximize the the diversity and decentralization of each subnet, rather than optimistically hope for decentralization by allowing any node to join network (not to mention the
 
# of unique node providers
 
# of unique data centers
 
# of unique jurisdictions
 
 
 
==Example: Adding a node to the network==
 
  
==Current State of Decentralization==
+
===4. NNS DAO evaluates whether to accept the proposal based on questions like===
 +
* Does ICP need more nodes?
 +
* Does this node provider have too many nodes already?
 +
* Does this subnet need more nodes?
 +
* Does this data center have too many nodes?
 +
* Does this location have too many nodes?
  
 
==See Also==
 
==See Also==
 +
* [[Decentralization in ICP]]
 +
* [[Decentralization in ICP: Protocol Governance]]
 +
* [[Decentralization in ICP: Critical Dapps on the IC]]

Latest revision as of 18:26, 12 January 2024

Summary

As a blockchain protocol, decentralization is very important to the design and implementation of ICP. This article is one of a subset explaining the design intent and the current state of the world when it comes to ICP decentralization. Its main focus is analyzing ICP as a sovereign network with a DAO controlling infrastructure governance.

To see the whole picture, it is recommended to see the following articles:

Background: Sovereign Network using Deterministic Decentralization

The infrastructure layer of ICP is best summarized as:

  • ICP is a sovereign network composed of subnets that follow Deterministic Decentralization
  • Each subnet is composed of nodes (owned and controlled by node providers), which are remunerated in ICP by the network minting ICP
  • Each node lives in an independent data center (not cloud providers), which the node provider pays to upkeep and maintain. An example of data centers include Equinix in Spain.

Current State of Infrastructure Decentralization

To best understand current state of ICP topology and node diversification, the following forum posts lay the most information:

1. IC node diversification (Part 1)

2. IC node diversification (Part 2)

Example: Adding a node to the network

For a concrete example, adding a node to the network takes the following steps:

1. Node provider submits a proposal to a node provider

Node provider submits a proposal to become a node provider.png

2. NNS DAO decides if they want to add this node provider

3. If accepted by the NNS DAO, submit proposal to add node to subnet or data center

  • Node provider submits a proposal to add a node in a specific subnet in a specific data center in a specific location

Proposal to add data center.png

4. NNS DAO evaluates whether to accept the proposal based on questions like

  • Does ICP need more nodes?
  • Does this node provider have too many nodes already?
  • Does this subnet need more nodes?
  • Does this data center have too many nodes?
  • Does this location have too many nodes?

See Also