<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.internetcomputer.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Alin.sinpalean</id>
	<title>Internet Computer Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.internetcomputer.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Alin.sinpalean"/>
	<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/wiki/Special:Contributions/Alin.sinpalean"/>
	<updated>2026-04-08T17:52:08Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Decentralization_in_ICP&amp;diff=4689</id>
		<title>Decentralization in ICP</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Decentralization_in_ICP&amp;diff=4689"/>
		<updated>2023-03-23T08:33:59Z</updated>

		<summary type="html">&lt;p&gt;Alin.sinpalean: Typo: &amp;quot;key to make dapps run&amp;quot; -&amp;gt; &amp;quot;key to making dapps run&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
As a blockchain protocol, decentralization is very important to the design and implementation of ICP. This article explains the design intent and the current state of the world when it comes to ICP decentralization.&lt;br /&gt;
&lt;br /&gt;
==What is Decentralization==&lt;br /&gt;
In the context of blockchains, [https://en.wikipedia.org/wiki/Decentralization#Blockchain_technology “decentralization” is defined by Wikipedia] as:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;“Decentralization [in blockchains] refers to the transfer of control and decision-making from a centralized entity (individual, organization, or group thereof) to a distributed network. Decentralized networks strive to reduce the level of trust that participants must place in one another, and deter their ability to exert authority or control over one another in ways that degrade the functionality of the network.”&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
All blockchains rely on a consensus protocol to come to agreement on the state of the network. The higher the decentralization of a network, the more individual actors that need to coordinate to come to an agreement. In a centralized or low-decentralization system, one or a handful of entities would be sufficient to establish the state of the system. &lt;br /&gt;
&lt;br /&gt;
Vitalik Buterin described [https://medium.com/@VitalikButerin/the-meaning-of-decentralization-a0c92b76a274 decentralization] along three independent axes:&lt;br /&gt;
&lt;br /&gt;
1. &#039;&#039;&#039;“Architectural (de)centralization&#039;&#039;&#039; — how many physical computers is a system made up of? How many of those computers can it tolerate breaking down at any single time?&lt;br /&gt;
&lt;br /&gt;
2. &#039;&#039;&#039;Political (de)centralization&#039;&#039;&#039; — how many individuals or organizations ultimately control the computers that the system is made up of?&lt;br /&gt;
&lt;br /&gt;
3. &#039;&#039;&#039;Logical (de)centralization&#039;&#039;&#039; — does the interface and data structures that the system presents and maintains look more like a single monolithic object, or an amorphous swarm? One simple heuristic is: if you cut the system in half, including both providers and users, will both halves continue to fully operate as independent units?”&lt;br /&gt;
&lt;br /&gt;
Buterin described  blockchains as being &#039;&#039;&#039;architecturally decentralized&#039;&#039;&#039; (many computers), &#039;&#039;&#039;politically decentralized&#039;&#039;&#039; (many entities), but &#039;&#039;&#039;logically centralized&#039;&#039;&#039; (one commonly agreed state).&lt;br /&gt;
&lt;br /&gt;
This article focuses on the architectural and political decentralization of ICP.&lt;br /&gt;
&lt;br /&gt;
==Why Decentralization Matters in Web3==&lt;br /&gt;
&lt;br /&gt;
===Benefits of decentralization===&lt;br /&gt;
&lt;br /&gt;
Decentralization is key to making web3 dapps run in a trustless manner. Vitalik Buterin broke it down into three core benefits one gets from decentralized computer networks like blockchains:&lt;br /&gt;
&lt;br /&gt;
1. &#039;&#039;&#039;Fault tolerance&#039;&#039;&#039; — decentralized systems are less likely to fail accidentally because they rely on many separate components that are not likely.&lt;br /&gt;
&lt;br /&gt;
2. &#039;&#039;&#039;Attack resistance&#039;&#039;&#039; — decentralized systems are more expensive to attack and destroy or manipulate because they lack sensitive central points that can be attacked at much lower cost than the economic size of the surrounding system.&lt;br /&gt;
&lt;br /&gt;
3. &#039;&#039;&#039;Collusion resistance&#039;&#039;&#039; — it is much harder for participants in decentralized systems to collude to act in ways that benefit them at the expense of other participants, whereas the leaderships of corporations and governments collude in ways that benefit themselves but harm less well-coordinated citizens, customers, employees and the general public all the time.&lt;br /&gt;
&lt;br /&gt;
For token holders, smart contract developers, or dapp users this means a more decentralized network would be:&lt;br /&gt;
* More resilient to computer or systems faults&lt;br /&gt;
* More resilient to attacks by malicious actors&lt;br /&gt;
* More resistant to collusion by entities within the network to harm the network&lt;br /&gt;
&lt;br /&gt;
==Measuring Decentralization==&lt;br /&gt;
&lt;br /&gt;
===How to measure decentralization===&lt;br /&gt;
&lt;br /&gt;
To help measure and improve decentralization, a common index used in the blockchain world is the [https://news.earn.com/quantifying-decentralization-e39db233c28e Nakamoto Coefficient]:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;“The basic idea is to (a) enumerate the &#039;&#039;&#039;essential subsystems&#039;&#039;&#039; of a decentralized system, (b) determine how many entities one would need to collude or be compromised to control each subsystem, and (c) then use the minimum of these as a measure of the effective decentralization of the system. The higher the value of this minimum Nakamoto coefficient, the more decentralized the system is.”&lt;br /&gt;
&#039;&#039;&lt;br /&gt;
In practice, determining the NC (Nakamoto Coefficient)  to particular chains is more art than science, but it helps provide a good way to identify bottlenecks, the growth or decentralization within a blockchain.  Please note: comparing NCs across blockchains can be very imprecise and akin to comparing “apples to oranges”.&lt;br /&gt;
&lt;br /&gt;
===Using Nakamoto Coefficients to measure ICP Decentralization===&lt;br /&gt;
&lt;br /&gt;
To measure decentralization, a common pattern in blockchains is:&lt;br /&gt;
&lt;br /&gt;
1. Identify the subsystems of a blockchain&lt;br /&gt;
2. For each subsystem, determine the subsystem’s NC (the # of entities necessary to compromise to control it)&lt;br /&gt;
3. The subsystem with the &#039;&#039;minimum&#039;&#039; NC represents the best holistic measure of decentralization&lt;br /&gt;
&lt;br /&gt;
In order to summarize overall decentralization of ICP, there are a few points worth considering:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Minimum of NCs may not reflect real risk&#039;&#039;&#039; - For the purposes of ICP, the minimum of subsystems may not be the proper metric to assess risk. For instance, the table of NCs for ICP infrastructure has a NC for the continent node providers are in but it&#039;s unlikely that the entire continent would collude to make damage. In short: the risk of NPs colluding is larger than the risk from nodes being in the same continent. This is why overall decentralization in ICP is best measured as a &#039;&#039;weighted average of NCs.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changes that remove/add single points of failures should count more&#039;&#039;&#039; -  For example, a change in NC from 1 to 2 in a particular subsystem is very important, as it means that there is no longer a single point of failure. That change is much more impactful than a change in NC from 10 to 11, but a weighted average will nevertheless appreciate both changes equally. This is why overall decentralization in ICP is best measured as a &#039;&#039;weighted average of logarithms of NCs&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Conclusion: Summary of overall decentralization in ICP (across all subsystems) is measured as a &#039;&#039;weighted average of logarithms of NCs.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===ICP Subsystems===&lt;br /&gt;
&lt;br /&gt;
ICP has multiple levels of subsystems and decentralization. Using the metaphor of a stack, they are (from top to bottom):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. “Common Good” dapps on the IC&#039;&#039;&#039;&lt;br /&gt;
* These are dapps the community uses, often as public goods&lt;br /&gt;
* These are controlled by NNS DAO or individual DAOs (e.g. Internet Identity, NNS frontend dapp, SNS)&lt;br /&gt;
* See [[Decentralization in ICP: Critical Dapps on the IC]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Weighted average of logs of NCs: TBD&lt;br /&gt;
&#039;&#039;&#039;Protocol Governance&lt;br /&gt;
* This is controlled by the NNS DAO&lt;br /&gt;
* The code running in the nodes&lt;br /&gt;
* See [[Decentralization in ICP: Protocol Governance]]&lt;br /&gt;
* See [[Weighted average of logs of NCs in Protocol]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Infrastructure Layer &#039;&#039;&#039;&lt;br /&gt;
* This is controlled by the NNS DAO&lt;br /&gt;
* This is the physical layer of ICP (how &amp;amp; which nodes participate in the network)&lt;br /&gt;
* See [[Decentralization in ICP: Infrastructure Governance]]&lt;br /&gt;
* See [[Weighted average of logs of NCs in infrastructure]]&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[Decentralization in ICP: Critical Dapps on the IC]]&lt;br /&gt;
* [[Decentralization in ICP: Protocol Governance]]&lt;br /&gt;
* [[Weighted average of logs of NCs in Protocol]]&lt;br /&gt;
* [[Decentralization in ICP: Infrastructure Governance]]&lt;br /&gt;
* [[Weighted average of logs of NCs in infrastructure]]&lt;/div&gt;</summary>
		<author><name>Alin.sinpalean</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Decentralization_in_ICP&amp;diff=4688</id>
		<title>Decentralization in ICP</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Decentralization_in_ICP&amp;diff=4688"/>
		<updated>2023-03-23T08:32:41Z</updated>

		<summary type="html">&lt;p&gt;Alin.sinpalean: Logically centralized: &amp;quot;typically, one consensus protocol&amp;quot; -&amp;gt; &amp;quot;one commonly agreed state&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
As a blockchain protocol, decentralization is very important to the design and implementation of ICP. This article explains the design intent and the current state of the world when it comes to ICP decentralization.&lt;br /&gt;
&lt;br /&gt;
==What is Decentralization==&lt;br /&gt;
In the context of blockchains, [https://en.wikipedia.org/wiki/Decentralization#Blockchain_technology “decentralization” is defined by Wikipedia] as:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;“Decentralization [in blockchains] refers to the transfer of control and decision-making from a centralized entity (individual, organization, or group thereof) to a distributed network. Decentralized networks strive to reduce the level of trust that participants must place in one another, and deter their ability to exert authority or control over one another in ways that degrade the functionality of the network.”&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
All blockchains rely on a consensus protocol to come to agreement on the state of the network. The higher the decentralization of a network, the more individual actors that need to coordinate to come to an agreement. In a centralized or low-decentralization system, one or a handful of entities would be sufficient to establish the state of the system. &lt;br /&gt;
&lt;br /&gt;
Vitalik Buterin described [https://medium.com/@VitalikButerin/the-meaning-of-decentralization-a0c92b76a274 decentralization] along three independent axes:&lt;br /&gt;
&lt;br /&gt;
1. &#039;&#039;&#039;“Architectural (de)centralization&#039;&#039;&#039; — how many physical computers is a system made up of? How many of those computers can it tolerate breaking down at any single time?&lt;br /&gt;
&lt;br /&gt;
2. &#039;&#039;&#039;Political (de)centralization&#039;&#039;&#039; — how many individuals or organizations ultimately control the computers that the system is made up of?&lt;br /&gt;
&lt;br /&gt;
3. &#039;&#039;&#039;Logical (de)centralization&#039;&#039;&#039; — does the interface and data structures that the system presents and maintains look more like a single monolithic object, or an amorphous swarm? One simple heuristic is: if you cut the system in half, including both providers and users, will both halves continue to fully operate as independent units?”&lt;br /&gt;
&lt;br /&gt;
Buterin described  blockchains as being &#039;&#039;&#039;architecturally decentralized&#039;&#039;&#039; (many computers), &#039;&#039;&#039;politically decentralized&#039;&#039;&#039; (many entities), but &#039;&#039;&#039;logically centralized&#039;&#039;&#039; (one commonly agreed state).&lt;br /&gt;
&lt;br /&gt;
This article focuses on the architectural and political decentralization of ICP.&lt;br /&gt;
&lt;br /&gt;
==Why Decentralization Matters in Web3==&lt;br /&gt;
&lt;br /&gt;
===Benefits of decentralization===&lt;br /&gt;
&lt;br /&gt;
Decentralization is key to make web3 dapps run in a trustless manner. Vitalik Buterin broke it down into three core benefits one gets from decentralized computer networks like blockchains:&lt;br /&gt;
&lt;br /&gt;
1. &#039;&#039;&#039;Fault tolerance&#039;&#039;&#039; — decentralized systems are less likely to fail accidentally because they rely on many separate components that are not likely.&lt;br /&gt;
&lt;br /&gt;
2. &#039;&#039;&#039;Attack resistance&#039;&#039;&#039; — decentralized systems are more expensive to attack and destroy or manipulate because they lack sensitive central points that can be attacked at much lower cost than the economic size of the surrounding system.&lt;br /&gt;
&lt;br /&gt;
3. &#039;&#039;&#039;Collusion resistance&#039;&#039;&#039; — it is much harder for participants in decentralized systems to collude to act in ways that benefit them at the expense of other participants, whereas the leaderships of corporations and governments collude in ways that benefit themselves but harm less well-coordinated citizens, customers, employees and the general public all the time.&lt;br /&gt;
&lt;br /&gt;
For token holders, smart contract developers, or dapp users this means a more decentralized network would be:&lt;br /&gt;
* More resilient to computer or systems faults&lt;br /&gt;
* More resilient to attacks by malicious actors&lt;br /&gt;
* More resistant to collusion by entities within the network to harm the network&lt;br /&gt;
&lt;br /&gt;
==Measuring Decentralization==&lt;br /&gt;
&lt;br /&gt;
===How to measure decentralization===&lt;br /&gt;
&lt;br /&gt;
To help measure and improve decentralization, a common index used in the blockchain world is the [https://news.earn.com/quantifying-decentralization-e39db233c28e Nakamoto Coefficient]:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;“The basic idea is to (a) enumerate the &#039;&#039;&#039;essential subsystems&#039;&#039;&#039; of a decentralized system, (b) determine how many entities one would need to collude or be compromised to control each subsystem, and (c) then use the minimum of these as a measure of the effective decentralization of the system. The higher the value of this minimum Nakamoto coefficient, the more decentralized the system is.”&lt;br /&gt;
&#039;&#039;&lt;br /&gt;
In practice, determining the NC (Nakamoto Coefficient)  to particular chains is more art than science, but it helps provide a good way to identify bottlenecks, the growth or decentralization within a blockchain.  Please note: comparing NCs across blockchains can be very imprecise and akin to comparing “apples to oranges”.&lt;br /&gt;
&lt;br /&gt;
===Using Nakamoto Coefficients to measure ICP Decentralization===&lt;br /&gt;
&lt;br /&gt;
To measure decentralization, a common pattern in blockchains is:&lt;br /&gt;
&lt;br /&gt;
1. Identify the subsystems of a blockchain&lt;br /&gt;
2. For each subsystem, determine the subsystem’s NC (the # of entities necessary to compromise to control it)&lt;br /&gt;
3. The subsystem with the &#039;&#039;minimum&#039;&#039; NC represents the best holistic measure of decentralization&lt;br /&gt;
&lt;br /&gt;
In order to summarize overall decentralization of ICP, there are a few points worth considering:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Minimum of NCs may not reflect real risk&#039;&#039;&#039; - For the purposes of ICP, the minimum of subsystems may not be the proper metric to assess risk. For instance, the table of NCs for ICP infrastructure has a NC for the continent node providers are in but it&#039;s unlikely that the entire continent would collude to make damage. In short: the risk of NPs colluding is larger than the risk from nodes being in the same continent. This is why overall decentralization in ICP is best measured as a &#039;&#039;weighted average of NCs.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changes that remove/add single points of failures should count more&#039;&#039;&#039; -  For example, a change in NC from 1 to 2 in a particular subsystem is very important, as it means that there is no longer a single point of failure. That change is much more impactful than a change in NC from 10 to 11, but a weighted average will nevertheless appreciate both changes equally. This is why overall decentralization in ICP is best measured as a &#039;&#039;weighted average of logarithms of NCs&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Conclusion: Summary of overall decentralization in ICP (across all subsystems) is measured as a &#039;&#039;weighted average of logarithms of NCs.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===ICP Subsystems===&lt;br /&gt;
&lt;br /&gt;
ICP has multiple levels of subsystems and decentralization. Using the metaphor of a stack, they are (from top to bottom):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. “Common Good” dapps on the IC&#039;&#039;&#039;&lt;br /&gt;
* These are dapps the community uses, often as public goods&lt;br /&gt;
* These are controlled by NNS DAO or individual DAOs (e.g. Internet Identity, NNS frontend dapp, SNS)&lt;br /&gt;
* See [[Decentralization in ICP: Critical Dapps on the IC]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Weighted average of logs of NCs: TBD&lt;br /&gt;
&#039;&#039;&#039;Protocol Governance&lt;br /&gt;
* This is controlled by the NNS DAO&lt;br /&gt;
* The code running in the nodes&lt;br /&gt;
* See [[Decentralization in ICP: Protocol Governance]]&lt;br /&gt;
* See [[Weighted average of logs of NCs in Protocol]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Infrastructure Layer &#039;&#039;&#039;&lt;br /&gt;
* This is controlled by the NNS DAO&lt;br /&gt;
* This is the physical layer of ICP (how &amp;amp; which nodes participate in the network)&lt;br /&gt;
* See [[Decentralization in ICP: Infrastructure Governance]]&lt;br /&gt;
* See [[Weighted average of logs of NCs in infrastructure]]&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[Decentralization in ICP: Critical Dapps on the IC]]&lt;br /&gt;
* [[Decentralization in ICP: Protocol Governance]]&lt;br /&gt;
* [[Weighted average of logs of NCs in Protocol]]&lt;br /&gt;
* [[Decentralization in ICP: Infrastructure Governance]]&lt;br /&gt;
* [[Weighted average of logs of NCs in infrastructure]]&lt;/div&gt;</summary>
		<author><name>Alin.sinpalean</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Decentralization_in_ICP&amp;diff=4687</id>
		<title>Decentralization in ICP</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Decentralization_in_ICP&amp;diff=4687"/>
		<updated>2023-03-23T08:26:25Z</updated>

		<summary type="html">&lt;p&gt;Alin.sinpalean: Typo: &amp;quot;to be composed three different axes&amp;quot; -&amp;gt; &amp;quot;along three different axes&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
As a blockchain protocol, decentralization is very important to the design and implementation of ICP. This article explains the design intent and the current state of the world when it comes to ICP decentralization.&lt;br /&gt;
&lt;br /&gt;
==What is Decentralization==&lt;br /&gt;
In the context of blockchains, [https://en.wikipedia.org/wiki/Decentralization#Blockchain_technology “decentralization” is defined by Wikipedia] as:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;“Decentralization [in blockchains] refers to the transfer of control and decision-making from a centralized entity (individual, organization, or group thereof) to a distributed network. Decentralized networks strive to reduce the level of trust that participants must place in one another, and deter their ability to exert authority or control over one another in ways that degrade the functionality of the network.”&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
All blockchains rely on a consensus protocol to come to agreement on the state of the network. The higher the decentralization of a network, the more individual actors that need to coordinate to come to an agreement. In a centralized or low-decentralization system, one or a handful of entities would be sufficient to establish the state of the system. &lt;br /&gt;
&lt;br /&gt;
Vitalik Buterin described [https://medium.com/@VitalikButerin/the-meaning-of-decentralization-a0c92b76a274 decentralization] along three independent axes:&lt;br /&gt;
&lt;br /&gt;
1. &#039;&#039;&#039;“Architectural (de)centralization&#039;&#039;&#039; — how many physical computers is a system made up of? How many of those computers can it tolerate breaking down at any single time?&lt;br /&gt;
&lt;br /&gt;
2. &#039;&#039;&#039;Political (de)centralization&#039;&#039;&#039; — how many individuals or organizations ultimately control the computers that the system is made up of?&lt;br /&gt;
&lt;br /&gt;
3. &#039;&#039;&#039;Logical (de)centralization&#039;&#039;&#039; — does the interface and data structures that the system presents and maintains look more like a single monolithic object, or an amorphous swarm? One simple heuristic is: if you cut the system in half, including both providers and users, will both halves continue to fully operate as independent units?”&lt;br /&gt;
&lt;br /&gt;
Buterin described  blockchains as being &#039;&#039;&#039;architecturally decentralized&#039;&#039;&#039; (many computers), &#039;&#039;&#039;politically decentralized&#039;&#039;&#039; (many entities), but &#039;&#039;&#039;logically centralized&#039;&#039;&#039; (typically, one consensus protocol).&lt;br /&gt;
&lt;br /&gt;
This article focuses on the architectural and political decentralization of ICP.&lt;br /&gt;
&lt;br /&gt;
==Why Decentralization Matters in Web3==&lt;br /&gt;
&lt;br /&gt;
===Benefits of decentralization===&lt;br /&gt;
&lt;br /&gt;
Decentralization is key to make web3 dapps run in a trustless manner. Vitalik Buterin broke it down into three core benefits one gets from decentralized computer networks like blockchains:&lt;br /&gt;
&lt;br /&gt;
1. &#039;&#039;&#039;Fault tolerance&#039;&#039;&#039; — decentralized systems are less likely to fail accidentally because they rely on many separate components that are not likely.&lt;br /&gt;
&lt;br /&gt;
2. &#039;&#039;&#039;Attack resistance&#039;&#039;&#039; — decentralized systems are more expensive to attack and destroy or manipulate because they lack sensitive central points that can be attacked at much lower cost than the economic size of the surrounding system.&lt;br /&gt;
&lt;br /&gt;
3. &#039;&#039;&#039;Collusion resistance&#039;&#039;&#039; — it is much harder for participants in decentralized systems to collude to act in ways that benefit them at the expense of other participants, whereas the leaderships of corporations and governments collude in ways that benefit themselves but harm less well-coordinated citizens, customers, employees and the general public all the time.&lt;br /&gt;
&lt;br /&gt;
For token holders, smart contract developers, or dapp users this means a more decentralized network would be:&lt;br /&gt;
* More resilient to computer or systems faults&lt;br /&gt;
* More resilient to attacks by malicious actors&lt;br /&gt;
* More resistant to collusion by entities within the network to harm the network&lt;br /&gt;
&lt;br /&gt;
==Measuring Decentralization==&lt;br /&gt;
&lt;br /&gt;
===How to measure decentralization===&lt;br /&gt;
&lt;br /&gt;
To help measure and improve decentralization, a common index used in the blockchain world is the [https://news.earn.com/quantifying-decentralization-e39db233c28e Nakamoto Coefficient]:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;“The basic idea is to (a) enumerate the &#039;&#039;&#039;essential subsystems&#039;&#039;&#039; of a decentralized system, (b) determine how many entities one would need to collude or be compromised to control each subsystem, and (c) then use the minimum of these as a measure of the effective decentralization of the system. The higher the value of this minimum Nakamoto coefficient, the more decentralized the system is.”&lt;br /&gt;
&#039;&#039;&lt;br /&gt;
In practice, determining the NC (Nakamoto Coefficient)  to particular chains is more art than science, but it helps provide a good way to identify bottlenecks, the growth or decentralization within a blockchain.  Please note: comparing NCs across blockchains can be very imprecise and akin to comparing “apples to oranges”.&lt;br /&gt;
&lt;br /&gt;
===Using Nakamoto Coefficients to measure ICP Decentralization===&lt;br /&gt;
&lt;br /&gt;
To measure decentralization, a common pattern in blockchains is:&lt;br /&gt;
&lt;br /&gt;
1. Identify the subsystems of a blockchain&lt;br /&gt;
2. For each subsystem, determine the subsystem’s NC (the # of entities necessary to compromise to control it)&lt;br /&gt;
3. The subsystem with the &#039;&#039;minimum&#039;&#039; NC represents the best holistic measure of decentralization&lt;br /&gt;
&lt;br /&gt;
In order to summarize overall decentralization of ICP, there are a few points worth considering:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Minimum of NCs may not reflect real risk&#039;&#039;&#039; - For the purposes of ICP, the minimum of subsystems may not be the proper metric to assess risk. For instance, the table of NCs for ICP infrastructure has a NC for the continent node providers are in but it&#039;s unlikely that the entire continent would collude to make damage. In short: the risk of NPs colluding is larger than the risk from nodes being in the same continent. This is why overall decentralization in ICP is best measured as a &#039;&#039;weighted average of NCs.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changes that remove/add single points of failures should count more&#039;&#039;&#039; -  For example, a change in NC from 1 to 2 in a particular subsystem is very important, as it means that there is no longer a single point of failure. That change is much more impactful than a change in NC from 10 to 11, but a weighted average will nevertheless appreciate both changes equally. This is why overall decentralization in ICP is best measured as a &#039;&#039;weighted average of logarithms of NCs&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Conclusion: Summary of overall decentralization in ICP (across all subsystems) is measured as a &#039;&#039;weighted average of logarithms of NCs.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===ICP Subsystems===&lt;br /&gt;
&lt;br /&gt;
ICP has multiple levels of subsystems and decentralization. Using the metaphor of a stack, they are (from top to bottom):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. “Common Good” dapps on the IC&#039;&#039;&#039;&lt;br /&gt;
* These are dapps the community uses, often as public goods&lt;br /&gt;
* These are controlled by NNS DAO or individual DAOs (e.g. Internet Identity, NNS frontend dapp, SNS)&lt;br /&gt;
* See [[Decentralization in ICP: Critical Dapps on the IC]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Weighted average of logs of NCs: TBD&lt;br /&gt;
&#039;&#039;&#039;Protocol Governance&lt;br /&gt;
* This is controlled by the NNS DAO&lt;br /&gt;
* The code running in the nodes&lt;br /&gt;
* See [[Decentralization in ICP: Protocol Governance]]&lt;br /&gt;
* See [[Weighted average of logs of NCs in Protocol]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Infrastructure Layer &#039;&#039;&#039;&lt;br /&gt;
* This is controlled by the NNS DAO&lt;br /&gt;
* This is the physical layer of ICP (how &amp;amp; which nodes participate in the network)&lt;br /&gt;
* See [[Decentralization in ICP: Infrastructure Governance]]&lt;br /&gt;
* See [[Weighted average of logs of NCs in infrastructure]]&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[Decentralization in ICP: Critical Dapps on the IC]]&lt;br /&gt;
* [[Decentralization in ICP: Protocol Governance]]&lt;br /&gt;
* [[Weighted average of logs of NCs in Protocol]]&lt;br /&gt;
* [[Decentralization in ICP: Infrastructure Governance]]&lt;br /&gt;
* [[Weighted average of logs of NCs in infrastructure]]&lt;/div&gt;</summary>
		<author><name>Alin.sinpalean</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Decentralization_in_ICP&amp;diff=4686</id>
		<title>Decentralization in ICP</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Decentralization_in_ICP&amp;diff=4686"/>
		<updated>2023-03-23T08:15:59Z</updated>

		<summary type="html">&lt;p&gt;Alin.sinpalean: Typo: &amp;quot;three independent axis&amp;quot; -&amp;gt; &amp;quot;three independent axes&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
&lt;br /&gt;
As a blockchain protocol, decentralization is very important to the design and implementation of ICP. This article explains the design intent and the current state of the world when it comes to ICP decentralization.&lt;br /&gt;
&lt;br /&gt;
==What is Decentralization==&lt;br /&gt;
In the context of blockchains, [https://en.wikipedia.org/wiki/Decentralization#Blockchain_technology “decentralization” is defined by Wikipedia] as:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;“Decentralization [in blockchains] refers to the transfer of control and decision-making from a centralized entity (individual, organization, or group thereof) to a distributed network. Decentralized networks strive to reduce the level of trust that participants must place in one another, and deter their ability to exert authority or control over one another in ways that degrade the functionality of the network.”&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
All blockchains rely on a consensus protocol to come to agreement on the state of the network. The higher the decentralization of a network, the more individual actors that need to coordinate to come to an agreement. In a centralized or low-decentralization system, one or a handful of entities would be sufficient to establish the state of the system. &lt;br /&gt;
&lt;br /&gt;
Vitalik Buterin described [https://medium.com/@VitalikButerin/the-meaning-of-decentralization-a0c92b76a274 decentralization] to be composed three independent axes:&lt;br /&gt;
&lt;br /&gt;
1. &#039;&#039;&#039;“Architectural (de)centralization&#039;&#039;&#039; — how many physical computers is a system made up of? How many of those computers can it tolerate breaking down at any single time?&lt;br /&gt;
&lt;br /&gt;
2. &#039;&#039;&#039;Political (de)centralization&#039;&#039;&#039; — how many individuals or organizations ultimately control the computers that the system is made up of?&lt;br /&gt;
&lt;br /&gt;
3. &#039;&#039;&#039;Logical (de)centralization&#039;&#039;&#039; — does the interface and data structures that the system presents and maintains look more like a single monolithic object, or an amorphous swarm? One simple heuristic is: if you cut the system in half, including both providers and users, will both halves continue to fully operate as independent units?”&lt;br /&gt;
&lt;br /&gt;
Buterin described  blockchains as being &#039;&#039;&#039;architecturally decentralized&#039;&#039;&#039; (many computers), &#039;&#039;&#039;politically decentralized&#039;&#039;&#039; (many entities), but &#039;&#039;&#039;logically centralized&#039;&#039;&#039; (typically, one consensus protocol).&lt;br /&gt;
&lt;br /&gt;
This article focuses on the architectural and political decentralization of ICP.&lt;br /&gt;
&lt;br /&gt;
==Why Decentralization Matters in Web3==&lt;br /&gt;
&lt;br /&gt;
===Benefits of decentralization===&lt;br /&gt;
&lt;br /&gt;
Decentralization is key to make web3 dapps run in a trustless manner. Vitalik Buterin broke it down into three core benefits one gets from decentralized computer networks like blockchains:&lt;br /&gt;
&lt;br /&gt;
1. &#039;&#039;&#039;Fault tolerance&#039;&#039;&#039; — decentralized systems are less likely to fail accidentally because they rely on many separate components that are not likely.&lt;br /&gt;
&lt;br /&gt;
2. &#039;&#039;&#039;Attack resistance&#039;&#039;&#039; — decentralized systems are more expensive to attack and destroy or manipulate because they lack sensitive central points that can be attacked at much lower cost than the economic size of the surrounding system.&lt;br /&gt;
&lt;br /&gt;
3. &#039;&#039;&#039;Collusion resistance&#039;&#039;&#039; — it is much harder for participants in decentralized systems to collude to act in ways that benefit them at the expense of other participants, whereas the leaderships of corporations and governments collude in ways that benefit themselves but harm less well-coordinated citizens, customers, employees and the general public all the time.&lt;br /&gt;
&lt;br /&gt;
For token holders, smart contract developers, or dapp users this means a more decentralized network would be:&lt;br /&gt;
* More resilient to computer or systems faults&lt;br /&gt;
* More resilient to attacks by malicious actors&lt;br /&gt;
* More resistant to collusion by entities within the network to harm the network&lt;br /&gt;
&lt;br /&gt;
==Measuring Decentralization==&lt;br /&gt;
&lt;br /&gt;
===How to measure decentralization===&lt;br /&gt;
&lt;br /&gt;
To help measure and improve decentralization, a common index used in the blockchain world is the [https://news.earn.com/quantifying-decentralization-e39db233c28e Nakamoto Coefficient]:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;“The basic idea is to (a) enumerate the &#039;&#039;&#039;essential subsystems&#039;&#039;&#039; of a decentralized system, (b) determine how many entities one would need to collude or be compromised to control each subsystem, and (c) then use the minimum of these as a measure of the effective decentralization of the system. The higher the value of this minimum Nakamoto coefficient, the more decentralized the system is.”&lt;br /&gt;
&#039;&#039;&lt;br /&gt;
In practice, determining the NC (Nakamoto Coefficient)  to particular chains is more art than science, but it helps provide a good way to identify bottlenecks, the growth or decentralization within a blockchain.  Please note: comparing NCs across blockchains can be very imprecise and akin to comparing “apples to oranges”.&lt;br /&gt;
&lt;br /&gt;
===Using Nakamoto Coefficients to measure ICP Decentralization===&lt;br /&gt;
&lt;br /&gt;
To measure decentralization, a common pattern in blockchains is:&lt;br /&gt;
&lt;br /&gt;
1. Identify the subsystems of a blockchain&lt;br /&gt;
2. For each subsystem, determine the subsystem’s NC (the # of entities necessary to compromise to control it)&lt;br /&gt;
3. The subsystem with the &#039;&#039;minimum&#039;&#039; NC represents the best holistic measure of decentralization&lt;br /&gt;
&lt;br /&gt;
In order to summarize overall decentralization of ICP, there are a few points worth considering:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Minimum of NCs may not reflect real risk&#039;&#039;&#039; - For the purposes of ICP, the minimum of subsystems may not be the proper metric to assess risk. For instance, the table of NCs for ICP infrastructure has a NC for the continent node providers are in but it&#039;s unlikely that the entire continent would collude to make damage. In short: the risk of NPs colluding is larger than the risk from nodes being in the same continent. This is why overall decentralization in ICP is best measured as a &#039;&#039;weighted average of NCs.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Changes that remove/add single points of failures should count more&#039;&#039;&#039; -  For example, a change in NC from 1 to 2 in a particular subsystem is very important, as it means that there is no longer a single point of failure. That change is much more impactful than a change in NC from 10 to 11, but a weighted average will nevertheless appreciate both changes equally. This is why overall decentralization in ICP is best measured as a &#039;&#039;weighted average of logarithms of NCs&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Conclusion: Summary of overall decentralization in ICP (across all subsystems) is measured as a &#039;&#039;weighted average of logarithms of NCs.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===ICP Subsystems===&lt;br /&gt;
&lt;br /&gt;
ICP has multiple levels of subsystems and decentralization. Using the metaphor of a stack, they are (from top to bottom):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. “Common Good” dapps on the IC&#039;&#039;&#039;&lt;br /&gt;
* These are dapps the community uses, often as public goods&lt;br /&gt;
* These are controlled by NNS DAO or individual DAOs (e.g. Internet Identity, NNS frontend dapp, SNS)&lt;br /&gt;
* See [[Decentralization in ICP: Critical Dapps on the IC]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Weighted average of logs of NCs: TBD&lt;br /&gt;
&#039;&#039;&#039;Protocol Governance&lt;br /&gt;
* This is controlled by the NNS DAO&lt;br /&gt;
* The code running in the nodes&lt;br /&gt;
* See [[Decentralization in ICP: Protocol Governance]]&lt;br /&gt;
* See [[Weighted average of logs of NCs in Protocol]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Infrastructure Layer &#039;&#039;&#039;&lt;br /&gt;
* This is controlled by the NNS DAO&lt;br /&gt;
* This is the physical layer of ICP (how &amp;amp; which nodes participate in the network)&lt;br /&gt;
* See [[Decentralization in ICP: Infrastructure Governance]]&lt;br /&gt;
* See [[Weighted average of logs of NCs in infrastructure]]&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[Decentralization in ICP: Critical Dapps on the IC]]&lt;br /&gt;
* [[Decentralization in ICP: Protocol Governance]]&lt;br /&gt;
* [[Weighted average of logs of NCs in Protocol]]&lt;br /&gt;
* [[Decentralization in ICP: Infrastructure Governance]]&lt;br /&gt;
* [[Weighted average of logs of NCs in infrastructure]]&lt;/div&gt;</summary>
		<author><name>Alin.sinpalean</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Decentralization&amp;diff=4305</id>
		<title>Decentralization</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Decentralization&amp;diff=4305"/>
		<updated>2023-02-17T08:58:30Z</updated>

		<summary type="html">&lt;p&gt;Alin.sinpalean: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Decentralization is key to making Web3 dapps run in a trustless manner. However, decentralization has many dimensions and cannot be understood and quantified using a single number or coefficient. One can distinguish between the decentralization of the entities running the machines on top of which a protocol runs, the decentralization of the consensus and sharding mechanism, the governance system, the owners of liquid tokens etc. In this case, the whole is greater than the sum of its parts and one cannot understand decentralization as a single discussion on each of these topics.&lt;br /&gt;
&lt;br /&gt;
For a truly decentralized system, anyone must have the possibility to contribute to the computing power and supporting infrastructure. Anybody should be able to check the integrity and authenticity of Web3 content served. No part of this should be restricted by a single party and all decisions should be taken by the community via a DAO. See also [https://assets-global.website-files.com/5fd11235b3950c2c1a3b6df4/62af6c641a672b3329b9a480_Unintended_Centralities_in_Distributed_Ledgers.pdf Trail of Bits Decentralization Report] and [https://arxiv.org/pdf/2205.04256.pdf SOK: Blockchain Decentralization] for related publicly accessible reports on these topics.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Node provider decentralization:&#039;&#039; Reducing this aspect to the number of machines is definitely insufficient, if the majority of them are owned or operated by a small number of parties or reside in a small number of companies’ data centers. Furthermore, for censorship resistance the jurisdictional location is important, while availability in the face of outages benefits from geographical distribution. In other words, decentralization is reflected by the number of nodes, the number of node providers, the number of data centers and the number of countries and continents where they are located. In February  2023, all 56 [https://dashboard.internetcomputer.org/providers IC node providers], which operate between 1 and 65 of the total 1235 nodes are known legal entities. How many nodes they operate and where they are located is publicly available information. Anyone can submit a proposal to become a node provider, which the community can then choose to accept. In contrast, node providers for most other blockchains remain anonymous and it is impossible to find out how many nodes they operate and where they are located.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Consensus and sharding decentralization:&#039;&#039; For the consensus and sharding mechanism, the number of corrupted entities required to lead to forks is crucial. Other important factors are the assignment of nodes to shards and the guarantees offered for the communication between shards. The main assumption the IC is based on requires more than ⅔ of the nodes to adhere to the protocol. No system can work with fewer correct nodes in the presence of arbitrary node behavior and guarantee consensus. This is the highest fraction of potentially malicious actors that any system can tolerate with a communication network that doesn’t guarantee any bounds on message delivery (see the [https://internetcomputer.org/whitepaper.pdf whitepaper] for more details on these assumptions). As long as this assumption holds in all subnets, all messages are guaranteed to be processed according to the interface spec, regardless of which subnet their canisters reside in. Subnet membership is subject to NNS votes, thus the community can assess if the assignment of nodes of different providers and different jurisdictions is satisfying their decentralization requirements. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Governance and token ownership decentralization:&#039;&#039; The evolution of a system depends on the governance mechanism that defines how a system can change (deploying user-facing improvements, tokenomics changes, API and cryptographic protocol modifications, node management, …). In some systems this is basically decided by the entities running the nodes, while for others, e.g. in case of the IC, the NNS canisters define the governance mechanisms, including the parameters for staking, voting and rewards. Users can stake ICP to be able participate in voting. Among other topics, the IC community votes on the protocol version running in the subnets, node provider remuneration and voting rewards, the addition/removal of node providers and the assignment of nodes to subnets. The DFINITY and ICA foundations are the parties with the highest voting power in the ecosystem, currently holding less than 23% of the total voting power. The overall voting participation is above 99%. More information on Governance and Tokenomics can be found [[NNS Canisters|here]] and [[Tokenomics of a DAO|here]].&lt;/div&gt;</summary>
		<author><name>Alin.sinpalean</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Internet_Computer_overview&amp;diff=4104</id>
		<title>Internet Computer overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Internet_Computer_overview&amp;diff=4104"/>
		<updated>2023-01-14T11:43:53Z</updated>

		<summary type="html">&lt;p&gt;Alin.sinpalean: Update broken dfinity.org links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Internet Computer is a “general-purpose” blockchain that provides a public platform for hosting tokens and decentralized applications (dapps). It acts as a complete technology stack, such that systems and services can be built that run entirely from the blockchain.&lt;br /&gt;
&lt;br /&gt;
==What is the Internet Computer?==&lt;br /&gt;
&lt;br /&gt;
Conceptually, the Internet Computer is an extension of the existing internet that enables a global network of computers to provide the computing power for running application software.&lt;br /&gt;
&lt;br /&gt;
In much the same way that the adoption of the transmission control protocol (TCP) and Internet protocol (IP) provided &#039;&#039;rules&#039;&#039; for transferring data between endpoints that helped to establish the “network of networks” that we know as the internet of today, the Internet Computer relies on a &#039;&#039;decentralization protocol&#039;&#039; called the &#039;&#039;&#039;Internet Computer protocol&#039;&#039;&#039; to define the software components that enable a global network of computers to combine their resources to read, replicate, modify, and return application state.&lt;br /&gt;
&lt;br /&gt;
The keys to Internet Computer infrastructure are:&lt;br /&gt;
&lt;br /&gt;
* A &#039;&#039;&#039;secure protocol&#039;&#039;&#039; that enables general-purpose computations to run transparently directly on the internet.&lt;br /&gt;
* A &#039;&#039;&#039;network&#039;&#039;&#039; that runs the protocol to provide computing capacity—for example, the hardware, CPU, and memory required to run programs—through &#039;&#039;&#039;independently-operated data centers.&#039;&#039;&#039;&lt;br /&gt;
* A &#039;&#039;&#039;globally-accessible and scalable platform&#039;&#039;&#039; for running software applications.&lt;br /&gt;
&lt;br /&gt;
==Why build the Internet Computer?==&lt;br /&gt;
&lt;br /&gt;
For end-users, accessing Internet Computer-based services is largely transparent, the experience of interacting with a decentralized application is the same as it is on a public or private cloud.&lt;br /&gt;
&lt;br /&gt;
For the people creating and managing those Internet Computer-based services, however, the Internet Computer eliminates many of the costs, risks, and complexities associated with developing and deploying modern applications and microservices. In addition, its secure protocol guarantees reliable message delivery, transparent accountability, and resilience without relying on firewalls, backup facilities, load balancing services, or failover orchestration.&lt;br /&gt;
&lt;br /&gt;
In some ways, building the Internet Computer is about restoring the Internet to its open, innovative, and creative roots. To focus on a few specific examples, the Internet Computer does the following:&lt;br /&gt;
&lt;br /&gt;
* Supports interoperability, shared functions, permanent APIs, and ownerless applications which reduces platform risk and encourages innovation and collaboration.&lt;br /&gt;
* Persists data automatically in memory which eliminates the need for database servers and storage management, improves computational efficiency, and simplifies software development.&lt;br /&gt;
* Simplifies the technology stack that IT organizations need to integrate and manage which improves operational efficiency.&lt;br /&gt;
&lt;br /&gt;
==Canisters (dapps/smart contracts)==&lt;br /&gt;
The Internet Computer hosts powerful smart contracts called canisters. Canisters are tamperproof, autonomous, hosted on-chain, and can be run concurrently and interact with each other. Canisters can service HTTP requests created by end-users, which allows them to directly serve interactive web experiences. This means that blockchain dapps, systems and services can be created without incorporating websites running on corporate cloud hosting services and private servers into their architecture, which provides true end-to-end Web 3.0 decentralization, censorship resistance, and superior security.&lt;br /&gt;
&lt;br /&gt;
More information about canisters can be found at:&lt;br /&gt;
* [[Canisters (dapps/smart contracts)|The canister wiki page]].&lt;br /&gt;
* This [https://medium.com/dfinity/software-canisters-an-evolution-of-smart-contracts-internet-computer-f1f92f1bfffb Medium post] about canisters.&lt;br /&gt;
* The [https://smartcontracts.org/docs/developers-guide/concepts/canisters-code.html developer documentation] for canisters.&lt;br /&gt;
&lt;br /&gt;
==Dapps==&lt;br /&gt;
The Internet Computer was designed to improve the user experience of interacting with smart contracts and dapps running on a blockchain. Dapps on the IC are able to serve web content, allowing users to interact with the dapps through their browser. Dapps themselves are run by canisters (dapps/smart contracts) on the IC with the robustness and security guarantees it affords. &lt;br /&gt;
Developers create dapps in programming languages such as Rust or Motoko, compile them to WebAssembly byte code, and deploy the WebAssembly modules into canisters on the Internet Computer. A canister comprises a WebAssembly module and persisted memory.&lt;br /&gt;
For more information or to start using dapps on the IC see:&lt;br /&gt;
* [[Index of dapps on the Internet Computer ecosystem|Index of dapps on the IC]]&lt;br /&gt;
* This [https://medium.com/dfinity/internet-computer-pioneers-early-adopters-describe-launching-dapps-on-the-blockchain-e979281f19b8 Medium post] where early adopters describe their experience of launching dapps on the IC.&lt;br /&gt;
&lt;br /&gt;
==Internet Identity==&lt;br /&gt;
&lt;br /&gt;
Internet Identity is an anonymous blockchain authentication framework supported by the Internet Computer. Users can create identity &amp;quot;anchors&amp;quot; to which they assign compatible cryptographically enabled devices, such as the fingerprint sensor on a laptop, the face ID system on a phone, or a portable HSM, such as a YubiKey or Ledger wallet. Thereafter, they can signup and authenticate to any dapp running on the Internet Computer using any of the devices they have assigned to their anchor. This provides a high level of convenience, allowing users to authenticate to dapps they are interested in with a very low level of friction, while benefiting from the highest level of cryptographic security, but without the need to directly manage or handle cryptographic key material themselves, which prevents mistakes and the theft of their key material. The system is anonymizing towards dapps, and whenever an anchor is used to interact with a dapp, the dapp sees a specially generated pseudonym, which prevents users being tracked across the various dapps they use. A user can create as many identity anchors as they wish.&lt;br /&gt;
&lt;br /&gt;
Unlike most authentication methods, Internet Identity does not require users to set and manage passwords or provide any personal identifying information to dapps or to Internet Identity.&lt;br /&gt;
&lt;br /&gt;
To read more about Internet Identity, or to generate an anchor, see:&lt;br /&gt;
* The [https://identity.ic0.app/ Internet Identity dapp].&lt;br /&gt;
* [[Internet_Identity_for_dapp_users|Internet Identity for dapp users]].&lt;br /&gt;
* [[Internet_Identity_technical_overview|Internet Identity technical overview]].&lt;br /&gt;
* The Internet Identity [https://smartcontracts.org/docs/ic-identity-guide/what-is-ic-identity.html developer documentation].&lt;br /&gt;
&lt;br /&gt;
==NNS==&lt;br /&gt;
The Internet Computer is governed and managed in realtime by a governance system, which is integrated into its blockchain protocols, called the Network Nervous System (or NNS). Anybody can submit proposals to the NNS, and they are either rejected, or adopted, and then automatically executed. Proposals can add additional nodes to run the Internet Computer, upgrade the Internet Computer protocol by updating the replica software running on node machines, tweak economic parameters, perform general configurations, and many other things. This provides an advantage over traditional blockchains, which must be upgraded manually by those operating nodes via a &amp;quot;hard fork&amp;quot;. The decentralized Internet Computer network is thus designed to be self-directed.&lt;br /&gt;
&lt;br /&gt;
==Tokens==&lt;br /&gt;
The Internet Computer uses a utility token ICP. Holders can stake ICP, allowing them to participate in the governance of the Internet Computer and earn voting rewards. ICP can also be converted into cycles and used to power computation, communication and storage costs of canisters. The blockchain incorporates a &amp;quot;reverse gas&amp;quot; model, in which smart contracts pay for their own computation, and must be pre-charged with cycles to run in much the same way an electric car must be pre-charged with electricity to drive. This ensures that end-users of dapps, systems and services can interact with them over the web without needing tokens to pay for the computations that they initiate. The Internet Computer maintains a floating conversion rate so that 1 Trillion cycles costs approximately 1 IMF SDR in ICP.&lt;br /&gt;
&lt;br /&gt;
==Internal Building Blocks==&lt;br /&gt;
Internally, the Internet Computer&#039;s network is comprised from individual subnet blockchains. New subnet blockchains (often simply called &amp;quot;subnets&amp;quot;) are formed by combining node machines to increase its capacity for hosting smart contract data and computation. Its protocols leverage chain key cryptography to have subnets function as a single blockchain, such that they are completely transparent to smart contract code, and every smart contract on the blockchain can directly call any other smart contract. Any number of subnets can be added, with each additional subnet linearly increasing the network&#039;s overall capacity.&lt;br /&gt;
&lt;br /&gt;
The Internet Computer runs on a sovereign network of special node machines that are dedicated to the task. They are run by independent node providers (node owner/operators), from independent data centers, in different geographies and jurisdictions around the world, without any need for corporate cloud services. New subnets are formed by combining node machines that are calculated to be independent according to a decentralization hierarchy comprising node provider, data center, geography and jurisdiction, which makes it possible to produce the desired security and resilience properties with both higher certainty and lower levels of replication, thus driving efficiency.&lt;br /&gt;
&lt;br /&gt;
For a more in depth view of the technical building blocks [https://dfinity.org/whitepaper.pdf The Internet Computer for Geeks whitepaper] gives a comprehensive coverage.&lt;br /&gt;
&lt;br /&gt;
The Internet Computer was developed by the DFINITY Foundation, which now continues as its lead contributor. The network underwent Genesis on 10th May 2021.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* &#039;&#039;&#039;The Internet Computer project website (hosted on the IC): [https://internetcomputer.org/ internetcomputer.org]&#039;&#039;&#039;&lt;br /&gt;
* [https://www.youtube.com/watch?v=XgsOKP224Zw Overview of the Internet Computer] video on YouTube.&lt;br /&gt;
* The [https://internetcomputer.org/howitworks/ How it Works] page where you can get an overview of different building blocks and features of the internet computer.&lt;/div&gt;</summary>
		<author><name>Alin.sinpalean</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Internet_Computer_wiki&amp;diff=4103</id>
		<title>Internet Computer wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Internet_Computer_wiki&amp;diff=4103"/>
		<updated>2023-01-14T11:41:43Z</updated>

		<summary type="html">&lt;p&gt;Alin.sinpalean: Update broken dfinity.org links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Welcome!==&lt;br /&gt;
&lt;br /&gt;
This is a general source of information about the &#039;&#039;&#039;Internet Computer (IC)&#039;&#039;&#039;, the world&#039;s fastest and most powerful blockchain network&amp;lt;ref&amp;gt;https://medium.com/dfinity/the-internet-computers-transaction-speed-and-finality-outpace-other-l1-blockchains-8e7d25e4b2ef&amp;lt;/ref&amp;gt;. Created for and by the IC community, topics vary from cryptography, network governance, user experience, tokenomics, developer tutorials and more.&lt;br /&gt;
&lt;br /&gt;
==Introduction to the Internet Computer==&lt;br /&gt;
The Internet Computer is a general-purpose blockchain that hosts [[canister smart contract]]s. It is designed to [[Replace traditional IT with a World Computer|provide a World Computer that can replace traditional IT]] and host a new generation of [[Web3:_The_bull_case_for_the_Internet_Computer|Web3]] services and applications that run solely from the blockchain, without the need for traditional IT. It can also play the role of Web3 orchestrator, by interacting with traditional blockchains.&lt;br /&gt;
&lt;br /&gt;
It has a completely unique design that reflects a ground-up rethink of blockchain architecture and the application of modern cryptography, [https://web.archive.org/web/20150914013643/http://dfinity.io/ which can be traced back to 2015]. It was built by the largest [https://dfinity.org/team ongoing R&amp;amp;D effort in crypto], which has employed many notable cryptographers, computer science researchers and engineers. The blockchain underwent genesis in May 2021 and became part of the public internet.&lt;br /&gt;
&lt;br /&gt;
The Internet Computer blockchain&#039;s protocols leverage novel [[chain key cryptography]] to combine multiple [[Limitless_Scaling#Subnet Architecture|subnet blockchains]] into a single blockchain. This allows it to [https://en.wikipedia.org/wiki/Scalability#Horizontal_(scale_out)_and_vertical_scaling_(scale_up) horizontally scale] the total volume of hosted [[canister smart contract]], and their computations and data, without limit. These smart contracts run at web speed, and with web-levels of efficiency, and uniquely, thanks to the blockchain architecture enabled by chain key crypto, can process HTTP requests and directly and securely serve interactive web experiences to the end-users of web3 services, without need for trusted intermediaries (whereas on other blockchains, the web experience users interact with is generally built on centralized, insecure and trusted servers or cloud computing services).&lt;br /&gt;
&lt;br /&gt;
Through these kinds of unique capabilities, the Internet Computer provides a platform that can be used to build mass market web3 services that run 100% on-chain, without any need for traditional IT, such as web servers and databases running on cloud computing services. The longer-term objective is that the Internet Computer will completely replace traditional IT, creating a &#039;&#039;blockchain singularity&#039;&#039;, in which everything runs fully on-chain in powerful new forms where it is unstoppable and cannot be hacked.&lt;br /&gt;
&lt;br /&gt;
The development of the Internet Computer has heralded numerous notable technological developments, such as [[chain key cryptography]] and programming languages such as [https://wiki.internetcomputer.org/wiki/Motoko Motoko]. In another notable advance, the Internet Computer hosts an advanced [https://en.wikipedia.org/wiki/Decentralized_autonomous_organization DAO] within its protocols, called the [[Network Nervous System]], which provides the community with direct control over network governance, and can upgrade the protocol running on its network nodes, without requiring the network to fork. The network&#039;s utility token is ICP (see [[Roles of the ICP utility token]]).&lt;br /&gt;
&lt;br /&gt;
A recent new technological advance has extended the Internet Computer&#039;s [[chain key cryptography]] protocols. This has enabled smart contracts hosted on the Internet Computer to directly interact with other blockchains, without need for dangerous centrally-controlled bridges or wrapping (see [[trustless multi-chain web3 using the IC]], and [[Extend Bitcoin, Ethereum and other blockchains|extending Bitcoin, Ethereum and other blockchains]]).&lt;br /&gt;
&lt;br /&gt;
For example, a canister smart contract hosted on the Internet Computer can create bitcoin addresses, and directly send and receive bitcoins on the Bitcoin ledger as though it were hosted by the Bitcoin network itself. This is possible because chain key crypto enables blockchains to create public &amp;quot;chain keys&amp;quot;, for which their nodes can create corresponding signatures. Recent work has now made it possible to create ECDSA chain keys. Since [https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm ECDSA] is the signature scheme used by most other blockchains, this means the Internet Computer can create TX on other blockchains.&lt;br /&gt;
&lt;br /&gt;
Future work will enable its smart contracts to directly interact with other important blockchains such as [https://ethereum.org/en/ Ethereum]. This also leverages other important features such as [[HTTPS outcalls]]. As a consequence, many believe that the Internet Computer will play the role of an orchestration layer that combines different blockchains in the web3 environment, and helps combine them with off-chain services and systems, such as Web 2.0 services and enterprise systems, in a trustless way.&lt;br /&gt;
&lt;br /&gt;
===Popular places to start===&lt;br /&gt;
* &#039;&#039;&#039;The Internet Computer project website (hosted on the IC): [https://internetcomputer.org/ internetcomputer.org]&#039;&#039;&#039;&lt;br /&gt;
* [https://www.youtube.com/watch?v=IfM3I8pudFs&amp;amp;t=327s Internet Computer overview video from 2022 IC hackathon]&lt;br /&gt;
* [https://www.youtube.com/watch?v=IfM3I8pudFs June 2022 IC hackathon, full launch video]&lt;br /&gt;
* [https://internetcomputer.org/icig.pdf Internet Computer Infographic (PDF)]&lt;br /&gt;
&amp;lt;!-- Link is going to nowhere. Should be updated if target is clear. Uncommented for now.&lt;br /&gt;
* [https://internetcomputer.org/education#online-courses/ Internet Computer: Online Courses]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* [[Glossary]]&lt;br /&gt;
&lt;br /&gt;
===For a general audience===&lt;br /&gt;
* [[Internet Computer overview]]&lt;br /&gt;
* [[Internet Computer vision]]&lt;br /&gt;
* [https://internetcomputer.org/roadmap/ Internet Computer roadmap]&lt;br /&gt;
&lt;br /&gt;
===For a more technical audience===&lt;br /&gt;
* [https://eprint.iacr.org/2022/087 &amp;quot;Internet Computer for Geeks&amp;quot; paper]&lt;br /&gt;
* [[IC architecture overview]]&lt;br /&gt;
* The [https://internetcomputer.org/howitworks &amp;quot;How it works&amp;quot; series] with videos and in-depth articles on various topics.&lt;br /&gt;
* [https://www.reddit.com/r/dfinity/comments/ozboyi/megathread_technical_amas/ Technical AMAs on Reddit by different IC and DFINITY teams]&lt;br /&gt;
&lt;br /&gt;
== Internet Identity Introduction == &lt;br /&gt;
One of the core benefits of building on the Internet Computer is that end users do not need to pay fees or use tokens to access and use dapps. As an alternative to authenticating from a wallet, users can authenticate with an Internet Identity. Learn more information about Internet Identity (II), a blockchain authentication framework supported by the Internet Computer:&lt;br /&gt;
&lt;br /&gt;
* [[What is Internet Identity]]&lt;br /&gt;
* [[How to create an Internet Identity]]&lt;br /&gt;
* [[Internet Identity technical overview]]&lt;br /&gt;
* [https://identity.ic0.app/ Internet Identity dapp]&lt;br /&gt;
&lt;br /&gt;
==IC for Dapp Users ==&lt;br /&gt;
&lt;br /&gt;
If you use or are interested in using dapps on the Internet Computer, this section will help you understand the user experience benefits of the IC, how to use Internet Identity, or find more IC dapps.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* [[Introduction to the Internet Computer for dapp users]]&lt;br /&gt;
* [[Index of dapps on the Internet Computer]]&lt;br /&gt;
&lt;br /&gt;
See more in [[Internet Computer for dapp users]]&lt;br /&gt;
&lt;br /&gt;
== IC for ICP Token-holders, Stakers, and Neuron Holders==&lt;br /&gt;
&lt;br /&gt;
The Internet Computer is governed by on-chain governance system called the Network Nervous System (NNS). To participate on governance, users need to stake ICP tokens. This section will explain how the NNS works, ICP tokens, staking, and options for managing one&#039;s ICP.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* [[ICP token]]&lt;br /&gt;
* [[Tutorials for acquiring, managing, and staking ICP]]&lt;br /&gt;
* [[Staking, voting and rewards]]&lt;br /&gt;
* [[Governance of the Internet Computer]]&lt;br /&gt;
* [[Network Nervous System]]&lt;br /&gt;
* [[Total supply, circulating supply, and staked_ICP]]&lt;br /&gt;
* [[NNS neuron operations related to maturity]]&lt;br /&gt;
&lt;br /&gt;
See more in [[Internet_Computer_token-holders,_investors_and_neuron_holders|Internet Computer token-holders, investors, and neuron holders]].&lt;br /&gt;
&lt;br /&gt;
== IC for Smart Contract and Dapp Developers ==&lt;br /&gt;
&lt;br /&gt;
The Internet Computer (IC) is a new platform for executing smart contracts. This section contains information for developers, including links to documentation, developer forums, and relevant dashboards.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* [[Canisters (dapps/smart contracts)]]&lt;br /&gt;
* [https://smartcontracts.org/ Developer documentation on smartcontract.org]&lt;br /&gt;
* [https://forum.dfinity.org/ IC community developer forum]&lt;br /&gt;
&amp;lt;!--* [[Index of libraries for Internet Computer development]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--* [[Best practices for a high traffic dapp launch]]--&amp;gt;&lt;br /&gt;
* [[Bitcoin integration]]&lt;br /&gt;
* [[SNS Tokenization Considerations]]&lt;br /&gt;
* [[Web Speed]]&lt;br /&gt;
* [[Web Serving]]&lt;br /&gt;
* [[Limitless Scaling]]&lt;br /&gt;
* [[Users interact with dapps without tokens]]&lt;br /&gt;
* [[Parallelism]]&lt;br /&gt;
* [[Error Codes returned by Internet Computer]]&lt;br /&gt;
&lt;br /&gt;
If you&#039;ve been programming smart contracts on Ethereum before, you should read [[The Internet Computer for Ethereum Developers]].&lt;br /&gt;
&lt;br /&gt;
See more in [[Internet Computer for smart contract and dapp developers]].&lt;br /&gt;
&lt;br /&gt;
== IC for the Curious, Researchers and Blockchain Enthusiasts ==&lt;br /&gt;
&lt;br /&gt;
This section is for those interested in how the Internet Computer works under the hood. It touches many different subject areas from cryptography, consensus protocols, virtual machines, operating systems, networking, distributed systems, etc.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* [https://internetcomputer.org/howitworks/ How the Internet Computer Works]&lt;br /&gt;
* [https://dashboard.internetcomputer.org/ Internet Computer dashboard] &lt;br /&gt;
* [[Internet Computer performance]]&lt;br /&gt;
* [[DFINITY Foundation]]&lt;br /&gt;
* [[Bitcoin integration]]&lt;br /&gt;
* [[Third-party security audits]]&lt;br /&gt;
* [[Networking]]&lt;br /&gt;
* [[Replicated state structure]]&lt;br /&gt;
* [[New Subnet Creation]]&lt;br /&gt;
* [[Catch-Up Package]]&lt;br /&gt;
* [[Summary Block]]&lt;br /&gt;
* [[ICP technical design documents]]&lt;br /&gt;
&lt;br /&gt;
== For Node Providers == &lt;br /&gt;
Node providers invest in and operate node hardware, which powers the Internet Computer with processing and storage capacity. Running these nodes in data centers provides the high performance and the cost-effectiveness of the Internet Computer. Every node provider is allowed a limited amount of nodes.&lt;br /&gt;
* [[Node Provider Onboarding]]&lt;br /&gt;
* [[Gen-2 Data Center runbook]]&lt;br /&gt;
* [[Gen-2 Network Requirements]]&lt;br /&gt;
* [[IC OS Installation Runbook - Dell Poweredge]]&lt;br /&gt;
* [[IC OS Installation Runbook - Supermicro]]&lt;br /&gt;
* [[Possible Node Onboarding Errors]]&lt;br /&gt;
* [[Storage Runbook]]&lt;br /&gt;
* [[Node rewards]]&lt;br /&gt;
* [[Node Provider Remuneration]]&lt;br /&gt;
* [[Node Provider Self-declaration]]&lt;br /&gt;
&lt;br /&gt;
== Technical Working Groups == &lt;br /&gt;
* [[Identity &amp;amp; Authentication]]&lt;br /&gt;
* [[Developer Tooling]]&lt;br /&gt;
* [[Ledger &amp;amp; Tokenization]]&lt;br /&gt;
* [[Scalability &amp;amp; Performance]]&lt;br /&gt;
* [[Education]]&lt;br /&gt;
&lt;br /&gt;
== FAQs, Tutorials, and How-tos==&lt;br /&gt;
Tutorials are guided introductions to user stories, intended for first-time users and characterized by a shallow learning curve. How-Tos are step-by-step instructions for specific, narrow goals.&lt;br /&gt;
&lt;br /&gt;
===FAQs===&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
&lt;br /&gt;
===Best Practices===&lt;br /&gt;
Example:&lt;br /&gt;
* [[Managing ICP holdings]]&lt;br /&gt;
* [[Managing Internet Identity]]&lt;br /&gt;
* [[Maximizing Voting and NNS Rewards]] &lt;br /&gt;
See more in [[Best Practices]]&lt;br /&gt;
&lt;br /&gt;
=== Tutorials ===&lt;br /&gt;
Example:&lt;br /&gt;
* [[Tutorials for acquiring, managing, and staking ICP]]&lt;br /&gt;
* [[How-To: Claim neurons for seed participants]]&lt;br /&gt;
* [[How-To: Create an NNS motion proposal]]&lt;br /&gt;
* [[How-To: Set your neuron to follow another neuron]]&lt;br /&gt;
* [[How-To: Updating neuron following via quill]]&lt;br /&gt;
&lt;br /&gt;
See more in [[How-Tos]].&lt;br /&gt;
&lt;br /&gt;
==Contributing to the Wiki==&lt;br /&gt;
&lt;br /&gt;
=== How to contribute ===&lt;br /&gt;
Anyone can read the wiki. You can also edit pages, all you need to do is [https://wiki.internetcomputer.org/wiki/Special:CreateAccount create an account]. See more in [[Contributing to the wiki]].&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* &#039;&#039;&#039;The Internet Computer project website (hosted on the IC): [https://internetcomputer.org/ internetcomputer.org]&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Alin.sinpalean</name></author>
	</entry>
</feed>