Skip to main content

What is the
Internet Computer?

The Internet Computer (IC) is the only general-purpose blockchain-based platform that can host and run applications at web speed in a decentralized manner.

It provides a World Computer that can replace traditional IT and enable a new generation of Web3 services and applications running entirely on-chain.

The Architecture of the IC

The Internet Computer Protocol software is run on standardized server hardware, which we call nodes. Nodes are spread around the world, hosted in numerous independent data centers in order to ensure a high degree of 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. All subnets are connected and directed by the Internet Computer Protocol to form the Internet Computer.

Mechanisms are in place to roll out software updates seamlessly to boost performance, iron out bugs, or introduce entirely new features, making it possible for the IC to improve and evolve at a rapid pace.

Updates are further possible at the hardware level, adding and removing nodes or subnets, allowing the IC to scale virtually without bounds as scalability is only limited by the number of nodes made available to the IC.

The Network Nervous System governs the IC

As its governance system, the Network Nervous System (NNS) provides crucial functionality to the IC.

The NNS holds the ICP ledger, which tracks the accounts and transactions of the ICP utility token. It enables token holders to stake ICP tokens and thereby participate in voting on every aspect of the IC. For example, stakers may vote to upgrade the IC software or vote to extend the IC by adding a new subnet and so forth (learn more about staking, voting, and rewards here). Furthermore, the NNS maintains the entire IC structure, such as information about all nodes or their allocation to subnets. It constitutes a single, but decentralized, source of truth.

Moreover, the NNS provides the means to power computation on the IC by converting ICP tokens to cycles, which are consumed when running applications.

The NNS is the world’s most advanced decentralized autonomous organization (DAO). Learn more about the NNS here.

Canisters are the next evolution of smart contracts

A smart contract is a computer program executed on a blockchain. A canister, or canister smart contract, is a bundle comprising a computer program and its data. Every canister is hosted on one subnet of the IC.

Canisters on different subnets can be executed concurrently. Furthermore, multiple canisters on the same subnet can also be executed in parallel, further increasing throughput. Canisters communicate within and across subnets by sending asynchronous messages in a non-blocking manner. These properties allow for essentially unbounded scalability.

Canisters on the IC have distinguishing properties. They can

  • serve a user interface directly from the blockchain,
  • 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).

Engineers can implement canisters in any language that compiles to WebAssembly. SDKs are currently available for Rust and Motoko.

Low-latency high-throughput consensus

The Internet Computer Protocol ensures that the nodes any subnet always hold the same canister state—even if multiple nodes of a subnet (up to less than one third) 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 desirable properties:

  • Low latency – A small number of rounds of exchange suffice to reach agreement. Normally consensus is 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) – Being able to tolerate up to (but less than) one third of arbitrarily faulty nodes is theoretically optimal in the considered partially synchronous communication model.

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 securely generates private key shares for the BLS signature scheme as part of subnet creation using a non-interactive distributed key generation (NIDKG) protocol. Subnets use BLS threshold signing to authenticate, in a decentralized way,

  • responses to user requests,
  • the subnet state,
  • inter-subnet messages, and
  • catch-up packages to allow nodes to join a subnet without the need to re-validate the entire subnet history.

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. This is not feasible in a high-throughput system like the IC. Chain-key cryptography is leveraged 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.