〜ICP Hackathon Wave2 エントリー記事〜

はじめに
分散型アプリケーションといえば、DID(分散型ID)、分散型ストレージ(例: IPFS)、DeFi、分散型SNS(例: Mastodon, Nostr)、NFTマーケットプレイスなど、既に多くのアイデアが存在します。しかし、ICPだからこそ実現可能なユニークな価値について深く考察しました。
ICPは単なる分散性にとどまらず、ブロックチェーン技術とクラウドインフラの長所を組み合わせた次世代プラットフォームです。従来の分散型システム及びブロックチェーンと比較して、ICPはアプリケーション開発において次の3つの革新的な機能があります。
- Internet Identity: パスワードレスで安全なユーザー認証を実現し、個人情報を保護しながらシームレスなユーザー体験を提供。これにより、ユーザーごとの設定やデータ管理が容易かつ安全に行える。ブロックチェーンで言えば、ウォレットをGoogleアカウントなどで作成するソリューションはあるものの、資産管理ではなくサービスの利用に特化したユーザー体験を提供するという点でInternet Identityは優れている。スマートコントラクトの利用に個々人が管理するウォレットが必要不可欠な一般的なブロックチェーンとは前提が異なる。
- Native Web Serving: ICPのCanisterから直接Webコンテンツを配信することで、中央サーバーに依存しない完全分散型のサービス提供が可能。これにより、高い可用性と検閲耐性を備えたアプリケーションを構築できる。コントラクトだけでなくフロントエンドも分散化できることや、一元管理ができる点において、効率的かつ安全な仕組みと言える。
- HTTPS Outcall: 外部APIやWebサービスとシームレスに連携し、リアルタイムで最新の情報を取得・統合することが可能。ブロックチェーンといえばオラクルに代表される外部データ注入のソリューションが一般的だが、ICPでは外部アクセスが可能なため、Canister単体で動的かつインタラクティブなアプリケーションの開発が可能となる。これにより、分散型環境でも豊富なデータソースを活用できる。
この記事では、Internet Computer Protocol(ICP)Hackathon Wave2 エントリー記事として、Internet Identity、Native Web Serving、およびHTTPS Outcallを活用した分散型アプリケーション(dApp)のアイデアを10個提案します。
アイデア
1. パーソナライズド情報ダッシュボード

概要:
天気、ニュース、株価、SNSトレンドなど、ユーザーごとにカスタマイズされたリアルタイム情報を提供するダッシュボード。
活用方法:
- Internet Identity: ユーザー認証と個人設定(好みの情報カテゴリ、ウィジェット配置など)の管理。
- Native Web Serving: ダッシュボードのUIや各ウィジェット(グラフ、一覧など)を直接配信。CanisterのURLを自分のホームページに貼り付けることで、好きな情報を共有するなども可能。
- HTTPS Outcall: 外部APIから天気予報、株価データ、ニュースフィードなどの情報を取得。Cyclesの消費量に直接関わるので、取得レートの調整は必要か。
UI例:

2. 株価モニタリング&アラートシステム

概要:
株価や経済指標をリアルタイムで監視し、ユーザーが設定した条件に基づいてアラートを発信するシステム。
活用方法:
- Internet Identity: ユーザーごとの株式ポートフォリオやアラート設定を管理。
- Native Web Serving: リアルタイムの株価チャートやアラート一覧を表示。公開機能をつければ、canisterのリンクだけで情報共有も可能になる。
- HTTPS Outcall: 外部の金融データAPIから最新の株価情報を取得。また、Slackやdiscordのwebhookを叩くことでPush方式のアラートも出せそう。
注意点:
- canisterにはcronなどの定期実行機能はない。heartbeatというメソッドもあるようだが、柔軟性が低いので、外部サービスを使ったスケジュール実行とする。
UI例:

3. イベント&チケット予約プラットフォーム

概要:
地域イベント、コンサート、セミナーなどの情報を提供し、ユーザーがイベント予約やチケット購入を行えるプラットフォーム。
活用方法:
- Internet Identity: ユーザー認証、予約履歴、購入情報の管理。
- Native Web Serving: イベント一覧、詳細ページ、予約・購入フォームの配信。
- HTTPS Outcall: 外部のイベント情報データベースや決済APIと連携し、最新情報の取得と決済処理を実現。
備考:
- 決済については諸々セキュリティ上の問題がありそうなので、ICPに頼るのが良さそう。ICPでチケットを購入できるサービスができれば、そこと連携。
UI例:

4. ニュースキュレーション&パーソナライズドニュースアプリ

概要:
ユーザーの興味・関心に合わせた最新ニュースや記事を自動でキュレーションし提供するサービス。
活用方法:
- Internet Identity: ユーザーごとのニュースカテゴリー設定や閲覧履歴の管理。
- Native Web Serving: ニュース記事の一覧表示、詳細表示、動的なレイアウトの提供。
- HTTPS Outcall: 外部ニュースAPIやRSSフィードから記事データをリアルタイムで取得。
備考:
- 1つの記事を毎回HTTPリクエストするのではなく、canisterで内部に保管して複数ユーザーで参照できるようにするとOutcallによるcyclesの節約にもなるし、記事が消された時のバックアップにもなる。また、どの記事が人気かなどの情報も溜められそう。
UI例:

5. オンライン学習プラットフォーム

