2014年に初めて導入されたとき、Ethereumブロックチェーン上の分散型アプリケーション(DApps)は、透明性、データの不変性、中央集権的なエンティティからの独立という壮大なビジョンを約束しました。Vitalik Buterin(イーサリアムの共同創設者)は次のように述べました。「タクシー運転手を職を失わせるのではなく、ブロックチェーンはUberを職を失わせ、タクシー運転手が顧客と直接やり取りできるようにします。」
しかし、現実は異なります。実際、現在までにほとんどのDAppsは、特にアプリケーションロジックやフロントエンドのホスティングにおいて、AWSやGoogle Cloud Platformなどのクラウドサービスを含む中央集権的なサービスから完全に独立していません。この中央集権的なインフラへの依存は、DAppsが守るべきであった分散化の原則を損なっています。
この批判は、Signal Messengerの創設者であるMoxie Marlinspikeによって表明されました。彼のブログでは、DAppsが現在どのように中央集権的なサービスに依存しているか、そしてそれがいくつかの大企業がデータとインフラを制御するWeb2に似たビジネスモデルにつながる可能性があるかについて書いています。この状況は、DAppエコシステムの持続可能性と真の分散化についての懸念を引き起こします。
Buterinは、Timesの “The Man Behind Ethereum Is Worried About Crypto’s Future” という記事で引用されて、「適切に認証された分散型ブロックチェーンの世界がやって来ており、多くの人が考えているよりもはるかに近くにある」と述べました。\
Internet Computer: 解決策は「来る」ではなく「現在存在する」
Internet Computer (ICP) は、単なる未来の約束ではなく、現在の現実を提供します。ICPは、開発者がアプリケーションをブロックチェーン上で直接ホストできるようにし、真の分散化を確保し、中央集権的なクラウドサービスの必要性を排除します。
どうやってこれが可能なのか?
Canisterは、ICP上で動作するスマートコントラクトです。既存のスマートコントラクトとは異なり、Canisterはコードとデータの両方を組み合わせた計算ユニットです。Canistersは、ウェブページの提供から安全なメッセージングアプリの作成、または分散型トークン交換の実装まで、任意のコードやデータを含むことができます。ここで言及されているコードは、一般的なスマートコントラクトの論理であり、WebAssemblyバイトコードの形で、データは永続的なメモリページの形で存在します。
ICP Canisterは、Sovereignネットワーク上で動作します。これは、カニスターのコードを実行し、そのデータを保存する責任を持つ分散型のノードマシンのコレクションを意味します。これらのノードは分散型の方法で協力し、システムが弾力性と安全性を保つことを保証します。各ノードは孤立して動作し、潜在的な悪意のある活動からネットワークを保護します。
Internet Computerは、Byzantine Fault Tolerance (BFT) を採用しており、これは一部のノードが失敗したり悪意を持って行動したりしても、全体のシステムが正しく機能し続けることを意味します。このアーキテクチャにより、canistersは効果的にスケールし、シンプルなウェブサービスから複雑な分散型金融プラットフォームまで、さまざまなアプリケーションをサポートすることができます。
ICPはノードプロバイダーの分散化をどのように確保しているのか?
ネットワークの分散化を確保するために、各node providerは、NNSを通じてトークン保有者によって慎重にチェックされ、承認されます。NNS は、インターネットコンピュータを管理する分散型自律組織です。node providerになるためには、ノードマシンの提供、意図、身分証明書を概説した自己宣言文書とともに提案を提出する必要があります。その後、コミュニティは提案を受け入れるかどうかを投票します。node providersが受け入れられ、彼らのマシンが稼働している場合、サービスに対して報酬を得ます。これらの報酬はNNSによって決定されます。
😎 Canisters に関するクールな事実:
以前に述べたように、Internet Computerのアーキテクチャは、canistersが効果的にスケールすることを可能にし、シンプルなウェブサービスから複雑な分散型金融プラットフォームまで、すべて完全にオンチェーンで、中央集権的なクラウドサービスに依存することなく、さまざまなアプリケーションをサポートします。
さらにクールなことに、Internet Computerのスマートコントラクト上でオンチェーンで構築されたアプリケーションは、すべての人気のある検索エンジンによって直接インデックスされるため、従来のクラウド上でのフロントエンドの必要がなくなります。
まだ終わっていません:開発者としてあなたに利益をもたらす他の機能を発見しましょう!
前のセクションでは、ICPが100%オンチェーンアプリケーションの開発をどのように可能にするかを探りました。ここでは、開発者としてあなたに利益をもたらす他のクールな機能をいくつか紹介します。
さようなら Oracles:サードパーティアプリに直接接続
ほとんどのスマートコントラクトは、ブロックチェーン上でサードパーティデータに直接接続することができません。しかし、多くの分散型アプリケーション(DApps)のビジネスモデルは、特にIoTやリアルタイムの為替レートに関連するものでは、これを必要とします。この制限により、開発者がWeb3を効果的に活用することが難しくなります。ブロックチェーンの外部からデータにアクセスするために、彼らはしばしば中央集権的なoraclesに依存しますが、これらはハッキングに対して脆弱であり、通常は高い手数料を請求します。
HTTPS outcalls機能により、Internet Computer Protocol (ICP)上のcanistersは、従来のWeb 2.0サーバーに対して外向きのHTTPリクエストを行うことができます。これらのリクエストからの応答は、canisterの計算に安全に使用でき、サブネットレプリカ間の状態の乖離のリスクを排除します。この機能は、oraclesサービスと比較して、より実用的でコスト効果の高いソリューションを提供し、スケーラビリティを向上させることで、開発者に利益をもたらします。
リアルタイムの暗号通貨価格データを必要とするアプリケーションを促進するために、Internet Computer Protocol (ICP)はExchange Rate Canister (XRC)を導入しました。このcanisterは、Web 2.0サーバーからデータを取得し、完全にオンチェーンで動作します。主要な暗号通貨取引所とその公開APIを通じて相互作用し、リアルタイムおよび過去の価格情報を取得します。
HTTPS Outcallsについて詳しく学ぶには、こちらをクリックしてください。
分散型AI:単なる物語ではない!
最近、分散型AIまたはAIとブロックチェーンの組み合わせが注目のトピックとなっています。これには少なくとも2つの理由があります。まず、AIは検出不可能な方法で操作される可能性があります。これは、AIの出力の整合性が誰にも知られずに損なわれる可能性があることを意味します。第二の理由は、AIが「ブラックボックス」の中で動作し、ユーザーが生成された応答の出所を視覚的かつ透明に見ることができないということです。
フォーブスの記事の一部には、「Watch Decentralized AI In 2025: The Convergence Of AI And Crypto」というタイトルがあり、「DeAI in 2025: Mere Narrative or True Innovation?」について議論しています。
ここで興味深いのは、ICPがすでにAIモデルをスマートコントラクトとして実行する開発に関心を持っていることです。これは、ICPがネイティブに近いパフォーマンスを提供するWebAssembly仮想マシンを採用しているため可能です。ノードは32コアのCPU、512GiBのRAM、30TBのNVMeという標準仕様を備えており、コードとデータをオンチェーンで実行できる革命的なSmart Contract Canisterの概念を持っています。
2024年初頭、Internet Computerの創設者Dominic Williamsが世界初のデモを発表しました:スマートコントラクトとしてブロックチェーン上で動作するAIのデモです。以下のビデオをご覧ください:
Bitcoin DAppsの構築: Native Bitcoin スマートコントラクトを使用
Bitcoinは2009年に導入された以来、暗号通貨の先駆者であり最大の市場キャピタリゼーションを誇っています。しかし、Bitcoinは主に金融取引ツールとしての役割に焦点を当ててきました。しかし、今ではCanisterスマートコントラクトを使用してBitcoinネットワークとネイティブに相互作用する素晴らしいdAppsを構築することができます。これはInternet Computerのおかげです。Chain Fusion Technologyにより、ICP CanisterスマートコントラクトはBitcoinのパブリックキーを保持し、トランザクションを署名し、Bitcoinネットワークから直接読み書きを行うことができます。
Canister は、Internet Computer (ICP)上で動作し、ブリッジなしでBitcoinネットワークと直接相互作用することができます。これは、ICPノードがBitcoinブロックをフェッチし、検証できるため、スマートコントラクトがクエリを行うことができるようになります。さらに、これらのスマートコントラクトはBitcoinトランザクションを署名し送信することができるため、直接BTCを保持することが可能です。
この機能を可能にする2つの主要な機能があります:
Secure Key Storage (セキュアキー ストレージ): スマートコントラクトは、Bitcoinブロックチェーンと互換性のあるチェーンキー暗号化を使用して秘密キーを安全に保存できます。このキーは、メッセージやBitcoinトランザクションのデジタル署名を可能にします。
Bitcoin Adapter (Bitcoin アダプター): ICPには、Bitcoinネットワークに参加するノードを含むサブネットがあります。これらのノードは、Bitcoinの状態とブロックをフェッチし、トランザクションをネットワークに送信する責任を持っています。
ICPでDAppの開発を始めたいですか?ここで知っておくべきツールは次のとおりです:
ICP開発者を支援するために設計された他の多くのツールがあることに注意することが重要です。Motoko
Motoko
は、カニスタースマートコントラクトの開発専用に設計された主要なプログラミング言語です。カニスターはRustなどの他のプログラミング言語での開発もサポートしていることに注意することが重要です。
Motokoを使用すると、DAppの開発時間が短縮される理由はいくつかあります:
ICP専用設計: MotokoはICP専用に設計されており、Motokoランタイムとコンパイラシステムに完全自動のCandidサポートが組み込まれています。Candidは、サービスの公開インターフェースを記述することを主な目的としたインターフェース記述言語です。ICPに関連して、サービスはカニスターの形でデプロイされたプログラムです。各カニスターには、サービスのインターフェース記述を定義するCandidファイルがあります。
小さなWasm出力: 前述のように、カニスター上で実行されるコードはWebAssembly(Wasm)にコンパイルされ、Motokoによって生成されるWasm出力はRustと比較してサイズが小さくなります。
シンプルな構文: シンプルな構文により、開発時間が短縮され、学習が容易になります。
以下は、Motokoでの単純なプログラムの例です。このプログラムには、名前を入力として受け取り、テキスト型の挨拶を返す「greet」という1つの関数があります。このコードはMotoko Playgroundで実行できます。
actor {
public query func greet(name : Text) : async Text {
return "Hello, " # name # "!";
};
};
IC SDK
IC SDKは、ICPブロックチェーン上でカニスタースマートコントラクトを作成および管理するためのソフトウェア開発キットです。IC SDKをインストールすることで、ICP開発エコシステム内で簡単に作業できるようになります。IC SDKは、Internet Computer上での開発に必要な複数のコンポーネントで構成されています。これらのコンポーネントは次のとおりです:
dfx: ICP上でカニスターと対話し、開発するために使用されるCLIツール。Motokoはdfxのインストールに含まれています。
moc: Motokoランタイムコンパイラ。
replica: Internet Computerのローカルネットワークバイナリ。
DAppフロントエンドツールのフレームワーク
DApp開発において最も重要な要素の1つは、ユーザーがアクセスできるフロントエンドであり、ICPエコシステムでは、フロントエンドがカニスター内にデプロイされるため、さらに重要になります。
資産カニスター: 概念的には、アプリケーションのフロントエンドは資産カニスターを使用してICP上にホストされます。資産カニスターは、CSSやJavaScriptなどのフロントエンド資産をコンパイルして、ICP上にカニスターとしてデプロイできるWasmモジュールに変換します。
JavaScriptフレームワークの使用: また、DAppsの開発にはReactやNext.jsなどのJavaScriptフレームワークを使用することもできます。フルスタックWeb3アプリケーションの作成を簡素化するテンプレートの1つは、github.com/rvanasa/vite-react-motokoで、これはVite + React + TypeScript + Motokoのスタータープロジェクトです。
それでは、ICP開発者になる準備はできましたか?
最後までお読みいただきありがとうございます!ICPによって真の分散化の約束が実現されています。カニスターを活用することで、開発者は従来のクラウドサービスの制約から解放されたアプリケーションを作成できます。ICPは、DAppの本来のビジョンを実現するための重要なステップを示しています:ユーザーをエンパワーメントし、真にオンチェーンでデータの整合性を確保することです。
あなたは、堅牢で分散型のアプリケーションを構築するために必要なすべてを持っています。ICPエコシステムは、ブロックチェーン革新のための環境を提供します。それでは、飛び込んでICP開発者になる準備はできましたか?分散型アプリケーションの未来はここにあります!