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 が利用できるノードの数によってのみ制限されるため、実質的に無制限に拡張可能です。
Network Nervous System による IC のガバナンス
Network Nervous System (NNS) は、ガバナンスシステムとして IC に重要な機能を提供しています。
NNS は ICP 台帳を保持し、ICP ユーティリティトークンのアカウントとトランザクションを追跡します。 また、ICP トークンのステークホルダーは、ICP のあらゆる側面に関する投票に参加することができます。例えば、ステークホルダーは、IC ソフトウェアのアップグレードや、新しいサブネットの追加などによる IC の拡張に関して投票することが可能です(ステーク、投票、報酬の詳細はこちらを御覧ください)。 さらに、NNS は全ノードに関する情報やサブネットへの割り当てなど、IC 全体の構造を管理しています。これは、信頼できる唯一の(しかし分散化された)情報源を構成しています。
さらに、NNSは、ICP トークンをアプリケーション実行時に消費される Cycle に変換することで、IC 上での計算のガスとする手段を提供します。
NNSは、世界で最も先進的な分散型自律組織(DAO)なのです。NNS の詳細はこちらをご覧ください。
Canister はスマートコントラクトの次の進化形
スマートコントラクトとは、ブロックチェーン上で実行されるコンピュータープログラムです。Canister または Canister スマートコントラクトは、コンピュータープログラムとデータのセットです。すべての Canister は IC のサブネット上でホストされています。
異なるサブネット上の Canister は、同時に実行することができます。さらに、同じサブネット上の複数の Canister を並行して実行することもでき、スループットをさらに向上させることができます。Canister はノンブロッキングで非同期メッセージを送信することにより、サブネット内やサブネット間で通信します。これらの特性により、基本的に無限のスケーラビリティを実現することができます。
IC の Canister には、以下の特徴があります。
- ブロックチェーンから直接ユーザーインターフェースを提供できます。
- 低料金で数ギガバイトのメモリを保持することができ、低コストで相当量の演算を実行し、演算相応額を自身で支払うことができます(リバースガス・モデルを御覧ください)。
エンジニアは、WebAssembly にコンパイルできる任意の言語で Canister を実装することができます。SDK は現在、Rust と Motoko で利用することができます。
低レイテンシー・高スループットなコンセンサス
Internet Computer Protocol は、サブネットの複数のノード(最大で3分の1以下)が故障したり誤動作したりしても、どのサブネットのノードも常に同じ Canister のステートを保持することを保証するものです。ICはプルーフ・オブ・ワークでもプルーフ・オブ・ステークでもなく、いわゆる DAO-controlled network であり、NNS DAO がサブネットノードのメンバーシップを管理します。 コンセンサスプロトコル は、以下のような望ましい特性を有しています。
- 低いレイテンシー - 少ないラウンド数の交換で合意に達します。通常、1~2秒以内にコンセンサスに到達します。
- 高いスループット - すべてのコンセンサス実行は、メガバイトオーダーのペイロードを処理することができます。
- 暗号学的なファイナリティ - IC コンセンサスは暗号学的に保証されたファイナリティに達します。すなわち、確定したステートの変更は元に戻すことができません。
- ビザンチンフォールトトレランス(BFT) - 部分的同期通信モデルにおいて、理論的に最適である任意の1/3まで(ただし、それ以下)の欠陥ノードを許容することができます。
IC のセキュリティ・アーキテクチャを支える Chain Key 暗号
サブネット(およびサブネット間通信)の正しい運用は、Chain Key 暗号 と総称される革新的な暗号プロトコルに依拠しています。Chain Key 暗号は、非インタラクティブ分散鍵生成(NIDKG)プロトコルを用いて、 サブネット生成に必要な BLS 署名スキームの秘密鍵シェアをセキュアに生成します。サブネットは BLS 閾値署名を利用し、分散的に以下の認証を行います。
- ユーザーのリクエストに対するレスポンス
- サブネットのステート
- サブネット間メッセージ
- サブネット全体の履歴を再検証することなく、ノードがサブネットに参加することを可能にするキャッチアップパッケージ
NNS は、あたかも分散型の認証局のようにサブネットの公開鍵を承認します。ユーザーは、NNS の48バイトの BLS 公開鍵だけで、どの Canister との対話も検証することができます。 従来のブロックチェーンは通常、新たに参加した当事者がチェーン上で行われたすべての取引を再検証する必要があります。これは、IC のような高スループットのシステムでは実現不可能です。Chain Key 暗号を活用することで、以下のことが可能になります:
- サブネットのメンバー変更 - レプリカは直近の有効なチェックポイントから開始してサブネットに参加することができ、また任意の時点で離脱することができます。
- プロアクティブセキュリティ - サブネットの閾値キーは、サブネットの現在のノード間で定期的に再共有(re-sharing)されます。
- 永続的な公開鍵 - メンバーシップの変更および鍵の再共有は、サブネットの公開鍵に影響を与えません。
- ガーベッジコレクション - ストレージが無限に増加するのを防ぐため、定期的に各サブネットのブロックチェーンから以前のブロックが削除されます。
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.