What is the
Internet Computer?
The Internet Computer (IC) is the only general-purpose blockchain that runs decentralized apps at web speed.
It is the World Computer that can replace traditional IT and enable a new generation of Web3 apps and services running entirely on-chain.
The Architecture of the IC
The Internet Computer Protocol runs on servers with standardized hardware, which we call nodes. Nodes are distributed globally and hosted in independent data centers to ensure fault tolerance and decentralization. Nodes are grouped together into subnets, where each subnet constitutes its own blockchain that makes progress independently of the other subnets, resulting in unprecedented performance and scalability in the blockchain space. All subnets are connected and orchestrated by the Internet Computer Protocol to give rise to the Internet Computer.
The IC improves and evolves at a rapid pace through regular and seamless roll-outs of software updates that boost performance, iron out bugs, and introduce entirely new capabilities. Continuous hardware upgrades, adding nodes or subnets, make the IC scale virtually without bounds — scaling the IC is always possible by adding additional nodes.
The Network Nervous System governs the IC
The Network Nervous System (NNS) is the decentralized source of truth regarding the whole IC structure, storing information about all nodes and their allocation to subnets. The NNS holds the ICP ledger, which tracks the accounts and transactions of the ICP utility token. Token holders can stake ICP tokens and thereby participate in voting about every aspect of the IC, putting ICP stakers in full control (learn more about staking, voting, and rewards here). It also powers computation on the IC by converting ICP tokens to cycles, which are consumed when running decentralized apps. The NNS is the world’s most advanced decentralized autonomous organization (DAO).
Canisters are the next evolution of smart contracts
A smart contract is a computer program executed on a blockchain. A canister is a smart contract that bundles a computer program and its data. Every canister is hosted on one subnet of the IC. Canisters can be executed concurrently and communicate within and across subnets by sending asynchronous messages in a non-blocking manner, resulting in essentially unbounded scalability. Canisters are more powerful than smart contracts on other blockchains as they can
- serve a user interface directly to any web browser,
- hold gigabytes of memory for a low fee,
- perform substantial amounts of computation at a low cost, and
- pay for their own computation (learn more about the reverse gas model).
Canisters can be implemented in any language that compiles to WebAssembly. Popular canister development kits (CDKs) are described here.
Low-latency high-throughput consensus
The Internet Computer Protocol ensures that the canister state on any subnet is always consistent—even if multiple nodes of a subnet are faulty or misbehave. The IC is neither a proof-of-work, nor a proof-of-stake network, but a so-called DAO-controlled network, where the NNS DAO manages subnet node membership. The consensus protocol has the following properties:
- Low latency – A small number of rounds of exchange suffice to reach agreement. Consensus is normally reached within 1 to 2 seconds.
- High throughput – Every consensus execution can handle payloads in the order of megabytes.
- Cryptographic finality – IC consensus reaches cryptographically-guaranteed finality, that is, finalized state changes cannot be undone.
- Byzantine fault tolerance (BFT) – The IC can tolerate up to (but less than) one third of arbitrarily faulty nodes.
Chain-key cryptography underpins the IC's security architecture
The correct operation of subnets (and inter-subnet communication) relies on a suite of novel cryptographic protocols, collectively referred to as chain-key cryptography. Chain-key cryptography makes it possible for subnets to authenticate
- responses to user requests,
- the subnet state, and
- inter-subnet messages in a completely decentralized way.
The NNS endorses the public keys of subnets, much like a decentralized certification authority. Users only need the 48-byte BLS public key of the NNS to validate the interaction with any canister. Traditional blockchains typically require newly joined parties to redo all transactions ever performed on the chain, which is not feasible in a high-throughput system like the IC.
The IC uses chain-key cryptography to provide:
- Subnet membership changes – A replica can join a subnet, by starting from the most recent valid checkpoint, or leave at any point in time.
- Proactive security – Threshold keys of the subnet are periodically reshared between the current nodes of the subnet.
- Permanent public keys – Membership changes and key resharing do not affect the public key of any subnet.
- Garbage collection – Periodically, previous blocks are pruned from each subnet blockchain to prevent storage from growing infinitely.
References and further information
- Great resources to get a deeper understanding of how all components of the IC work and fit together are the How it Works page and the white paper.
- All of the IC's source code is available in the IC repo.
- You can find information on the IC's subnets, nodes, node providers, canisters, NNS proposals, voting, ICP transactions and more on our dashboard.
- Motoko is a novel programming language tailored to smart contracts on the IC. Check out Motoko.