<?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=Andrew.chepreghy</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=Andrew.chepreghy"/>
	<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/wiki/Special:Contributions/Andrew.chepreghy"/>
	<updated>2026-04-30T16:06:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Web_Serving&amp;diff=3018</id>
		<title>Web Serving</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Web_Serving&amp;diff=3018"/>
		<updated>2022-09-02T11:51:16Z</updated>

		<summary type="html">&lt;p&gt;Andrew.chepreghy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The Internet Computer (IC) is the only blockchain that can host a full dapp; frontend, backend, and data included. This is a crucial and distinguishing feature allowing dapps to run 100% on-chain inheriting the security and decentralization of blockchain without sacrificing speed or affordability. This is possible because nodes of the IC can securely serve HTTP requests and by leveraging the reverse gas model.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Enabling true web3===&lt;br /&gt;
Today, most dapps built on other blockchains rely on centralized cloud providers (e.g. AWS, GCP) to host their frontend, amongst other parts, which introduces a single point of failure. An example pattern in the industry is to have a smart contract performing some computation, yet, the frontend is often served from a Node server. This not only includes security risks by possible tampering with the frontend, but dapps running on centralized servers can be taken down at any point, which negates the censorship resistant nature of blockchain. Web3 requires that all parts of a dapp are realized by smart contracts.&lt;br /&gt;
Further, Web3 functionality is only achievable by blockchain applications running fully decentralized, which includes smart contract logic, on-chain data storage and serving frontend to the user’s browser.&lt;br /&gt;
&lt;br /&gt;
Hosting dapps 100% on-chain provides the additional benefit of letting DAOs launched on the Internet Computer to completely control these applications with on-chain governance and not only the backend logic. This lets users be fully in control of these dapps realizing complete decentralization and democratization of web applications.&lt;br /&gt;
&lt;br /&gt;
===Processing HTTP requests===&lt;br /&gt;
Blockchains differ in their processing of computation from regular web servers, which makes serving web a difficult task. To overcome this, the Internet Computer introduces something called boundary nodes. These nodes act as a layer that translates HTTP requests from users to messages that can be processed by smart contracts running on the Internet Computer. This allows users to update the state of the blockchain simply by interacting with a browser.&lt;br /&gt;
&lt;br /&gt;
===Reverse Gas Model===&lt;br /&gt;
&lt;br /&gt;
Requiring users to have tokens in order to use applications and pay gas fees is an enormous barrier of entry. One key feature of the Internet Computer that allows users to directly interact with the blockchain through a browser for free is the reverse gas model. Simply put, canisters pay for their own computation and storage costs using cycles. In other words it is the developers and not the end-users who pay for gas.&lt;br /&gt;
&lt;br /&gt;
This offers a very similar model to Web2 applications, whose hosting is taken care of by developers. The reverse gas fee model allows users to experiment with dapps for free and allows dapps to scale infinitely by not putting up a wall in front of their users at the very first interaction.&lt;br /&gt;
&lt;br /&gt;
===Internet Identity===&lt;br /&gt;
Users should not have to set up wallets in order to interact with dapps. To remove this hurdle the Internet Computer offers an alternative anonymous authentication solution called the Internet Identity. With it users can login to dapps running on the Internet Computer by simply using a biometric sensor on their device. In the background, Internet Identity uses novel cryptography and creates new ids for each dapp one authenticates with. This is a simple way for users to login and use dapps running on the Internet Computer without having to create a wallet, while they remain anonymous and untraceable across different applications.&lt;/div&gt;</summary>
		<author><name>Andrew.chepreghy</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Users_interact_with_dapps_without_tokens&amp;diff=2994</id>
		<title>Users interact with dapps without tokens</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Users_interact_with_dapps_without_tokens&amp;diff=2994"/>
		<updated>2022-08-31T12:38:45Z</updated>

		<summary type="html">&lt;p&gt;Andrew.chepreghy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;On the Internet Computer, a browser is all you need to interact with smart contracts. This removes the hurdle of having to create a wallet, hold tokens or pay expensive gas fees. This is in contrast with other blockchains, where users need to hold tokens to do anything on the blockchain.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Reverse Gas Model (AKA &amp;quot;canister pays&amp;quot;)===&lt;br /&gt;
