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) 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, 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, a toolbox of advanced cryptographic protocols (based on threshold cryptography) 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
(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.
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).
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 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.

Overview

The Internet Computer is created by the Internet Computer Protocol (ICP), from which its utility token, the ICP token, derives its name.
The core part of the IC protocol, the core IC protocol, is a 4-layer protocol that is running on the nodes of each subnet.
By running the core IC protocol, the nodes of a subnet realize a blockchain-based replicated state machine that makes progress independently of the other subnets (but communicates asynchronously with them).
This architecture of many concurrently-operating subnets enables the IC to scale practically without limits.
Subnets process messages, which are submitted by users or come from other subnets.

The core IC protocol comprises the following four layers, from bottom to top:

  1. Peer-to-peer

  2. Consensus

  3. Message routing

  4. Execution

The lower two layers, P2P and consensus, together implement a selection and ordering of incoming messages and provide messages to the upper two layers in the form of blocks.
The upper two layers, message routing and execution, receive blocks containing ordered messages from the lower part of the stack and execute them in a completely deterministic manner on every node of the subnet.
This realizes a replicated state machine, where every node in the subnet transitions from the same starting state to the same ending state in every round (it must be ensured that every node executes the same messages in the same order, i.e., fully deterministically).