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.
ICのアークテクチャ
Internet Computer Protocol のソフトウェアは、私たちが ノード と呼ぶ標準化されたサーバー・ハードウェア上で実行されます。ノードは世界中に散らばっており、独立した多数のデータセンターでホストされ、高度な耐障害性と分散性を確保しています。ノードは サブネット にグルーピングされます。各サブネットは他のサブネットから独立し、進行する独自のブロックチェーンを構成します。すべてのサブネットは、Internet Cpmouter Protocol によって接続、管理をされた上で Internet Computer(IC) を形成します。
ソフトウェアのアップデートはシームレスに行われ、性能向上やバグ修正、新機能の追加などが行われ、IC の改良と進化を加速させることが可能です。
さらに、ハードウェアレベルでもアップデートが可能で、ノードやサブネットの追加や削除が可能で、IC のスケーラビリティは 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.