Internet Computer dapps adopt a &amp;quot;Reverse Gas model&amp;quot; where developers load canisters with computation cycles in advance which in turn allows users to interact with a dapp without having to pay in tokens. Cycles are stable in cost are obtained by converting ICP tokens. This allows developers to know in advance how much they will need to spend on computation.&lt;br /&gt;
&lt;br /&gt;
As an example, the Motoko Playground dapp is hosted and executed entirely on-chain and it does not require visitors to pay for the computation: https://m7sm4-2iaaa-aaaab-qabra-cai.raw.ic0.app/. The [http://identity.ic0.app Internet Identity app] is also a free to use application running on the IC.&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
There are many IC applications that allow to interact without tokens. One of the forerunning apps is [http://identity.ic0.app Internet Identity app] which allows to authenticate to many other apps. NFT Marketplaces like [https://entrepot.app/ Entrepot] allow to sign in with various wallets without the need of tokens.&lt;/div&gt;</summary>
		<author><name>Andrew.chepreghy</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Users_interact_with_dapps_without_tokens&amp;diff=2993</id>
		<title>Users interact with dapps without tokens</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Users_interact_with_dapps_without_tokens&amp;diff=2993"/>
		<updated>2022-08-31T12:38:27Z</updated>

		<summary type="html">&lt;p&gt;Andrew.chepreghy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;On the Internet Computer, a browser is all you need to interact with smart contracts. This removes the hurdle of having to create a wallet, hold tokens or pay expensive gas fees. This is in contrast with other blockchains, where users need to hold tokens to do anything on the blockchain&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Reverse Gas Model (AKA &amp;quot;canister pays&amp;quot;)===&lt;br /&gt;
Internet Computer dapps adopt a &amp;quot;Reverse Gas model&amp;quot; where developers load canisters with computation cycles in advance which in turn allows users to interact with a dapp without having to pay in tokens. Cycles are stable in cost are obtained by converting ICP tokens. This allows developers to know in advance how much they will need to spend on computation.&lt;br /&gt;
&lt;br /&gt;
As an example, the Motoko Playground dapp is hosted and executed entirely on-chain and it does not require visitors to pay for the computation: https://m7sm4-2iaaa-aaaab-qabra-cai.raw.ic0.app/. The [http://identity.ic0.app Internet Identity app] is also a free to use application running on the IC.&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
There are many IC applications that allow to interact without tokens. One of the forerunning apps is [http://identity.ic0.app Internet Identity app] which allows to authenticate to many other apps. NFT Marketplaces like [https://entrepot.app/ Entrepot] allow to sign in with various wallets without the need of tokens.&lt;/div&gt;</summary>
		<author><name>Andrew.chepreghy</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Users_interact_with_dapps_without_tokens&amp;diff=2992</id>
		<title>Users interact with dapps without tokens</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Users_interact_with_dapps_without_tokens&amp;diff=2992"/>
		<updated>2022-08-31T12:38:05Z</updated>

		<summary type="html">&lt;p&gt;Andrew.chepreghy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;On the Internet Computer, a browser is all you need to interact with smart contracts. This removes the hurdle of having to create a wallet, hold tokens or pay expensive gas fees. This is in contrast with other blockchains where users need to hold tokens to do anything on the blockchain&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Reverse Gas Model (AKA &amp;quot;canister pays&amp;quot;)===&lt;br /&gt;
Internet Computer dapps adopt a &amp;quot;Reverse Gas model&amp;quot; where developers load canisters with computation cycles in advance which in turn allows users to interact with a dapp without having to pay in tokens. Cycles are stable in cost are obtained by converting ICP tokens. This allows developers to know in advance how much they will need to spend on computation.&lt;br /&gt;
&lt;br /&gt;
As an example, the Motoko Playground dapp is hosted and executed entirely on-chain and it does not require visitors to pay for the computation: https://m7sm4-2iaaa-aaaab-qabra-cai.raw.ic0.app/. The [http://identity.ic0.app Internet Identity app] is also a free to use application running on the IC.&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
There are many IC applications that allow to interact without tokens. One of the forerunning apps is [http://identity.ic0.app Internet Identity app] which allows to authenticate to many other apps. NFT Marketplaces like [https://entrepot.app/ Entrepot] allow to sign in with various wallets without the need of tokens.&lt;/div&gt;</summary>
		<author><name>Andrew.chepreghy</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Limitless_Scaling&amp;diff=2991</id>
		<title>Limitless Scaling</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Limitless_Scaling&amp;diff=2991"/>
		<updated>2022-08-31T12:25:51Z</updated>

		<summary type="html">&lt;p&gt;Andrew.chepreghy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The Internet Computer (IC) can scale its capacity arbitrarily, simply by adding additional nodes forming new subnets. Since its genesis, the IC&#039;s Network Nervous System (NNS) has added new subnets almost on a weekly basis. In contrast, most other blockchains have transaction limits baked into the protocol (e.g. adding more servers to Bitcoin does not increase its transaction volume) and need cumbersome workarounds to address scaling.&lt;br /&gt;
&lt;br /&gt;
See Internet Computer Dashboard: https://dashboard.internetcomputer.org/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Subnet Architecture ===&lt;br /&gt;
The Internet Computer Protocol is running on standardized node hardware in independent data centers around the world. The [[Network Nervous System]] governance system, scales the network by combining nodes from different data centers to spin up new subnet blockchains.&lt;br /&gt;
&lt;br /&gt;
The Internet Computer’s partitioning into subnet blockchains is what allows the network to infinitely scale. Each subnet blockchain is capable of processing update and query calls independently from other subnets. This means that the entire network can easily be scaled by simply adding more subnets to the network. For update calls that need to be processed on every node, this method of scaling the network can ensure that more update calls are processed per second. The Internet Computer is capable of adding hundreds of new subnets via the NNS.&lt;br /&gt;
&lt;br /&gt;
For query calls, however, scalability can simply be achieved by adding more nodes to a subnet because these calls are processed locally on one node. The network is capable of adding thousands of new nodes in its current state. The addition of more nodes and subnets to the network ensures web speed and infinite scalability.&lt;br /&gt;
&lt;br /&gt;
=== Finality and Consensus===&lt;br /&gt;
The Internet Computer’s novel consensus mechanism also plays a key role in the network’s ability to scale. [https://assets.ctfassets.net/ywqk17d3hsnp/1Gutwfrd1lMgiUBJZGCdUG/d3ea7730aba0a4b793741681463239f5/podc-2022-cr.pdf Internet Computer Consensus] (ICC) consists of four different layers that create candidate blocks, identify valid blocks, rank block makers, and then finalize the agreed upon blocks. The blockchain’s asynchronous finalization mechanism is impressively fast, ensuring that the finality for new blocks is achieved in under two seconds on average on the NNS subnet, and 1 second on dapp subnets.&lt;br /&gt;
&lt;br /&gt;
This contributes to the IC’s resilience. Additionally, unlike legacy blockchains, the IC has no nodes hosted by cloud providers which helps to ensure that the network is tamper-proof, secure, and stable.&lt;/div&gt;</summary>
		<author><name>Andrew.chepreghy</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Parallelism&amp;diff=2990</id>
		<title>Parallelism</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Parallelism&amp;diff=2990"/>
		<updated>2022-08-31T09:59:02Z</updated>

		<summary type="html">&lt;p&gt;Andrew.chepreghy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;A single canister smart contract has one thread of execution for updates, but the Internet Computer can execute a &#039;&#039;massive number&#039;&#039; of canisters in parallel. In addition, we make a distinction between requests that need to update the state of a canister, and queries, which cannot modify the state of a canister.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The programming model of the Internet Computer consists of &#039;&#039;&#039;memory-isolated canisters&#039;&#039;&#039; communicating by &#039;&#039;&#039;asynchronous&#039;&#039;&#039; message passing of binary data encoding Candid values. A canister processes its messages one-at-a-time, preventing race conditions. A canister uses call-backs to register what needs to be done with the result of any inter-canister messages it issues.&lt;br /&gt;
&lt;br /&gt;
==Canisters as actors==&lt;br /&gt;
&lt;br /&gt;
The actor model is a mathematical model of concurrent computation, where, in response to a message, an actor can modify its state, send messages, and create more actors.&lt;br /&gt;
&lt;br /&gt;
A canister is like an actor in many respects. For example, an actor has:&lt;br /&gt;
* a private state that can only be modified by the canister itself;&lt;br /&gt;
* a single thread of execution, so it does not need lock-based synchronization;&lt;br /&gt;
* the ability to communicate with other canisters through asynchronous messages; and&lt;br /&gt;
* the ability to create new canisters.&lt;br /&gt;
&lt;br /&gt;
An important difference between traditional actors and canisters is that canisters on the Internet Computer have bidirectional message passing. Messages are divided into requests and responses, where requests can be replied to and the Internet Computer keeps track of the callback for responses.&lt;br /&gt;
&lt;br /&gt;
In actor terminology, each actor has a mailing address that is used to receive messages. A canister also has a mailing address, which happens to look similar to an IPv6 address.&lt;br /&gt;
&lt;br /&gt;
While a canister&#039;s update throughput is limited by consensus of the blockchain and the single thread of execution, a canister can serve hundreds of queries concurrently, achieving throughput in the order of thousands of queries per second, and latency measured in milliseconds. &lt;br /&gt;
&lt;br /&gt;
To complete this picture, it should be added that end users also participate as actors in the model. This means that browsers and mobile apps can directly perform update and query operations on canisters.&lt;br /&gt;
&lt;br /&gt;
In addition, the Motoko programming language, which is tailored to the Internet Computer, is inspired by the actor model.&lt;/div&gt;</summary>
		<author><name>Andrew.chepreghy</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Parallelism&amp;diff=2989</id>
		<title>Parallelism</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Parallelism&amp;diff=2989"/>
		<updated>2022-08-31T09:58:34Z</updated>

		<summary type="html">&lt;p&gt;Andrew.chepreghy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;A single canister has one thread of execution for updates, but the Internet Computer can execute a &#039;&#039;massive number&#039;&#039; of canisters in parallel. In addition, we make a distinction between requests that need to update the state of a canister, and queries, which cannot modify the state of a canister.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The programming model of the Internet Computer consists of &#039;&#039;&#039;memory-isolated canisters&#039;&#039;&#039; communicating by &#039;&#039;&#039;asynchronous&#039;&#039;&#039; message passing of binary data encoding Candid values. A canister processes its messages one-at-a-time, preventing race conditions. A canister uses call-backs to register what needs to be done with the result of any inter-canister messages it issues.&lt;br /&gt;
&lt;br /&gt;
==Canisters as actors==&lt;br /&gt;
&lt;br /&gt;
The actor model is a mathematical model of concurrent computation, where, in response to a message, an actor can modify its state, send messages, and create more actors.&lt;br /&gt;
&lt;br /&gt;
A canister is like an actor in many respects. For example, an actor has:&lt;br /&gt;
* a private state that can only be modified by the canister itself;&lt;br /&gt;
* a single thread of execution, so it does not need lock-based synchronization;&lt;br /&gt;
* the ability to communicate with other canisters through asynchronous messages; and&lt;br /&gt;
* the ability to create new canisters.&lt;br /&gt;
&lt;br /&gt;
An important difference between traditional actors and canisters is that canisters on the Internet Computer have bidirectional message passing. Messages are divided into requests and responses, where requests can be replied to and the Internet Computer keeps track of the callback for responses.&lt;br /&gt;
&lt;br /&gt;
In actor terminology, each actor has a mailing address that is used to receive messages. A canister also has a mailing address, which happens to look similar to an IPv6 address.&lt;br /&gt;
&lt;br /&gt;
While a canister&#039;s update throughput is limited by consensus of the blockchain and the single thread of execution, a canister can serve hundreds of queries concurrently, achieving throughput in the order of thousands of queries per second, and latency measured in milliseconds. &lt;br /&gt;
&lt;br /&gt;
To complete this picture, it should be added that end users also participate as actors in the model. This means that browsers and mobile apps can directly perform update and query operations on canisters.&lt;br /&gt;
&lt;br /&gt;
In addition, the Motoko programming language, which is tailored to the Internet Computer, is inspired by the actor model.&lt;/div&gt;</summary>
		<author><name>Andrew.chepreghy</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Limitless_Scaling&amp;diff=2973</id>
		<title>Limitless Scaling</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Limitless_Scaling&amp;diff=2973"/>
		<updated>2022-08-30T16:15:17Z</updated>

		<summary type="html">&lt;p&gt;Andrew.chepreghy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Most blockchains have transaction limits baked into the protocol (e.g. adding more servers to Bitcoin does not increase its transaction volume) and need cumbersome workarounds to address scaling. The Internet Computer can process unbounded volumes of smart contract data and computation natively because it can grow in capacity by adding more subnets containing more nodes. That is how the network went from 19 blocks per second in July 2021 to 36 blocks per second by July 2022.&lt;br /&gt;
&lt;br /&gt;
See Internet Computer Dashboard: https://dashboard.internetcomputer.org/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Subnet Architecture ===&lt;br /&gt;
The Internet Computer Protocol is running on standardized node hardware in independent data centers around the world. The [[Network Nervous System]] governance system, scales the network by combining nodes from different data centers to spin up new subnet blockchains.&lt;br /&gt;
&lt;br /&gt;
The Internet Computer’s partitioning into subnet blockchains is what allows the network to infinitely scale. Each subnet blockchain is capable of processing update and query calls independently from other subnets. This means that the entire network can easily be scaled by simply adding more subnets to the network. For update calls that need to be processed on every node, this method of scaling the network can ensure that more update calls are processed per second. The Internet Computer is capable of adding hundreds of new subnets via the NNS.&lt;br /&gt;
&lt;br /&gt;
For query calls, however, scalability can simply be achieved by adding more nodes to a subnet because these calls are processed locally on one node. The network is capable of adding thousands of new nodes in its current state. The addition of more nodes and subnets to the network ensures web speed and infinite scalability.&lt;br /&gt;
&lt;br /&gt;
=== Finality and Consensus===&lt;br /&gt;
The Internet Computer’s novel consensus mechanism also plays a key role in the network’s ability to scale. [https://assets.ctfassets.net/ywqk17d3hsnp/1Gutwfrd1lMgiUBJZGCdUG/d3ea7730aba0a4b793741681463239f5/podc-2022-cr.pdf Internet Computer Consensus] (ICC) consists of four different layers that create candidate blocks, identify valid blocks, rank block makers, and then finalize the agreed upon blocks. The blockchain’s asynchronous finalization mechanism is impressively fast, ensuring that the finality for new blocks is achieved in under two seconds on average on the NNS subnet, and 1 second on dapp subnets.&lt;br /&gt;
&lt;br /&gt;
This contributes to the IC’s resilience. Additionally, unlike legacy blockchains, the IC has no nodes hosted by cloud providers which helps to ensure that the network is tamper-proof, secure, and stable.&lt;/div&gt;</summary>
		<author><name>Andrew.chepreghy</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Users_interact_with_dapps_without_tokens&amp;diff=2972</id>
		<title>Users interact with dapps without tokens</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Users_interact_with_dapps_without_tokens&amp;diff=2972"/>
		<updated>2022-08-30T16:14:52Z</updated>

		<summary type="html">&lt;p&gt;Andrew.chepreghy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The biggest hurdle almost all blockchain face is the need to create a wallet and hold tokens if users want to interact with smart contracts. Once a user created a wallet and loaded it with tokens, they are required to pay for each interaction with smart contracts in the form of gas fees. The Internet Computer allows users to interact with canister smart contracts without the need for any wallets by employing several unique design choices.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Reverse Gas Model (AKA &amp;quot;canister pays&amp;quot;)===&lt;br /&gt;
Internet Computer dapps adopt a &amp;quot;Reverse Gas model&amp;quot; where developers load canisters with computation cycles in advance which in turn allows users to interact with a dapp without having to pay in tokens. Cycles are stable in cost are obtained by converting ICP tokens. This allows developers to know in advance how much they will need to spend on computation.&lt;br /&gt;
&lt;br /&gt;
As an example, the Motoko Playground dapp is hosted and executed entirely on-chain and it does not require visitors to pay for the computation: https://m7sm4-2iaaa-aaaab-qabra-cai.raw.ic0.app/. The [http://identity.ic0.app Internet Identity app] is also a free to use application running on the IC.&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
There are many IC applications that allow to interact without tokens. One of the forerunning apps is [http://identity.ic0.app Internet Identity app] which allows to authenticate to many other apps. NFT Marketplaces like [https://entrepot.app/ Entrepot] allow to sign in with various wallets without the need of tokens.&lt;/div&gt;</summary>
		<author><name>Andrew.chepreghy</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Web_Speed&amp;diff=2971</id>
		<title>Web Speed</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Web_Speed&amp;diff=2971"/>
		<updated>2022-08-30T16:14:21Z</updated>

		<summary type="html">&lt;p&gt;Andrew.chepreghy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;To achieve mass adoption, web3 dapps need to run with speeds indistinguishable from web2 applications. The Internet Computer provides a unique solution by splitting calls into query calls (read) and update calls (write) where reading has a latency of 200ms, speeds comparable to traditional web services. Thanks to this architecture, users can experience web speeds without sacrificing the security provided by the blockchain.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Read vs Write calls===&lt;br /&gt;
A common practice in computer science and databases is to separate tasks into read tasks and write tasks. As the former are less &#039;expensive&#039; in terms of time, categorizing types of calls can substantially help to increase the efficiency of a program. As a blockchain partly acts as a distributed database, it is useful to consider this separation of tasks in this case too. Following this line of thinking, the Internet Computer facilitates two type of transactions, query calls (read-only) and update (write) calls. &lt;br /&gt;
&lt;br /&gt;
From a blockchain POV, [[Internet Computer performance &amp;amp; power consumption|performance]] tests shows the IC latency at 200 milliseconds for query calls (reads) and 2 seconds for update calls (writes). As of December 1, 2021, The Internet Computer can handle 250,000 queries per second and 11,500 update calls per second.&lt;br /&gt;
&lt;br /&gt;
===Chain Key Cryptography===&lt;br /&gt;
The main advantage of using a blockchain or decentralized protocol is that the central point of trust is removed. This advantage comes at a cost; trust is not &#039;&#039;removed&#039;&#039;, it&#039;s &#039;&#039;decentralized&#039;&#039; which means that multiple people (or machines or nodes) need to agree on the &#039;truth&#039; at a given point in time. For multiple people/nodes to agree, they each sign their version of the truth, and each verify all of the others&#039; signatures. In most blockchain protocols, this is the large source of inefficiency as verifying many individual signatures can be slow. One of the key innovations of the IC is the introduction of Chain Key (CK) Cryptography which allows IC signatures to be verified with a single public key, hence reducing friction for all types of devices (node machines, laptops, mobile phones) that want to efficiently interact with a blockchain with the same speed and security of web2, but without the centralization. &lt;br /&gt;
&lt;br /&gt;
===Scalability===&lt;br /&gt;
Another advantage of CK Cryptography and the Internet Computer lies in the architectural design. In order to reach web speed, the IC needs to process increasingly large numbers of transactions. This requires the network to be able to scale quickly in order to process all those transactions. CK cryptography also facilitates nodes to onboard, catch up, and recover in the event of a hardware failure which all allow the IC to scale infinitely. Decentralized infinity.&lt;/div&gt;</summary>
		<author><name>Andrew.chepreghy</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Web_Serving&amp;diff=2970</id>
		<title>Web Serving</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Web_Serving&amp;diff=2970"/>
		<updated>2022-08-30T16:13:03Z</updated>

		<summary type="html">&lt;p&gt;Andrew.chepreghy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;The Internet Computer is currently the only blockchain whose canister smart contracts can securely serve web content directly to the user’s browser. This is a crucial and distinguishing feature of the Internet Computer that allows dapps to run 100% on-chain inheriting the security of blockchain without sacrificing speed or affordability.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Enabling true web3===&lt;br /&gt;
True Web3 functionality is only achievable by blockchain applications running fully decentralized, which includes smart contract logic, on-chain data storage and serving frontend to the user’s browser. Relying on centralized cloud providers (e.g. AWS, GCP) to host the frontend of dapps introduces a single point of failure. This not only includes security risks by possible tampering with the frontend, but dapps running on centralized servers can be taken down at any point, which negates the censorship resistant nature of blockchain.&lt;br /&gt;
&lt;br /&gt;
Hosting dapps 100% on-chain provides the additional benefit of letting DAOs launched on the Internet Computer to completely control these applications with on-chain governance and not only the backend logic. This lets users be fully in control of these dapps realizing complete decentralization and democratization of web applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Processing HTTP requests===&lt;br /&gt;
Blockchains differ in their processing of computation from regular web servers, which makes serving web a difficult task. To overcome this, the Internet Computer introduces something called boundary nodes. These nodes act as a layer that translates HTTP requests from users to messages that can be processed by smart contracts running on the Internet Computer. This allows users to update the state of the blockchain simply by interacting with a browser.&lt;br /&gt;
&lt;br /&gt;
===Reverse Gas Model===&lt;br /&gt;
&lt;br /&gt;
Requiring users to have tokens in order to use applications and pay gas fees is an enormous barrier of entry. One key feature of the Internet Computer that allows users to directly interact with the blockchain through a browser for free is the reverse gas model. Simply put, canisters pay for their own computation and storage costs using cycles. In other words it is the developers and not the end-users who pay for gas.&lt;br /&gt;
&lt;br /&gt;
This offers a very similar model to Web2 applications, whose hosting is taken care of by developers. The reverse gas fee model allows users to experiment with dapps for free and allows dapps to scale infinitely by not putting up a wall in front of their users at the very first interaction.&lt;br /&gt;
&lt;br /&gt;
===Internet Identity===&lt;br /&gt;
Users should not have to set up wallets in order to interact with dapps. To remove this hurdle the Internet Computer offers an alternative anonymous authentication solution called the Internet Identity. With it users can login to dapps running on the Internet Computer by simply using a biometric sensor on their device. In the background, Internet Identity uses novel cryptography and creates new ids for each dapp one authenticates with. This is a simple way for users to login and use dapps running on the Internet Computer without having to create a wallet, while they remain anonymous and untraceable across different applications.&lt;/div&gt;</summary>
		<author><name>Andrew.chepreghy</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Web_Serving&amp;diff=2969</id>
		<title>Web Serving</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Web_Serving&amp;diff=2969"/>
		<updated>2022-08-30T16:12:49Z</updated>

		<summary type="html">&lt;p&gt;Andrew.chepreghy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Internet Computer is currently the only blockchain whose canister smart contracts can securely serve web content directly to the user’s browser. This is a crucial and distinguishing feature of the Internet Computer that allows dapps to run 100% on-chain inheriting the security of blockchain without sacrificing speed or affordability.&lt;br /&gt;
&lt;br /&gt;
===Enabling true web3===&lt;br /&gt;
True Web3 functionality is only achievable by blockchain applications running fully decentralized, which includes smart contract logic, on-chain data storage and serving frontend to the user’s browser. Relying on centralized cloud providers (e.g. AWS, GCP) to host the frontend of dapps introduces a single point of failure. This not only includes security risks by possible tampering with the frontend, but dapps running on centralized servers can be taken down at any point, which negates the censorship resistant nature of blockchain.&lt;br /&gt;
&lt;br /&gt;
Hosting dapps 100% on-chain provides the additional benefit of letting DAOs launched on the Internet Computer to completely control these applications with on-chain governance and not only the backend logic. This lets users be fully in control of these dapps realizing complete decentralization and democratization of web applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Processing HTTP requests===&lt;br /&gt;
Blockchains differ in their processing of computation from regular web servers, which makes serving web a difficult task. To overcome this, the Internet Computer introduces something called boundary nodes. These nodes act as a layer that translates HTTP requests from users to messages that can be processed by smart contracts running on the Internet Computer. This allows users to update the state of the blockchain simply by interacting with a browser.&lt;br /&gt;
&lt;br /&gt;
===Reverse Gas Model===&lt;br /&gt;
&lt;br /&gt;
Requiring users to have tokens in order to use applications and pay gas fees is an enormous barrier of entry. One key feature of the Internet Computer that allows users to directly interact with the blockchain through a browser for free is the reverse gas model. Simply put, canisters pay for their own computation and storage costs using cycles. In other words it is the developers and not the end-users who pay for gas.&lt;br /&gt;
&lt;br /&gt;
This offers a very similar model to Web2 applications, whose hosting is taken care of by developers. The reverse gas fee model allows users to experiment with dapps for free and allows dapps to scale infinitely by not putting up a wall in front of their users at the very first interaction.&lt;br /&gt;
&lt;br /&gt;
===Internet Identity===&lt;br /&gt;
Users should not have to set up wallets in order to interact with dapps. To remove this hurdle the Internet Computer offers an alternative anonymous authentication solution called the Internet Identity. With it users can login to dapps running on the Internet Computer by simply using a biometric sensor on their device. In the background, Internet Identity uses novel cryptography and creates new ids for each dapp one authenticates with. This is a simple way for users to login and use dapps running on the Internet Computer without having to create a wallet, while they remain anonymous and untraceable across different applications.&lt;/div&gt;</summary>
		<author><name>Andrew.chepreghy</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Network_Nervous_System&amp;diff=2968</id>
		<title>Network Nervous System</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Network_Nervous_System&amp;diff=2968"/>
		<updated>2022-08-30T16:08:49Z</updated>

		<summary type="html">&lt;p&gt;Andrew.chepreghy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The NNS is the decentralized autonomous organization (DAO) that governs the Internet Computer. It is responsible for keeping track of nodes in subnets and making protocol level upgrades to continuously improve the Internet Computer. It does this by an implementation of liquid democracy in which ICP token holders vote on proposals that shape the development of the Internet Computer.&lt;br /&gt;
&lt;br /&gt;
The NNS is realized by a set of &#039;&#039;[[canisters|canisters]]&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
==NNS canisters==&lt;br /&gt;
# &#039;&#039;&#039;Ledger canister:&#039;&#039;&#039; The ledger canister stores the ICP utility &#039;&#039;token balance&#039;&#039; of each principal and the history of ICP &#039;&#039;transactions&#039;&#039;.&lt;br /&gt;
# &#039;&#039;&#039;Governance canister:&#039;&#039;&#039; The governance canister receives and stores &#039;&#039;Proposals&#039;&#039;, which are suggestions for how the Internet Computer should be changed. These proposals can then be voted on. The governance canister also tracks &#039;&#039;Neurons&#039;&#039;, which determine who is allowed to participate in governance.&lt;br /&gt;
# &#039;&#039;&#039;Registry canister:&#039;&#039;&#039; The registry canister stores the configuration of the whole Internet Computer, e.g., which nodes belong to a certain subnet and the software each node should run.&lt;br /&gt;
# &#039;&#039;&#039;Cycles minting canister&#039;&#039;&#039;: This canister is responsible for minting &#039;&#039;cycles&#039;&#039;, the fuel for canisters for computation, communication and storage. New cycles can be minted when a new canister is newly created or when an existing canister is topped up with additional cycles.&lt;br /&gt;
# &#039;&#039;&#039;Root canister&#039;&#039;&#039;: The root canister is the controller of all other NNS canisters and responsible for upgrading them.&lt;br /&gt;
# &#039;&#039;&#039;Lifeline canister&#039;&#039;&#039;: The lifeline canister is the controller of the root canister and responsible for upgrading it. &lt;br /&gt;
# &#039;&#039;&#039;Archive canisters&#039;&#039;&#039;: The canisters that store the history of the ledger transactions once there are too many transactions to keep in a single canister.&lt;br /&gt;
#&#039;&#039;&#039;Genesis token canister:&#039;&#039;&#039; This is the canister that was used to initialize the neurons that already existed during genesis.&lt;br /&gt;
&lt;br /&gt;
The canisters that users of the Internet Computer are interacting with the most are the first two: the ledger canister for making transactions, and the governance canister for staking tokens and submitting and voting on proposals.&lt;br /&gt;
&lt;br /&gt;
==Ledger canister &amp;amp; ICP utility tokens in the NNS==&lt;br /&gt;
[[ICP token|ICP utility tokens]] are managed by the ledger canister, which stores two things: accounts and transactions. An account record keeps track of how many tokens are in the possession of a given [[principal]] (i.e., an identity by which a user is authenticated on the Internet Computer). Tokens can then be sent from one account to another, and this is recorded in the transactions of the ledger canister.&lt;br /&gt;
&lt;br /&gt;
In the NNS, ICP utility tokens are used for three different things:&lt;br /&gt;
&lt;br /&gt;
# ICP tokens facilitate &#039;&#039;&#039;participation in governance&#039;&#039;&#039; (more below on how the neurons are connected with the tokens).&lt;br /&gt;
# Those who participate in governance and those who provide compute capacity by operating note machines are &#039;&#039;&#039;rewarded&#039;&#039;&#039; in ICP tokens.&lt;br /&gt;
# ICP tokens are used for &#039;&#039;&#039;conversion into cycles&#039;&#039;&#039;, which are fuel for canisters for computation, communication and storage.&lt;br /&gt;
&lt;br /&gt;
==Governance Canister==&lt;br /&gt;
The governance canister is responsible for holding &#039;&#039;neurons&#039;&#039;, determining who is allowed to participate in governance. Moreover, it stores proposals, which are suggestions for changes to the Internet Computer, and the information associated with proposals that decides if these suggestions should be implemented. If a proposal is adopted, the governance canister automatically executes the decision. Finally, the governance canister distributes rewards to those neurons who participated in voting and contributed to the decision making.&lt;br /&gt;
&lt;br /&gt;
==Neurons==&lt;br /&gt;
Neurons contain &#039;&#039;locked&#039;&#039; ICP utility tokens. These staked tokens are not liquid and cannot be transferred freely to others.&lt;br /&gt;
&lt;br /&gt;
===Neuron Attributes===&lt;br /&gt;
Each neuron stores a number of neuron attributes. Some of the most important ones are the following:&lt;br /&gt;
&lt;br /&gt;
* How many ICP tokens are &#039;&#039;locked&#039;&#039; in the neuron. This information is accessible both by a neuron referencing an account on the ledger canister that stores the neuron&#039;s balance and by a cached stake on the governance canister.&lt;br /&gt;
* A &#039;&#039;controller&#039;&#039; principal, which identifies who manages the neuron&#039;s actions.&lt;br /&gt;
* A unique &#039;&#039;neuron ID&#039;&#039;&lt;br /&gt;
*The neuron&#039;s &#039;&#039;dissolve delay.&#039;&#039; Intuitively, the dissolve delay defines the earliest time when the locked ICP tokens can be unlocked. This time can be increased to up to 8 years but it can only be decreased by waiting for time to pass. A neuron can either be &#039;&#039;non-dissolving&#039;&#039;, &#039;&#039;dissolving&#039;&#039;, or &#039;&#039;dissolved.&#039;&#039; If a neuron is non-dissolving, its set dissolve delay is kept stable and the timer is not running down. The neuron can then be set to dissolving, which means that the dissolve delay is decreasing with the time. Finally, if a the dissolve delay reaches 0, the neuron is dissolved and the locked tokens can be transferred out of the neuron. &lt;br /&gt;
*The &#039;&#039;age&#039;&#039;, which is between 0 and 4 years. A neuron&#039;s age determines the time since when then neuron has last entered the non-dissolving state.&lt;br /&gt;
A neuron&#039;s dissolve delay determines a neuron&#039;s &#039;&#039;eligibility&#039;&#039; to participate in voting. Namely, only those neurons with tokens locked for at least six months are eligible to participate in governance. This incentivizes neuron holders to vote such that the value of their tokens is maximized for a future date. Assuming the value of the tokens is a rough proxy for the network’s success, this incentivizes neuron holders to vote in the long-term interest of the Internet Computer.&lt;br /&gt;
&lt;br /&gt;
A neuron&#039;s &#039;&#039;voting power&#039;&#039; depends on how many tokens a neuron has locked, as well as the neuron&#039;s dissolve delay and age. Intuitively, those who are more committed to the Internet Computer, as they have locked their tokens for longer or have already staked them for a long time, have more voting power. The voting power increases with the dissolve delay and the age.&lt;br /&gt;
&lt;br /&gt;
Finally, the number of rewards that each neuron receives depends on the number of votes that the neuron participated in as well as the neuron&#039;s voting power.&lt;br /&gt;
&lt;br /&gt;
===How to lock tokens in a neuron&amp;lt;ref&amp;gt;https://medium.com/dfinity/the-network-nervous-system-governing-the-internet-computer-1d176605d66a&amp;lt;/ref&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
As a user, there are different [[ICP staking options]] to stake ICP utility tokens in a neuron. The effect of such an operation is that these ICP tokens are transferred to a ledger account that is associated with a newly created neuron. The tokens are thus locked and cannot be used freely by the neuron holder.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example.&#039;&#039;&#039; &#039;&#039;Let’s assume that User B, who has an account (A1) on the ledger canister, would like to lock a hundred tokens in a neuron. To do so, User B sends a command to the NNS specifying the number of tokens and User B’s corresponding principal ID.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;A transaction is then recorded on the ledger, which specifies that some tokens are sent from the original account (A1) of the user to a new account (A2), which also creates the new account (A2) that holds the locked tokens. A new neuron is created in the governance canister that specifies that User B is the one controlling this neuron and that specifies that the amount of locked tokens is defined by the new ledger account A2.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Externally, it’s not visible that the new account (A2) holds locked tokens or is in any way related to the original account (A1). Nevertheless, this account is in fact controlled by the neuron, which means that the tokens are not liquid and that User B cannot transfer the tokens or convert the tokens into cycles.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The main reason for a user to lock tokens in a neuron is to be able to participate in voting and get voting rewards. Both are described in more detail below.&lt;br /&gt;
&lt;br /&gt;
==Proposals==&lt;br /&gt;
A proposal is a suggestion for a change to the Internet Computer. More technically, a proposal describes a &#039;&#039;method&#039;&#039; in a canister that is called if the proposal is accepted. Moreover, it describes the &#039;&#039;parameters&#039;&#039; with which the method will be called.&lt;br /&gt;
&lt;br /&gt;
The Internet Computer supports a variety of different proposal &#039;&#039;topics&#039;&#039;. Here are some examples of topics that are supported in the NNS governance canister:&lt;br /&gt;
* #SubnetManagement Proposals: This considers topology changes. The example proposal above about whether a node should be added to a subnet falls into this category.&lt;br /&gt;
* #NodeAdmin Proposals: This concerns the administration of node machines. An example of a proposal could specify that all of the nodes in a subnet should be updated.&lt;br /&gt;
* #NetworkEconomics Proposals: This concerns the administration of network economics. For example: what rewards should be paid to the node machine providers?&lt;br /&gt;
*#Motion Proposals: These proposals do not have a direct execution of a method as a consequence but are merely there to record the opinion of the community on a specified matter.&lt;br /&gt;
&lt;br /&gt;
==Voting and proposal lifecycle==&lt;br /&gt;
&lt;br /&gt;
=== Submitting a proposal ===&lt;br /&gt;
Any eligible neuron can make and [https://wiki.internetcomputer.org/index.php?title=Neuron_Attributes_and_Commands#Make_Proposal submit a proposal]. To avoid being inundated by useless proposals, a user submitting a proposal has to pay a fee of 1 ICP when submitting a proposal, that they will receive back if the proposal is adopted (but that they will not receive back if the proposal is rejected).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example.&#039;&#039;&#039; &#039;&#039;Let’s consider a User C who would like to suggest that a new subnet is created that initially consists of two nodes: Node 1 and Node 2. Once User C controls a neuron, they can submit a proposal by specifying their neuron ID, the type of proposal that they would like to submit, and the proposal’s parameters. In our example, the proposal specifies that a new subnet should be created and the proposal&#039;s parameters consist of the initial nodes Node 1 and Node 2. Upon the receipt of this proposal, the governance canister first checks that this user is indeed the one controlling the neuron with the given ID and that this neuron is eligible to vote. If the requirements are met, the proposal is added to the governance canister.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
After a proposal is submitted by an eligible neuron, the proposal is created and stored in the governance canister. Moreover, the governance canister computes and stores additional information with each proposal. First, the [[voting power]] of each neuron is computed and stored together with the proposal. The sum of all of these voting powers also determines the &#039;&#039;total voting power&#039;&#039; associated with a given proposal.&lt;br /&gt;
&lt;br /&gt;
When a new proposal is created, the number of “yes” votes associated with the proposal is already increased by the proposer’s voting power. This reflects that the proposal already has the support of the user submitting it.&lt;br /&gt;
&lt;br /&gt;
Moreover, each proposal has an associated &#039;&#039;voting period,&#039;&#039; which determines the period of time over which votes for this proposal are accepted.&lt;br /&gt;
&lt;br /&gt;
===Viewing NNS Proposals===&lt;br /&gt;
You can see all the NNS proposals on the Internet Computer dashboard: https://dashboard.internetcomputer.org/governance&lt;br /&gt;
&lt;br /&gt;
===Discussing NNS Proposals===&lt;br /&gt;
Voters can freely discuss proposal anywhere they like. A lot of NNS proposals are discussed on the developer forum: https://forum.dfinity.org/c/roadmap/29.&lt;br /&gt;
&lt;br /&gt;
===Voting on a proposal===&lt;br /&gt;
After a proposal is submitted and added to the governance canister, other users who control neurons can [[ICP voting options|vote on the proposal]]. Currently, the most user-friendly way to vote on NNS proposals is via the NNS Frontend dapp: https://nns.ic0.app/. For voting, users would first learn which are the open proposals on the governance canister that they can actually vote on. This information is available, for example on Internet Computer dashboard: https://dashboard.internetcomputer.org/governance or in the [[NNS frontend dapp]]. &lt;br /&gt;
&lt;br /&gt;
If a neuron votes in favor of a proposal, the governance canister adds this neuron’s voting power, as stored with the proposal, to the “Yes”-votes associated with the proposal. Likewise, if a neuron votes against a proposal, the governance canister adds the neuron’s voting power to the “No”-votes of the proposal.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example.&#039;&#039;&#039; &#039;&#039;Assume that a given User D would like to reject the proposal that was just added by User C. To do so, User D would send their neuron ID and a “no” vote to the governance canister. The governance canister would check that the vote is coming from the correct user who controls the neuron and confirm that the neuron is eligible to vote. If the conditions are met, the governance canister would then add the voting power of User D to the “no” votes.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
====Neuron following and liquid democracy====&lt;br /&gt;
Users may not have the time or knowledge to participate in all voting decisions. Therefore, instead of directly voting on proposals, neuron holders may choose to delegate their vote to other neurons that they trust with certain decisions. This concept of delegating the right to vote to other voters who then effectively vote with more voting power is called &#039;&#039;liquid democracy.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Concretely, for each proposal topic a neuron can [[How to follow neurons|specify a set of other neurons that it would like to &#039;&#039;follow&#039;&#039;]] &#039;&#039;(so-called followees)&#039;&#039;. In addition, a neuron can specify a set of followees for &amp;quot;all other topics&amp;quot; that are not covered by specific rules. The governance canister keeps track of this relation of follower and followee neurons. It then automatically casts a vote for a follower neuron based on the decision of the followees. In particular, if more than 50% of the followees vote &amp;quot;yes&amp;quot;, then a &amp;quot;yes&amp;quot; vote is cast for the follower and if at least 50% of the followees vote &amp;quot;no&amp;quot;, then a &amp;quot;no&amp;quot; vote is cast for the follower. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&#039;&#039;&#039;. &#039;&#039;Consider neuron N1 that follows the set of neurons {N2, N3, N4, N5} on all proposal topics. Consider now that a proposal is submitted by another neuron N6. Assume in a first scenario that first N2 votes &amp;quot;No&amp;quot; and then N3 votes &amp;quot;No&amp;quot; on the proposal. In that case, the governance canister will also send a &amp;quot;No&amp;quot; vote for N1 two out of four followees voted &amp;quot;No&amp;quot; (which also means that it is not possible anymore to get more than 50% &amp;quot;Yes&amp;quot; votes). Assume a second scenario where N2 votes &amp;quot;Yes&amp;quot; and then N3 votes &amp;quot;Yes&amp;quot; on the proposal. In that case, no vote is sent yet for N1. However, if either N4 and N5 also send a &amp;quot;Yes&amp;quot; vote, a &amp;quot;Yes&amp;quot; vote is also cast for N1.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
This liquid democracy has great advantages. First, it allows even neurons that do not have enough knowledge of a certain topic to nevertheless participate in governance by choosing the neurons that they trust with certain decisions and by delegating their vote to them. In particular, a neuron can choose a different set of followees for different topics. Moreover, this mechanism allows neuron holders to get voting rewards from voting participation even if they do not have time to actively participate in all voting decision.&lt;br /&gt;
&lt;br /&gt;
=== Proposal decision and wait-for-quiet ===&lt;br /&gt;
A proposal can be &#039;&#039;decided&#039;&#039; in two ways:&lt;br /&gt;
# &#039;&#039;&#039;Absolute Majority before the voting period ends&#039;&#039;&#039;: At any point, even before the voting period ends, if an absolute majority (more than half of the total voting power stored in the proposal) has voted Yes, then the proposal is adopted and if an absolute majority has voted No, then the proposal is rejected.&lt;br /&gt;
# &#039;&#039;&#039;Simple Majority at the voting period’s end&#039;&#039;&#039;: When the voting period ends, if a simple majority (more than half of the cast votes) has voted Yes and the number of these Yes-votes constitute at least 3% of the total voting power, then the proposal is adopted. Otherwise, the proposal is rejected.&lt;br /&gt;
&lt;br /&gt;
What also plays into this is the fact that the governance voting algorithm also applies &#039;&#039;wait-for-quiet&#039;&#039;. The idea of wait-for-quiet is to decide proposals quickly when all voters agree, but increase the time that neurons can vote for proposals that are controversial. That means that the voting period can be dynamically increased, depending on the neurons’ votes. In particular, each time a proposal’s outcome is turned (either a Yes-majority is turned to a No-majority or vice versa), the proposal’s deadline is increased. Currently, a proposal&#039;s initial voting period is 4 days and can be increased by at most another 4 days. That is, the voting period that is taken into account for the above rules can be between 4 and 8 days, depending on the voting activity.&lt;br /&gt;
&lt;br /&gt;
=== Proposal execution ===&lt;br /&gt;
Recall that a proposal defines a method, a canister, and some parameters. As soon as a proposal is adopted, the defined method on the specified canister is called with the given parameters. This is done fully automatically by the governance canister. &lt;br /&gt;
&lt;br /&gt;
== Voting Rewards ==&lt;br /&gt;
Contributing to decision-making is one incentive for voters to lock their neurons, but they are also &#039;&#039;rewarded&#039;&#039; for participating in network governance.&lt;br /&gt;
&lt;br /&gt;
Specifically, each day the governance canister considers which proposal can be settled. It is then considered for each neuron in how many proposals they participated and with which voting power. Depending on this, the neurons get rewarded. Concretely, rewards are added to the neuron&#039;s attribute that is called &#039;&#039;maturity.&#039;&#039; Maturity represents ICP utility token that are not yet minted. &lt;br /&gt;
&lt;br /&gt;
A neuron holder can then profit from the maturity in two ways:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Spawn maturity:&#039;&#039;&#039; A neuron holder can choose to [[How to spawn a neuron|spawn a new neuron]] to get liquid ICP utility tokens worth the voting rewards. Spawning a new neuron has the effect that a new neuron with a new associated account on the ledger will be created, which contains the amount of staked ICP utility token equivalent to the maturity of the original neuron. In fact, the new tokens are minted and transferred to the new account, which is also recorded in the ledger canister. The new neuron has a small dissolve delay of 7 days. This means that users only need to wait a short amount of time to be able to unlock the tokens and use them freely, no matter what dissolve delay the original neuron has.&lt;br /&gt;
# &#039;&#039;&#039;Merge maturity&#039;&#039;&#039;: A neuron holder can choose to [[merge maturity]] to reinvest the voting rewards in the existing neuron. This neuron operation adds the ICP utility token equivalent of the maturity to the neuron&#039;s stake and adjusts the neuron&#039;s age accordingly. Effectively this means that the maturity is reinvested in the neuron and contributes to the neuron&#039;s voting power.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Cycles Minting Canister and Cycles&amp;lt;ref&amp;gt;https://medium.com/dfinity/the-network-nervous-system-governing-the-internet-computer-1d176605d66a&amp;lt;/ref&amp;gt;==&lt;br /&gt;
Besides governance participation and voting rewards, tokens can also be converted into cycles, which fuel computation and storage on the Internet Computer. Each canister on the Internet Computer, except for those on the NNS, uses cycles for computations and has some cycles stored within it. While the token price may vary over time, the goal of the cycles is to keep the price of computation roughly consistent over time.&lt;br /&gt;
&lt;br /&gt;
The canister responsible for converting ICP utility tokens into cycles is the &#039;&#039;Cycles Minting Canister.&#039;&#039; To convert cycles for creating or topping-up a canister, a user needs to send ICP utility tokens to the Cycles Minting Canister. This canister then burns the tokens and mints the cycles. &lt;br /&gt;
&lt;br /&gt;
The Cycles Minting Canister only facilitates the conversion of ICP utility tokens to cycles but not the other way around. Cycles are burned in canisters when they use computation and storage over time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example.&#039;&#039;&#039; &#039;&#039;Consider User E who runs a canister on the Internet Computer and would like to top up the cycles of this canister so that it can perform even more computations. Also assume that this canister currently has 700 trillion cycles and User E would like to increase this number by 200 trillion. To do so, the user would send a command to the NNS that specifies the action of topping up their canister. Upon receiving this command, a transaction is made from the user’s account to the Cycles Minting Canister. As a result of this transaction, the Cycles Minting Canister would burn the tokens, mint new cycles, and send these freshly minted cycles to the user’s canister, meaning the canister balance is now 900 trillion cycles.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [https://medium.com/dfinity/the-network-nervous-system-governing-the-internet-computer-1d176605d66a Medium article]&lt;br /&gt;
* [https://dfinity.org/howitworks/network-nervous-system-nns Video]&lt;br /&gt;
&lt;br /&gt;
=References=&lt;/div&gt;</summary>
		<author><name>Andrew.chepreghy</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Network_Nervous_System&amp;diff=2967</id>
		<title>Network Nervous System</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Network_Nervous_System&amp;diff=2967"/>
		<updated>2022-08-30T16:08:42Z</updated>

		<summary type="html">&lt;p&gt;Andrew.chepreghy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The NNS is the decentralized autonomous organization (DAO) that governs the Internet Computer. It is responsible for keeping track of nodes in subnets and making protocol level upgrades to continuously improve the Internet Computer. It does this by an implementation of liquid democracy in which ICP token holders vote on proposals that shape the development of the Internet Computer&lt;br /&gt;
&lt;br /&gt;
The NNS is realized by a set of &#039;&#039;[[canisters|canisters]]&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
==NNS canisters==&lt;br /&gt;
# &#039;&#039;&#039;Ledger canister:&#039;&#039;&#039; The ledger canister stores the ICP utility &#039;&#039;token balance&#039;&#039; of each principal and the history of ICP &#039;&#039;transactions&#039;&#039;.&lt;br /&gt;
# &#039;&#039;&#039;Governance canister:&#039;&#039;&#039; The governance canister receives and stores &#039;&#039;Proposals&#039;&#039;, which are suggestions for how the Internet Computer should be changed. These proposals can then be voted on. The governance canister also tracks &#039;&#039;Neurons&#039;&#039;, which determine who is allowed to participate in governance.&lt;br /&gt;
# &#039;&#039;&#039;Registry canister:&#039;&#039;&#039; The registry canister stores the configuration of the whole Internet Computer, e.g., which nodes belong to a certain subnet and the software each node should run.&lt;br /&gt;
# &#039;&#039;&#039;Cycles minting canister&#039;&#039;&#039;: This canister is responsible for minting &#039;&#039;cycles&#039;&#039;, the fuel for canisters for computation, communication and storage. New cycles can be minted when a new canister is newly created or when an existing canister is topped up with additional cycles.&lt;br /&gt;
# &#039;&#039;&#039;Root canister&#039;&#039;&#039;: The root canister is the controller of all other NNS canisters and responsible for upgrading them.&lt;br /&gt;
# &#039;&#039;&#039;Lifeline canister&#039;&#039;&#039;: The lifeline canister is the controller of the root canister and responsible for upgrading it. &lt;br /&gt;
# &#039;&#039;&#039;Archive canisters&#039;&#039;&#039;: The canisters that store the history of the ledger transactions once there are too many transactions to keep in a single canister.&lt;br /&gt;
#&#039;&#039;&#039;Genesis token canister:&#039;&#039;&#039; This is the canister that was used to initialize the neurons that already existed during genesis.&lt;br /&gt;
&lt;br /&gt;
The canisters that users of the Internet Computer are interacting with the most are the first two: the ledger canister for making transactions, and the governance canister for staking tokens and submitting and voting on proposals.&lt;br /&gt;
&lt;br /&gt;
==Ledger canister &amp;amp; ICP utility tokens in the NNS==&lt;br /&gt;
[[ICP token|ICP utility tokens]] are managed by the ledger canister, which stores two things: accounts and transactions. An account record keeps track of how many tokens are in the possession of a given [[principal]] (i.e., an identity by which a user is authenticated on the Internet Computer). Tokens can then be sent from one account to another, and this is recorded in the transactions of the ledger canister.&lt;br /&gt;
&lt;br /&gt;
In the NNS, ICP utility tokens are used for three different things:&lt;br /&gt;
&lt;br /&gt;
# ICP tokens facilitate &#039;&#039;&#039;participation in governance&#039;&#039;&#039; (more below on how the neurons are connected with the tokens).&lt;br /&gt;
# Those who participate in governance and those who provide compute capacity by operating note machines are &#039;&#039;&#039;rewarded&#039;&#039;&#039; in ICP tokens.&lt;br /&gt;
# ICP tokens are used for &#039;&#039;&#039;conversion into cycles&#039;&#039;&#039;, which are fuel for canisters for computation, communication and storage.&lt;br /&gt;
&lt;br /&gt;
==Governance Canister==&lt;br /&gt;
The governance canister is responsible for holding &#039;&#039;neurons&#039;&#039;, determining who is allowed to participate in governance. Moreover, it stores proposals, which are suggestions for changes to the Internet Computer, and the information associated with proposals that decides if these suggestions should be implemented. If a proposal is adopted, the governance canister automatically executes the decision. Finally, the governance canister distributes rewards to those neurons who participated in voting and contributed to the decision making.&lt;br /&gt;
&lt;br /&gt;
==Neurons==&lt;br /&gt;
Neurons contain &#039;&#039;locked&#039;&#039; ICP utility tokens. These staked tokens are not liquid and cannot be transferred freely to others.&lt;br /&gt;
&lt;br /&gt;
===Neuron Attributes===&lt;br /&gt;
Each neuron stores a number of neuron attributes. Some of the most important ones are the following:&lt;br /&gt;
&lt;br /&gt;
* How many ICP tokens are &#039;&#039;locked&#039;&#039; in the neuron. This information is accessible both by a neuron referencing an account on the ledger canister that stores the neuron&#039;s balance and by a cached stake on the governance canister.&lt;br /&gt;
* A &#039;&#039;controller&#039;&#039; principal, which identifies who manages the neuron&#039;s actions.&lt;br /&gt;
* A unique &#039;&#039;neuron ID&#039;&#039;&lt;br /&gt;
*The neuron&#039;s &#039;&#039;dissolve delay.&#039;&#039; Intuitively, the dissolve delay defines the earliest time when the locked ICP tokens can be unlocked. This time can be increased to up to 8 years but it can only be decreased by waiting for time to pass. A neuron can either be &#039;&#039;non-dissolving&#039;&#039;, &#039;&#039;dissolving&#039;&#039;, or &#039;&#039;dissolved.&#039;&#039; If a neuron is non-dissolving, its set dissolve delay is kept stable and the timer is not running down. The neuron can then be set to dissolving, which means that the dissolve delay is decreasing with the time. Finally, if a the dissolve delay reaches 0, the neuron is dissolved and the locked tokens can be transferred out of the neuron. &lt;br /&gt;
*The &#039;&#039;age&#039;&#039;, which is between 0 and 4 years. A neuron&#039;s age determines the time since when then neuron has last entered the non-dissolving state.&lt;br /&gt;
A neuron&#039;s dissolve delay determines a neuron&#039;s &#039;&#039;eligibility&#039;&#039; to participate in voting. Namely, only those neurons with tokens locked for at least six months are eligible to participate in governance. This incentivizes neuron holders to vote such that the value of their tokens is maximized for a future date. Assuming the value of the tokens is a rough proxy for the network’s success, this incentivizes neuron holders to vote in the long-term interest of the Internet Computer.&lt;br /&gt;
&lt;br /&gt;
A neuron&#039;s &#039;&#039;voting power&#039;&#039; depends on how many tokens a neuron has locked, as well as the neuron&#039;s dissolve delay and age. Intuitively, those who are more committed to the Internet Computer, as they have locked their tokens for longer or have already staked them for a long time, have more voting power. The voting power increases with the dissolve delay and the age.&lt;br /&gt;
&lt;br /&gt;
Finally, the number of rewards that each neuron receives depends on the number of votes that the neuron participated in as well as the neuron&#039;s voting power.&lt;br /&gt;
&lt;br /&gt;
===How to lock tokens in a neuron&amp;lt;ref&amp;gt;https://medium.com/dfinity/the-network-nervous-system-governing-the-internet-computer-1d176605d66a&amp;lt;/ref&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
As a user, there are different [[ICP staking options]] to stake ICP utility tokens in a neuron. The effect of such an operation is that these ICP tokens are transferred to a ledger account that is associated with a newly created neuron. The tokens are thus locked and cannot be used freely by the neuron holder.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example.&#039;&#039;&#039; &#039;&#039;Let’s assume that User B, who has an account (A1) on the ledger canister, would like to lock a hundred tokens in a neuron. To do so, User B sends a command to the NNS specifying the number of tokens and User B’s corresponding principal ID.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;A transaction is then recorded on the ledger, which specifies that some tokens are sent from the original account (A1) of the user to a new account (A2), which also creates the new account (A2) that holds the locked tokens. A new neuron is created in the governance canister that specifies that User B is the one controlling this neuron and that specifies that the amount of locked tokens is defined by the new ledger account A2.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Externally, it’s not visible that the new account (A2) holds locked tokens or is in any way related to the original account (A1). Nevertheless, this account is in fact controlled by the neuron, which means that the tokens are not liquid and that User B cannot transfer the tokens or convert the tokens into cycles.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The main reason for a user to lock tokens in a neuron is to be able to participate in voting and get voting rewards. Both are described in more detail below.&lt;br /&gt;
&lt;br /&gt;
==Proposals==&lt;br /&gt;
A proposal is a suggestion for a change to the Internet Computer. More technically, a proposal describes a &#039;&#039;method&#039;&#039; in a canister that is called if the proposal is accepted. Moreover, it describes the &#039;&#039;parameters&#039;&#039; with which the method will be called.&lt;br /&gt;
&lt;br /&gt;
The Internet Computer supports a variety of different proposal &#039;&#039;topics&#039;&#039;. Here are some examples of topics that are supported in the NNS governance canister:&lt;br /&gt;
* #SubnetManagement Proposals: This considers topology changes. The example proposal above about whether a node should be added to a subnet falls into this category.&lt;br /&gt;
* #NodeAdmin Proposals: This concerns the administration of node machines. An example of a proposal could specify that all of the nodes in a subnet should be updated.&lt;br /&gt;
* #NetworkEconomics Proposals: This concerns the administration of network economics. For example: what rewards should be paid to the node machine providers?&lt;br /&gt;
*#Motion Proposals: These proposals do not have a direct execution of a method as a consequence but are merely there to record the opinion of the community on a specified matter.&lt;br /&gt;
&lt;br /&gt;
==Voting and proposal lifecycle==&lt;br /&gt;
&lt;br /&gt;
=== Submitting a proposal ===&lt;br /&gt;
Any eligible neuron can make and [https://wiki.internetcomputer.org/index.php?title=Neuron_Attributes_and_Commands#Make_Proposal submit a proposal]. To avoid being inundated by useless proposals, a user submitting a proposal has to pay a fee of 1 ICP when submitting a proposal, that they will receive back if the proposal is adopted (but that they will not receive back if the proposal is rejected).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example.&#039;&#039;&#039; &#039;&#039;Let’s consider a User C who would like to suggest that a new subnet is created that initially consists of two nodes: Node 1 and Node 2. Once User C controls a neuron, they can submit a proposal by specifying their neuron ID, the type of proposal that they would like to submit, and the proposal’s parameters. In our example, the proposal specifies that a new subnet should be created and the proposal&#039;s parameters consist of the initial nodes Node 1 and Node 2. Upon the receipt of this proposal, the governance canister first checks that this user is indeed the one controlling the neuron with the given ID and that this neuron is eligible to vote. If the requirements are met, the proposal is added to the governance canister.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
After a proposal is submitted by an eligible neuron, the proposal is created and stored in the governance canister. Moreover, the governance canister computes and stores additional information with each proposal. First, the [[voting power]] of each neuron is computed and stored together with the proposal. The sum of all of these voting powers also determines the &#039;&#039;total voting power&#039;&#039; associated with a given proposal.&lt;br /&gt;
&lt;br /&gt;
When a new proposal is created, the number of “yes” votes associated with the proposal is already increased by the proposer’s voting power. This reflects that the proposal already has the support of the user submitting it.&lt;br /&gt;
&lt;br /&gt;
Moreover, each proposal has an associated &#039;&#039;voting period,&#039;&#039; which determines the period of time over which votes for this proposal are accepted.&lt;br /&gt;
&lt;br /&gt;
===Viewing NNS Proposals===&lt;br /&gt;
You can see all the NNS proposals on the Internet Computer dashboard: https://dashboard.internetcomputer.org/governance&lt;br /&gt;
&lt;br /&gt;
===Discussing NNS Proposals===&lt;br /&gt;
Voters can freely discuss proposal anywhere they like. A lot of NNS proposals are discussed on the developer forum: https://forum.dfinity.org/c/roadmap/29.&lt;br /&gt;
&lt;br /&gt;
===Voting on a proposal===&lt;br /&gt;
After a proposal is submitted and added to the governance canister, other users who control neurons can [[ICP voting options|vote on the proposal]]. Currently, the most user-friendly way to vote on NNS proposals is via the NNS Frontend dapp: https://nns.ic0.app/. For voting, users would first learn which are the open proposals on the governance canister that they can actually vote on. This information is available, for example on Internet Computer dashboard: https://dashboard.internetcomputer.org/governance or in the [[NNS frontend dapp]]. &lt;br /&gt;
&lt;br /&gt;
If a neuron votes in favor of a proposal, the governance canister adds this neuron’s voting power, as stored with the proposal, to the “Yes”-votes associated with the proposal. Likewise, if a neuron votes against a proposal, the governance canister adds the neuron’s voting power to the “No”-votes of the proposal.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example.&#039;&#039;&#039; &#039;&#039;Assume that a given User D would like to reject the proposal that was just added by User C. To do so, User D would send their neuron ID and a “no” vote to the governance canister. The governance canister would check that the vote is coming from the correct user who controls the neuron and confirm that the neuron is eligible to vote. If the conditions are met, the governance canister would then add the voting power of User D to the “no” votes.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
====Neuron following and liquid democracy====&lt;br /&gt;
Users may not have the time or knowledge to participate in all voting decisions. Therefore, instead of directly voting on proposals, neuron holders may choose to delegate their vote to other neurons that they trust with certain decisions. This concept of delegating the right to vote to other voters who then effectively vote with more voting power is called &#039;&#039;liquid democracy.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Concretely, for each proposal topic a neuron can [[How to follow neurons|specify a set of other neurons that it would like to &#039;&#039;follow&#039;&#039;]] &#039;&#039;(so-called followees)&#039;&#039;. In addition, a neuron can specify a set of followees for &amp;quot;all other topics&amp;quot; that are not covered by specific rules. The governance canister keeps track of this relation of follower and followee neurons. It then automatically casts a vote for a follower neuron based on the decision of the followees. In particular, if more than 50% of the followees vote &amp;quot;yes&amp;quot;, then a &amp;quot;yes&amp;quot; vote is cast for the follower and if at least 50% of the followees vote &amp;quot;no&amp;quot;, then a &amp;quot;no&amp;quot; vote is cast for the follower. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&#039;&#039;&#039;. &#039;&#039;Consider neuron N1 that follows the set of neurons {N2, N3, N4, N5} on all proposal topics. Consider now that a proposal is submitted by another neuron N6. Assume in a first scenario that first N2 votes &amp;quot;No&amp;quot; and then N3 votes &amp;quot;No&amp;quot; on the proposal. In that case, the governance canister will also send a &amp;quot;No&amp;quot; vote for N1 two out of four followees voted &amp;quot;No&amp;quot; (which also means that it is not possible anymore to get more than 50% &amp;quot;Yes&amp;quot; votes). Assume a second scenario where N2 votes &amp;quot;Yes&amp;quot; and then N3 votes &amp;quot;Yes&amp;quot; on the proposal. In that case, no vote is sent yet for N1. However, if either N4 and N5 also send a &amp;quot;Yes&amp;quot; vote, a &amp;quot;Yes&amp;quot; vote is also cast for N1.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
This liquid democracy has great advantages. First, it allows even neurons that do not have enough knowledge of a certain topic to nevertheless participate in governance by choosing the neurons that they trust with certain decisions and by delegating their vote to them. In particular, a neuron can choose a different set of followees for different topics. Moreover, this mechanism allows neuron holders to get voting rewards from voting participation even if they do not have time to actively participate in all voting decision.&lt;br /&gt;
&lt;br /&gt;
=== Proposal decision and wait-for-quiet ===&lt;br /&gt;
A proposal can be &#039;&#039;decided&#039;&#039; in two ways:&lt;br /&gt;
# &#039;&#039;&#039;Absolute Majority before the voting period ends&#039;&#039;&#039;: At any point, even before the voting period ends, if an absolute majority (more than half of the total voting power stored in the proposal) has voted Yes, then the proposal is adopted and if an absolute majority has voted No, then the proposal is rejected.&lt;br /&gt;
# &#039;&#039;&#039;Simple Majority at the voting period’s end&#039;&#039;&#039;: When the voting period ends, if a simple majority (more than half of the cast votes) has voted Yes and the number of these Yes-votes constitute at least 3% of the total voting power, then the proposal is adopted. Otherwise, the proposal is rejected.&lt;br /&gt;
&lt;br /&gt;
What also plays into this is the fact that the governance voting algorithm also applies &#039;&#039;wait-for-quiet&#039;&#039;. The idea of wait-for-quiet is to decide proposals quickly when all voters agree, but increase the time that neurons can vote for proposals that are controversial. That means that the voting period can be dynamically increased, depending on the neurons’ votes. In particular, each time a proposal’s outcome is turned (either a Yes-majority is turned to a No-majority or vice versa), the proposal’s deadline is increased. Currently, a proposal&#039;s initial voting period is 4 days and can be increased by at most another 4 days. That is, the voting period that is taken into account for the above rules can be between 4 and 8 days, depending on the voting activity.&lt;br /&gt;
&lt;br /&gt;
=== Proposal execution ===&lt;br /&gt;
Recall that a proposal defines a method, a canister, and some parameters. As soon as a proposal is adopted, the defined method on the specified canister is called with the given parameters. This is done fully automatically by the governance canister. &lt;br /&gt;
&lt;br /&gt;
== Voting Rewards ==&lt;br /&gt;
Contributing to decision-making is one incentive for voters to lock their neurons, but they are also &#039;&#039;rewarded&#039;&#039; for participating in network governance.&lt;br /&gt;
&lt;br /&gt;
Specifically, each day the governance canister considers which proposal can be settled. It is then considered for each neuron in how many proposals they participated and with which voting power. Depending on this, the neurons get rewarded. Concretely, rewards are added to the neuron&#039;s attribute that is called &#039;&#039;maturity.&#039;&#039; Maturity represents ICP utility token that are not yet minted. &lt;br /&gt;
&lt;br /&gt;
A neuron holder can then profit from the maturity in two ways:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Spawn maturity:&#039;&#039;&#039; A neuron holder can choose to [[How to spawn a neuron|spawn a new neuron]] to get liquid ICP utility tokens worth the voting rewards. Spawning a new neuron has the effect that a new neuron with a new associated account on the ledger will be created, which contains the amount of staked ICP utility token equivalent to the maturity of the original neuron. In fact, the new tokens are minted and transferred to the new account, which is also recorded in the ledger canister. The new neuron has a small dissolve delay of 7 days. This means that users only need to wait a short amount of time to be able to unlock the tokens and use them freely, no matter what dissolve delay the original neuron has.&lt;br /&gt;
# &#039;&#039;&#039;Merge maturity&#039;&#039;&#039;: A neuron holder can choose to [[merge maturity]] to reinvest the voting rewards in the existing neuron. This neuron operation adds the ICP utility token equivalent of the maturity to the neuron&#039;s stake and adjusts the neuron&#039;s age accordingly. Effectively this means that the maturity is reinvested in the neuron and contributes to the neuron&#039;s voting power.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Cycles Minting Canister and Cycles&amp;lt;ref&amp;gt;https://medium.com/dfinity/the-network-nervous-system-governing-the-internet-computer-1d176605d66a&amp;lt;/ref&amp;gt;==&lt;br /&gt;
Besides governance participation and voting rewards, tokens can also be converted into cycles, which fuel computation and storage on the Internet Computer. Each canister on the Internet Computer, except for those on the NNS, uses cycles for computations and has some cycles stored within it. While the token price may vary over time, the goal of the cycles is to keep the price of computation roughly consistent over time.&lt;br /&gt;
&lt;br /&gt;
The canister responsible for converting ICP utility tokens into cycles is the &#039;&#039;Cycles Minting Canister.&#039;&#039; To convert cycles for creating or topping-up a canister, a user needs to send ICP utility tokens to the Cycles Minting Canister. This canister then burns the tokens and mints the cycles. &lt;br /&gt;
&lt;br /&gt;
The Cycles Minting Canister only facilitates the conversion of ICP utility tokens to cycles but not the other way around. Cycles are burned in canisters when they use computation and storage over time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example.&#039;&#039;&#039; &#039;&#039;Consider User E who runs a canister on the Internet Computer and would like to top up the cycles of this canister so that it can perform even more computations. Also assume that this canister currently has 700 trillion cycles and User E would like to increase this number by 200 trillion. To do so, the user would send a command to the NNS that specifies the action of topping up their canister. Upon receiving this command, a transaction is made from the user’s account to the Cycles Minting Canister. As a result of this transaction, the Cycles Minting Canister would burn the tokens, mint new cycles, and send these freshly minted cycles to the user’s canister, meaning the canister balance is now 900 trillion cycles.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [https://medium.com/dfinity/the-network-nervous-system-governing-the-internet-computer-1d176605d66a Medium article]&lt;br /&gt;
* [https://dfinity.org/howitworks/network-nervous-system-nns Video]&lt;br /&gt;
&lt;br /&gt;
=References=&lt;/div&gt;</summary>
		<author><name>Andrew.chepreghy</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Users_interact_with_dapps_without_tokens&amp;diff=2966</id>
		<title>Users interact with dapps without tokens</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Users_interact_with_dapps_without_tokens&amp;diff=2966"/>
		<updated>2022-08-30T16:08:17Z</updated>

		<summary type="html">&lt;p&gt;Andrew.chepreghy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The biggest hurdle almost all blockchain face is the need to create a wallet and hold tokens if users want to interact with smart contracts. Once a user created a wallet and loaded it with tokens, they are required to pay for each interaction with smart contracts in the form of gas fees. The Internet Computer allows users to interact with canister smart contracts without the need for any wallets by employing several unique design choices.&lt;br /&gt;
&lt;br /&gt;
===Reverse Gas Model (AKA &amp;quot;canister pays&amp;quot;)===&lt;br /&gt;
Internet Computer dapps adopt a &amp;quot;Reverse Gas model&amp;quot; where developers load canisters with computation cycles in advance which in turn allows users to interact with a dapp without having to pay in tokens. Cycles are stable in cost are obtained by converting ICP tokens. This allows developers to know in advance how much they will need to spend on computation.&lt;br /&gt;
&lt;br /&gt;
As an example, the Motoko Playground dapp is hosted and executed entirely on-chain and it does not require visitors to pay for the computation: https://m7sm4-2iaaa-aaaab-qabra-cai.raw.ic0.app/. The [http://identity.ic0.app Internet Identity app] is also a free to use application running on the IC.&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
There are many IC applications that allow to interact without tokens. One of the forerunning apps is [http://identity.ic0.app Internet Identity app] which allows to authenticate to many other apps. NFT Marketplaces like [https://entrepot.app/ Entrepot] allow to sign in with various wallets without the need of tokens.&lt;/div&gt;</summary>
		<author><name>Andrew.chepreghy</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Limitless_Scaling&amp;diff=2965</id>
		<title>Limitless Scaling</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Limitless_Scaling&amp;diff=2965"/>
		<updated>2022-08-30T16:06:55Z</updated>

		<summary type="html">&lt;p&gt;Andrew.chepreghy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Most blockchains have transaction limits baked into the protocol (e.g. adding more servers to Bitcoin does not increase its transaction volume) and need cumbersome workarounds to address scaling. The Internet Computer can process unbounded volumes of smart contract data and computation natively because it can grow in capacity by adding more subnets containing more nodes. That is how the network went from 19 blocks per second in July 2021 to 36 blocks per second by July 2022.&lt;br /&gt;
&lt;br /&gt;
See Internet Computer Dashboard: https://dashboard.internetcomputer.org/&lt;br /&gt;
&lt;br /&gt;
=== Subnet Architecture ===&lt;br /&gt;
The Internet Computer Protocol is running on standardized node hardware in independent data centers around the world. The [[Network Nervous System]] governance system, scales the network by combining nodes from different data centers to spin up new subnet blockchains.&lt;br /&gt;
&lt;br /&gt;
The Internet Computer’s partitioning into subnet blockchains is what allows the network to infinitely scale. Each subnet blockchain is capable of processing update and query calls independently from other subnets. This means that the entire network can easily be scaled by simply adding more subnets to the network. For update calls that need to be processed on every node, this method of scaling the network can ensure that more update calls are processed per second. The Internet Computer is capable of adding hundreds of new subnets via the NNS.&lt;br /&gt;
&lt;br /&gt;
For query calls, however, scalability can simply be achieved by adding more nodes to a subnet because these calls are processed locally on one node. The network is capable of adding thousands of new nodes in its current state. The addition of more nodes and subnets to the network ensures web speed and infinite scalability.&lt;br /&gt;
&lt;br /&gt;
=== Finality and Consensus===&lt;br /&gt;
The Internet Computer’s novel consensus mechanism also plays a key role in the network’s ability to scale. [https://assets.ctfassets.net/ywqk17d3hsnp/1Gutwfrd1lMgiUBJZGCdUG/d3ea7730aba0a4b793741681463239f5/podc-2022-cr.pdf Internet Computer Consensus] (ICC) consists of four different layers that create candidate blocks, identify valid blocks, rank block makers, and then finalize the agreed upon blocks. The blockchain’s asynchronous finalization mechanism is impressively fast, ensuring that the finality for new blocks is achieved in under two seconds on average on the NNS subnet, and 1 second on dapp subnets.&lt;br /&gt;
&lt;br /&gt;
This contributes to the IC’s resilience. Additionally, unlike legacy blockchains, the IC has no nodes hosted by cloud providers which helps to ensure that the network is tamper-proof, secure, and stable.&lt;/div&gt;</summary>
		<author><name>Andrew.chepreghy</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Internet_Computer_wiki&amp;diff=2959</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=2959"/>
		<updated>2022-08-30T13:30:01Z</updated>

		<summary type="html">&lt;p&gt;Andrew.chepreghy: &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]] 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 [[subnet blockchain]]s 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;
* [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://dfinity.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://dfinity.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;
* The [https://dfinity.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, voting, rewards, 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;
&lt;br /&gt;
See more in [[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;
&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://dfinity.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;
&lt;br /&gt;
See more in [[Internet Computer for researchers and blockchain enthusiasts]].&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;
* [[IC OS Installation Runbook - Dell Poweredge]]&lt;br /&gt;
* [[IC OS Installation Runbook - Supermicro]]&lt;br /&gt;
* [[Storage Runbook]]&lt;br /&gt;
* [[Node rewards]]&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;
&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;
==References==&lt;/div&gt;</summary>
		<author><name>Andrew.chepreghy</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Internet_Computer_wiki&amp;diff=2958</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=2958"/>
		<updated>2022-08-30T13:29:48Z</updated>

		<summary type="html">&lt;p&gt;Andrew.chepreghy: &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]] 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 [[subnet blockchain]]s 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;
* [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://dfinity.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://dfinity.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;
* The [https://dfinity.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, voting, rewards, 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;
&lt;br /&gt;
See more in [[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;
&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://dfinity.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;
&lt;br /&gt;
See more in [[Internet Computer for researchers and blockchain enthusiasts]].&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;
* [[IC OS Installation Runbook - Dell Poweredge]]&lt;br /&gt;
* [[IC OS Installation Runbook - Supermicro]]&lt;br /&gt;
* [[Storage Runbook]]&lt;br /&gt;
* [[Node rewards]]&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;
&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;
==References==&lt;/div&gt;</summary>
		<author><name>Andrew.chepreghy</name></author>
	</entry>
</feed>