Skip to content

Commit

Permalink
Merge pull request #2706 from dfinity/LaraAS-linebreaks
Browse files Browse the repository at this point in the history
Make line breaks nicer
  • Loading branch information
jessiemongeon1 authored Mar 26, 2024
2 parents 6c29381 + 58ff2f3 commit f7e23cc
Show file tree
Hide file tree
Showing 12 changed files with 87 additions and 325 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,30 +8,15 @@ title: Architecture of the Internet Computer

The Internet Computer (IC) realizes the vision of a *World Computer* – an open and secure *blockchain-based network* that can host programs and data in the form of smart contracts, perform computations on smart contracts in a secure and trustworthy way, and scale infinitely.

Smart contracts on the Internet Computer are called *canister smart contracts*, or *canisters*, each consisting of a bundle of [*WebAssembly (Wasm)*](https://en.wikipedia.org/wiki/WebAssembly) bytecode and smart contract data storage.
Each canister has its own, isolated, data storage that is only changed when the canister executes code.

Canisters are hosted on *subnets*, the top-level architectural building block of ICP.
A subnet is an independent blockchain, running on *node machines*, or *nodes*, deployed in globally-distributed data centers.
A single subnet can securely host tens of thousands of canister smart contracts, totalling in hundreds of gigabytes of memory – there are currently dozens of subnets, growing to thousands in the future.
For each canister hosted on a subnet, its code and data is stored on every node in the subnet, and its code is executed by every node in the subnet.
This replication of storage and computation is essential to achieve *fault tolerance*, so that canister smart contracts will continue to execute even if some nodes in the subnet are faulty (either because they crash, or even worse, are hacked by a malicious party).
This replication is powered by the core *Internet Computer Protocol (ICP)*, which implements a high-throughput, low-latency consensus mechanism and an efficient virtual machine for WebAssembly execution, backed by a blockchain.

The IC's multi-subnet architecture is much more powerful than the well-known sharding approach because it enables smart contracts on different subnets to communicate with each other seamlessly – much like services in a traditional [microservices architecture]( https://en.wikipedia.org/wiki/Microservices), but fully on chain.
Canisters communicate via *asynchronous messages*, i.e., they don't block on sending a message, but process the response when it eventually arrives.
This novel approach to inter-canister calls allows for scaling out ICP by simply adding more subnets.

The core ICP makes heavy use of [*chain-key cryptography*](https://internetcomputer.org/how-it-works/#Chain-key-cryptography), a toolbox of advanced cryptographic protocols (based on [threshold cryptography](https://en.wikipedia.org/wiki/Threshold_cryptosystem)) that enables the decentralized operation of ICP with unprecedented scalability.
Chain-key cryptography also includes a sophisticated collection of technologies for robustly and securely addressing operational concerns, such as how to deal with faulty nodes or protocol upgrades, which we call [*chain-evolution technology*](https://internetcomputer.org/how-it-works/#Chain-evolution-technology)
(for example, enabling nodes to easily join a subnet without validating every block beginning from the genesis block, as in other blockchains).
Another building block in the chain-key crypto toolbox are [*chain-key signatures*](https://internetcomputer.org/how-it-works/#Chain-key-transactions).
They enable a canister to interact with (write to) other blockchains using threshold cryptography.

Having scalable and decentralized technology to power the operation of the network is not enough.
In order to meet the requirements of complete decentralization, ICP needs a fully decentralized approach to governance.
Governance of ICP is accomplished through a *tokenized Decentralized Autonomous Organization (DAO)*, which is called the [*Network Nervous System (NNS)*](https://internetcomputer.org/how-it-works/#Network-nervous-system).
Each individual dapp on ICP can have its own governance system similar to the NNS by customizing and deploying an out-of-the-box tokenized DAO based on the *Service Nervous System (SNS)* for the dapp.
Smart contracts on the Internet Computer are called *canister smart contracts*, or *canisters*, each consisting of a bundle of [*WebAssembly (Wasm)*](https://en.wikipedia.org/wiki/WebAssembly) bytecode and smart contract data storage. Each canister has its own, isolated, data storage that is only changed when the canister executes code.

Canisters are hosted on *subnets*, the top-level architectural building block of ICP. A subnet is an independent blockchain, running on *node machines*, or *nodes*, deployed in globally-distributed data centers. A single subnet can securely host tens of thousands of canister smart contracts, totalling in hundreds of gigabytes of memory – there are currently dozens of subnets, growing to thousands in the future. For each canister hosted on a subnet, its code and data is stored on every node in the subnet, and its code is executed by every node in the subnet. This replication of storage and computation is essential to achieve *fault tolerance*, so that canister smart contracts will continue to execute even if some nodes in the subnet are faulty (either because they crash, or even worse, are hacked by a malicious party). This replication is powered by the core *Internet Computer Protocol (ICP)*, which implements a high-throughput, low-latency consensus mechanism and an efficient virtual machine for WebAssembly execution, backed by a blockchain.

The IC's multi-subnet architecture is much more powerful than the well-known sharding approach because it enables smart contracts on different subnets to communicate with each other seamlessly – much like services in a traditional [microservices architecture]( https://en.wikipedia.org/wiki/Microservices), but fully on chain. Canisters communicate via *asynchronous messages*, i.e., they don't block on sending a message, but process the response when it eventually arrives. This novel approach to inter-canister calls allows for scaling out ICP by simply adding more subnets.

The core ICP makes heavy use of [*chain-key cryptography*](https://internetcomputer.org/how-it-works/#Chain-key-cryptography), a toolbox of advanced cryptographic protocols (based on [threshold cryptography](https://en.wikipedia.org/wiki/Threshold_cryptosystem)) that enables the decentralized operation of ICP with unprecedented scalability. Chain-key cryptography also includes a sophisticated collection of technologies for robustly and securely addressing operational concerns, such as how to deal with faulty nodes or protocol upgrades, which we call [*chain-evolution technology*](https://internetcomputer.org/how-it-works/#Chain-evolution-technology) (for example, enabling nodes to easily join a subnet without validating every block beginning from the genesis block, as in other blockchains). Another building block in the chain-key crypto toolbox are [*chain-key signatures*](https://internetcomputer.org/how-it-works/#Chain-key-transactions). They enable a canister to interact with (write to) other blockchains using threshold cryptography.

Having scalable and decentralized technology to power the operation of the network is not enough. In order to meet the requirements of complete decentralization, ICP needs a fully decentralized approach to governance. Governance of ICP is accomplished through a *tokenized Decentralized Autonomous Organization (DAO)*, which is called the [*Network Nervous System (NNS)*](https://internetcomputer.org/how-it-works/#Network-nervous-system). Each individual dapp on ICP can have its own governance system similar to the NNS by customizing and deploying an out-of-the-box tokenized DAO based on the *Service Nervous System (SNS)* for the dapp.

The [Internet Computer](https://dashboard.internetcomputer.org/) was launched and open-sourced on May 10th 2021 by the DFINITY Foundation. The Internet Computer is now an independent network controlled by ICP token holders but DFINITY continues supporting its evolution.

Expand Down
Loading

0 comments on commit f7e23cc

Please sign in to comment.