Skip to main content

Network architecture

Beginner
Concept

The Internet Computer is the first "World Computer" network. It enables you to build web applications and internet services using a 100% decentralized platform without Big Tech and traditional IT. While traditional blockchains struggle to store a single phone photo onchain, ICP already hosts social networks, multiple ledgers, AI, and much more, fully onchain.

It is designed to give applications near-native performance and scalability while maintaining the security of decentralized execution. Smart contracts on ICP can host web assets, hold tokens, and serve HTTP requests from users. They can also interact with RPC nodes on other blockchains and Web2 servers through secure HTTP requests, seamlessly and securely integrating with other ecosystems.

Subnets

The ICP network is made up of multiple blockchain instances called subnets. Each subnet is a set of decentralized nodes running the network’s consensus algorithm among themselves. They build their own chain of blocks and execute smart contracts. Subnets run in parallel to one another. Smart contracts deployed on one subnet can communicate with smart contracts on another subnet through messages.

Subnets have different sizes, which determine the cost of running smart contracts on that subnet. Subnet size also impacts the time to finality, replication factor for smart contracts, and security. Currently, subnets contain between 13 and 40 geographically distributed nodes. However, there can also be localized subnets to support applications that need to comply with local regulations (GDPR compliance, etc.).

Learn more about subnets.

Nodes

Each node runs software called the replica. The replica contains the protocol components necessary for a node to participate in a subnet.

Nodes are assigned to subnets such that they maximize decentralization in terms of operators, geography, and jurisdiction. This is called deterministic decentralization.

Nodes are owned and operated by node providers, who are responsible for monitoring and maintaining their nodes. In return, node providers receive ICP tokens as payment for providing compute resources to the network.

Node providers on ICP must be voted on by the network’s governance. This ensures that the hardware of each node meets ICP’s high standards and that the identity of the node provider is known to the community. Each node provider must sign a declaration of good intent and may be liable if the node misbehaves.

Canister smart contracts

In the context of ICP, smart contracts are referred to as canisters. When a canister is deployed to the network, it gets deployed to a subnet and replicated across all nodes of that subnet.

ICP uses WebAssembly (Wasm) as the virtual machine for executing canisters, allowing developers to write canisters in their programming language of choice, including JavaScript, TypeScript, Rust, Python, or Motoko.

ICP embraces scalability and runs canisters in parallel. In that regard, canisters are similar to processes or microservices used in traditional programming workflows. Canisters can be fully autonomous by scheduling execution using timers rather than relying on users sending messages.

Learn more about canister smart contracts.

Chain-key cryptography

Chain-key cryptography is a suite of cryptographic mechanisms that facilitate many of ICP’s unique features and capabilities. One of these cryptographic mechanisms is threshold signing, enabling each ICP subnet to have a fixed public key and corresponding private key that is not stored on a single node, nor is it ever available on any node. Instead, it is split into multiple secret shares and distributed over all nodes using threshold cryptography.

Nodes can collectively sign messages to users and other subnets using these secret shares. This makes validation of the state and results trivial for users, since all they need to do is verify the digital signature against the fixed public key.

Chain-key signatures are another component of chain-key cryptography that allows smart contracts to sign transactions targeted specifically at other blockchain networks like Bitcoin and Ethereum. These transactions are submitted directly to the target chains without needing a bridge or oracle to facilitate the communication.

Learn more about chain-key cryptography.

Governance

ICP is governed by a decentralized autonomous organization (DAO) community called the Network Nervous System (NNS). It is implemented as a set of canisters running on ICP itself. Community members can participate in the network’s governance by staking ICP tokens in neurons in return for voting power. All operational changes to ICP go through voting.

The NNS automatically executes proposals that have passed voting, which ensures that nodes run the same version of the protocol and thus avoids hard forks.

Governance and node ownership are decoupled. It is possible to participate in governance without having a node, and vice versa.

Smart contracts on ICP can be governed by a Service Nervous System (SNS), a type of DAO that is based on the design of the NNS but instead allows a community to stake tokens in SNS-specific neurons and vote on proposals for upgrades to the smart contract.

Learn more about governance.