概要:
オンラインコース、ライブ講義、クイズ、ディスカッションなどを提供し、学習進捗を管理できるプラットフォーム。ユーザーは自分のペースで学びながら、他の受講生と交流することも可能。
活用方法:
- Internet Identity: 受講生の認証、進捗、成績、個別の学習設定の管理。個々の学習履歴に基づいたおすすめコンテンツの提示も可能。
- Native Web Serving: 講義コンテンツ、動画、教材、クイズなどの直感的な配信。受講生が講義資料をダウンロードしたり、インタラクティブなクイズに参加できるようにする。
- HTTPS Outcall: 外部教材APIや評価システム、スケジュール情報の取得によるサポート。Googleカレンダーなどと連携して、提出期限や試験日程を自動登録できる機能を追加。
UI例:

6. テクニカルドキュメント管理システム

概要:
技術プロジェクトのドキュメント(設計書、仕様書、チュートリアルなど)を一覧表示し、ユーザーがお気に入り登録や個人的なメモ、タグ付けを行えるプラットフォーム。ドキュメントのバージョン管理も可能で、過去のバージョンを参照する機能も備える。
活用方法:
- Internet Identity: ユーザー認証および各ユーザーごとのお気に入りリスト、メモ、タグ付け情報の管理。プロジェクトごとのアクセス権限も細かく設定可能。
- Native Web Serving: ドキュメント一覧、詳細表示、検索・フィルタ機能を持つ直感的なUIの配信。特定のキーワードで素早く必要なドキュメントを探し出すことができる。
- HTTPS Outcall: GitHub、GitLab、外部WikiなどのAPIから最新ドキュメント情報や更新情報を自動取得。ドキュメントの自動更新通知も可能。
UI例:


7. 研究論文リポジトリ&アノテーションシステム

概要:
研究者が論文や技術レポートをアップロード・共有し、個別にハイライト、コメント、注釈を加えられるプラットフォーム。共同研究者との意見交換や議論の場としても活用できる。
活用方法:
- Internet Identity: ユーザー認証により、論文ごとのアノテーションやブックマークを各自のアカウントで管理。個別の研究グループごとにアクセス制限をかけることも可能。
- Native Web Serving: 論文の閲覧、注釈の追加、ハイライトなどをシームレスなUIで提供。注釈やコメントの履歴を管理し、議論の流れを追いやすくする。
- HTTPS Outcall: CrossrefやSemantic Scholarなどの外部APIと連携し、引用情報や関連論文のメタデータを自動取得。関連する研究の推奨機能も実装可能。
UI例:

8. コードスニペット&レビュー共有プラットフォーム

概要:
開発者が自分のコードスニペットや小規模なライブラリ、ユーティリティを共有し、他ユーザーからのフィードバックやレビューを受けられるシステム。チーム内のナレッジシェアにも活用できる。
活用方法:
- Internet Identity: 各ユーザーのプロフィールや投稿、評価履歴を安全に管理。貢献度に応じたバッジや評価システムの導入も可能。
- Native Web Serving: インタラクティブなコードエディタやプレビュー機能、コメント・評価機能を直感的なWebインターフェースで提供。リアルタイムでのコードレビューもサポート。
- CPらで: GitHubやGitLabのAPIと連携し、リポジトリ情報や依存関係の自動取得、既存のコードベースとの連携をサポート。プルリクエストの自動生成も可能。
UI例:

9. DeFiデータ・リサーチダッシュボード

概要:
複数のDeFiプロトコルから流動性、取引量、APY、ボラティリティなどのデータを集約し、グラフやチャートでリアルタイムに表示するダッシュボード。個人投資家やリサーチャーが効率的に情報収集と分析を行える環境を提供。
活用方法:
- Internet Identity: 各自のウォッチリスト、カスタム指標、アラート設定、メモやブックマークを安全に管理。投資戦略の履歴管理も可能。
- Native Web Serving: 低レイテンシでダッシュボードやインタラクティブなグラフ、UIコンポーネントを直接ブラウザに配信。複数の指標を同時に比較できる機能も追加。
- HTTPS Outcall: DeFi Pulse、Dune Analytics、CoinGeckoなど複数のDeFiデータ提供APIから最新データを取得し、リアルタイムに表示・更新。異なるデータソースからの情報を統合して一元管理。
UI例:

10. Web3プロジェクトモニタリング&トレンド分析プラットフォーム

概要:
新規や注目のWeb3プロジェクトの情報、開発進捗、ソーシャルメディアの動向、技術的アップデートなどを集約し、リサーチャーがプロジェクトのトレンドやエコシステム全体の動きを分析できるツール。投資家や開発者が最新のプロジェクト情報を効率的に把握するための支援を行う。
活用方法:
- Internet Identity: ユーザーごとの注目プロジェクトリスト、評価コメント、分析ノートの保存・管理。個人の関心に基づくカスタマイズ機能も搭載。
- Native Web Serving: プロジェクト一覧や詳細ページ、インタラクティブなタイムライン、フィルタリング機能を直接提供。プロジェクト間の比較分析ツールも追加可能。
- HTTPS Outcall: Twitter API、GitHub、Discordの情報、プロジェクトの公式ブログ・RSSフィードから最新のアップデートやソーシャルデータを自動収集。トレンドの可視化やアラート機能も実装可能。
UI例:

最後に
10個のアイデアを考案する過程で、アイデアが類似してしまうことや、ICPの特徴を活かしきれていないものが出てくることに課題を感じました。しかし、10個のアイデアを詳しく分析すると、これらの類似点はむしろ強みになり得ることが分かりました。例えば、HTTPS Outcallを活用したcanisterは、情報の取得だけでなく、情報の投稿機能も備えています。Discordへの通知機能は、その典型的な例です。このように異なるアイデアを組み合わせることで、より革新的なソリューションを生み出せる可能性が見えてきました。
Wave4のハッカソンでは、今回のアイデアをさらに発展させ、より洗練されたものへと昇華させていきたいと思います!