top of page

ICP Ninja: インターネットコンピュータのための道場

執筆者の写真: ICP JapanICP Japan


この記事は「ICP Ninja: Your Dojo for the Internet Computer」を引用翻訳しています。


ICP Ninja: インターネットコンピュータのための道場

ICP Ninjaは、インターネットコンピュータ(ICP)上でアプリケーションを開発・デプロイするためのオンラインプラットフォームです。さまざまなサンプルプロジェクトの中から選び、ブラウザベースのエディタでコードを編集し、数秒でICPメインネットに直接デプロイできます。


ICP Ninjaとは?

ICP Ninjaは、カニスター・スマートコントラクトの作成とデプロイを行うためのウェブベースの統合開発環境(IDE)です。開発者がICP上で迅速かつシームレスに構築を開始できるように設計されています。ICP Ninjaは、従来のICP開発ワークフローを簡略化し、通常必要となるIC SDKのダウンロード、開発者IDの作成、カニスターのリソースを支払うためのサイクルの取得といった手順を不要にします。ICP Ninjaを使えば、テンプレートプロジェクトを開き、「デプロイ」ボタンをクリックするだけでアプリを展開できます。


また、ICP Ninjaは、統合AI学習アシスタントを提供し、質問の回答、コードのトラブルシューティング、特定のコードスニペットの解説、さらにはコードの改善まで支援します。


作業セッションは自動的に保存され、後で再開可能です。プロジェクトがデプロイされると、その実行時間は20分間に制限されますが、必要に応じて再デプロイが可能です。


ICP上のプロジェクトは、MotokoやRustなど、さまざまなプログラミング言語で記述できます。ICP Ninjaは、これらの言語のテンプレートプロジェクトを提供しており、将来的にはPythonやTypeScriptのサポートも計画されています。


IDEのテンプレートプロジェクトでは、HTTPSアウトコール、ランダム性、チェーンフュージョン(Chain Fusion)など、ICPの独自機能を強調しています。チェーンフュージョンとは、ICPがブリッジやオラクルを使用せずに、他のブロックチェーンネットワークと直接通信できる機能を指します。ICPカニスターは、他のブロックチェーンから情報を取得したり、直接トランザクションに署名して送信したりすることが可能です。これにより、イーサリアムやその他のEVMチェーン、さらにはビットコインでのDeFiアプリケーションの開発が可能になります。


チェーンフュージョンの仕組み

ICPは、他のネットワークと分散型の双方向通信を行うために、以下の3つの方法を採用しています。

  1. 直接統合(Direct Integration): ビットコインネットワークの場合、ICPは専用のビットコインサブネットを実行し、サブネットのノードがビットコインネットワークに参加することで、直接通信を実現します。カニスターは、チェーンキー暗号技術と閾値署名を用いて、ビットコインのメインネットにトランザクションを署名・送信できます。

  2. 分散型RPC統合(Decentralized RPC Integration): イーサリアムやその他のEVM互換ネットワークに対しては、RPCカニスターをプロジェクトに組み込み、CloudflareなどのJSON-RPCサービスにAPIリクエストを送信できます。RPCカニスターからのAPIコールは、HTTPSアウトコールを介して行われます。

  3. HTTPSアウトコール(HTTPS Outcalls): カニスターが外部ソースからデータを送受信するための機能です。Web2サービスや他のブロックチェーンネットワークとの連携が可能になります。HTTPSアウトコールを用いて他のブロックチェーンと通信するためには、対象のチェーンがICPでサポートされる署名方式(ECDSA、EdDSA、Schnorrなど)を採用している必要があります。


EVMブロックエクスプローラプロジェクト

ICP Ninjaの「EVM Block Explorer」プロジェクトを通じて、チェーンフュージョンの実験を始めましょう。EVMブロックエクスプローラのサンプルプロジェクトでは、ICPスマートコントラクトが他のブロックチェーンネットワークから直接情報を取得し、ECDSAおよびSchnorr閾値署名を用いてメッセージに署名する方法を示します。


閾値署名はチェーンフュージョンの中核技術であり、カニスターがECDSAやSchnorrなどの異なる署名方式の公開鍵を持ち、それらを使用してメッセージに署名できる仕組みを提供します。


このプロジェクトをICP Ninjaで開き、実際に試してみましょう。現在Rustで利用可能であり、Motoko版も近日公開予定です。詳しい使用方法やプロジェクトの機能については、WELCOME.md および README.md ファイルを参照してください。


 
 
 

Comments


bottom of page