The Graphによる新たなWeb3ユースケース: オフチェーンデータの整理
The Graph
この記事は、The Graphのコア開発チームEdge & NodeのプリンシパルデータサイエンティストCraig Tutterowによって書かれました。
概要 — The Graphは、オフチェーンデータを整理するために使用できます。従来のオフチェーンデータをIPFSに投稿し、IPFSのハッシュをオンチェーンにポストするというワークフローを誰でも作ることができます。このデータは、サブグラフ(オープンAPI)によってインデックス化され、その結果、整理されたオフチェーンデータをフロントエンドに提供するために、低コストと労力でパフォーマンスよく使用することができます。
The Graphのユースケースは常に増え続けています。The Graphはオンチェーンデータの整理で広く知られていますが、このプロトコルのミッションは、世界中のあらゆる公共の知識や情報への容易なアクセスを分散型方法で提供することでした。
The Graphのユースケースは常に増え続けています。The Graphはオンチェーンデータの整理で広く知られていますが、このプロトコルのミッションは、世界中のあらゆる公共の知識や情報への容易なアクセスを分散型方法で提供することでした。
The Graphを通じてより多くのデータにアクセスできるようにする方法の1つは、オフチェーンデータを整理して提供することです。この記事では、The Graphを使用して、複雑で動的なオープンソースデータを経済的かつスケーラブルに公開し、独自のAPIを構築したり維持したりするオーバーヘッドなしに、大規模に提供する方法を詳しく説明します。これは、従来はオフチェーンであり、中央でホストされていたデータソースにアクセスして整理し、ユーザー、開発者、データ科学者、研究者などのために有用な新しいデータエコノミーを生み出すユニークな機会を提供するユースケースとなります。
Web3独自の価値提案とトレードオフ
Web3のアーキテクチャは、ユーザーが直接またはミドルウェアのサービスプロバイダーを通じて、基礎となるブロックチェーンの読み取りと書き込みを可能にすることで、バックエンド開発を簡素化します。しかし、規模が大きくなると、コストというトレードオフが発生します。オンチェーン取引コスト(ガス)は、より複雑な計算やより大規模なデータ保存には法外なものとなります。このため、アプリケーションの複雑さが制限されたり、開発者がオープンソースのデータ開発モデルから離れ、オンチェーンデータソースを補強するために、オフチェーンで集中管理される独自のAPIを構築することになります。
Web3のユニークな価値提案は、暗号を活用してユーザーに公開データまたは非公開データの所有権を与えることで、ソフトウェアアプリケーション開発の競争市場を実現することです。ブロックチェーン取引の公共性は、ユーザーの「ロックイン」とスイッチングコストを削減し、冗長性とコンセンサスに報いるプロトコルのインセンティブを通じて、データの永続性と完全性に対する信頼性をユーザーに提供します。このような性質のデータポータビリティは、一企業の株主や経営陣の意向を受けない無許可の方法で開発努力をクラウドソーシングすることによって、新しいタイプの体験をより低コストで構築することを可能にします。Web3のオープンデータは、Web2のデータサイロとは対照的で、管理されたものです。
グラフネットワークは、プロプライエタリなAPIへの依存を減らし、パーミッションレスで保守やホスティングができる方法でブロックチェーンデータを提供する方法の理想例です。The Graphはオンチェーンデータの整理と同義として扱われますが、サブグラフのパーミッションレスな性質とインデックス作成効率は、オフチェーンデータにも提供できるように拡張できます。オフチェーンデータは、オンチェーンデータのような暗号保証の恩恵は受けられませんが、それでもオフチェーンで生成されたデータは、世界中の経済を活性化させています。多様なソースのデータは、標準的なクエリ方法であるGraphQL API(別名サブグラフ)の恩恵を受けることができるのです。
グラフとオフチェーンデータを利用したWeb3データパイプラインの構築
The Graphを使って、ブロックチェーンやpermawebストレージ上のオープンソースで動的なデータを公開し、提供する方法について掘り下げてみましょう。この方法を使えば、サードパーティのコンシューマーに対して、確実かつ安価にデータをインデックスし、提供することができます。データの公開、インデックス作成、提供をデカップリングすることで、開発運用の費用を最小限に抑えることができます。さらに、The Graphの分散型ネットワークを使用することで、データ公開者の側で追加の努力をすることなく、このデータへのアクセスを堅牢かつ信頼性の高いものに維持できます。
このアプローチは、以下のコンポーネントで構成されています:
- 複雑な計算を行うオフチェーンのcronジョブが、The Graphがインデックスを作成できるpermawebソースにデータを投稿する(現在、IPFSでファイルデータソースのサポートを使用してのみ行うことができ、ArweaveやFilecoinでファイルコンテンツのインデックス作成サポートが追加されたら拡張できる)
- cronジョブは、ファイルハッシュと任意のメタデータ(時間、トピック名など)を投稿するオンチェーントランザクションを生成する必要があります。理想的には、計算を実行せず、IPFSハッシュを永続化するガス最小化データエッジコントラクトを使用しています。開発者は、この目的のためにEdge & Nodeが既に作成したデータエッジコントラクトを再利用することができます。OpenZeppelin Autotasksは、APIコールと同じくらい簡単にこれを実現します)
- チェーンに投稿されたファイルハッシュに基づいてIPFSファイルのインデックスを作成するサブグラフを公開する
サブグラフが公開されると、インデクサーによってピックアップされ提供されるため、サードパーティの開発者やユーザーは、データ提供に関連するホストや開発オペレーションを管理する中央のエンティティに依存することなく、自費でデータを照会することができます。
言い換えれば、データがオンチェーンに存在すれば、誰でもサブグラフを使って、従来サイロ化されていた情報をクエリし、フロントエンドに表示したり、新しいユースケースを立ち上げたりすることができます — すべて、データをホストする高価で故障しやすいサーバーを運用する必要はありません。
パブリック/オープンソースデータの場合、このワークフローは、The Graphのインデクサーの分散ネットワークを活用することで、独自のAPIサーバを維持することに関連する大幅なオーバーヘッドをアウトソースします。データをオープンソース化し、インデックス化することで、このワークフローでは、第三者がサブグラフを構成し、他のユースケースにその有用性を拡張することができます。このワークフローでは、データ公開者は、1)cronジョブの実行コスト、2)IPFSノードのピン留め(現在The Graphが補助)またはpermawebファイルストレージ、3)高スループットのチェーンでは一般的に低いオンチェーン・トランザクションに関連するコストのみを負担します。
データパブリッシャーのコスト面の利点に加え、The Graphを使用してIPFSファイルコンテンツのインデックスを作成することで、The Graphのインデックス作成ノードの地理的分布と冗長性に関連するパフォーマンス上の利点をユーザーに提供します。IPFSは、ファイルの可用性やサービス品質に関するプロトコルのインセンティブが組み込まれていないため、高トラフィックのWebアプリケーションのバックエンドとして使用するには困難な場合があります。The Graphのインデクサーは、クエリに対して競争し(直接支払いを受ける)、コンシューマグレードのウェブアプリケーションのスケーリングに必要なサービス品質を提供するインセンティブが組み込まれており、パフォーマンスよくpermawebファイルをインデックスするためのDNS層またはゲートウェイとして機能します。
さらに、The Graphとpermawebストレージの分散型構造は、データを利用可能にするために独自のAPIプロバイダーを必要とする単一障害点への依存を減らすことによって、参加を促し、サードパーティ開発者に自信を与えるための多くのメリットを提供します。これらの利点は以下の通りです:
- コンテンツハッシュ(チェーン上に不変的に保存される)を使用して、基礎となるデータを複製および検証できるため、サードパーティ開発者やIPFSノードプロバイダは、データの複製/コピー/セルフホスト/検証の能力を得ることができる。
- サブグラフAPIマニフェスト(スキーマと多くのロジックを含む)はチェーンに永続化され、複数のインデクサーによって許可なくインデックスを作成することができるため、データのホスティングと提供において地理的分散と冗長性を提供します。
グラフエコシステムにおける例
Edge & Nodeは最近、この方法を用いてネットワークコストとサービス品質のメトリクスを公開・提供するオラクルを作成しました。
5分ごとに、オラクルは:
- 利用可能なゲートウェイからIPFSに集約されたサービス品質とコストデータを投稿します。
- IPFSファイルのハッシュを、DataEdgeコントラクトを通じてGnosisチェーンに投稿します。
これらのIPFSファイルはサブグラフにインデックスされ、プロトコルの関係者によって消費されることができます。サンプルコードとしては、GraphOpsのJuan Manuel Rodriguez Defagoが作成したこのサブグラフのレポを参照できます。この特殊な実装であるoracle-subgraphパイプラインについては、Edge & Nodeの開発者向けドキュメントで詳細を読むことができます。
このアプローチによって、DappLookerのようなコミュニティメンバーがデータを利用できるようにする一方で、開発者のオーバーヘッドを最小限に抑えることができ、データ公開者が独自のAPIをホストし維持することに依存せずに、有用なツールを構築できるようになります(例:DappLookerチームがサービスの品質とコストのサブグラフに基づいて構築した2つのダッシュボード:ゲートウェイのサービスの品質ダッシュボードとインデクサーのサービスの品質ダッシュボード)
コスト
このワークフローは、非常に低コストで実施することができます。
以下は、私たちのサービス品質オラクルに関連するコストです:
- グノーシス・チェーン DataEdgeのコントラクトトランザクション: ~Gnosisチェーンで10kトランザクションの場合、1ヶ月あたり1~2ドル(タイプミスではなく、実際は1~2ドル)
- IPFSノードのピン留め:補助金あり。独立したSaaSオプションは月額20ドルからで、シンプルで低容量の使用には無料レイヤーがあります。
- サービング:パブリッシャーは0ドル、クエリ料はデータ消費者が支払う(サブグラフの複雑さとクエリ量に基づいてインデクサーマーケットが設定するコスト)。利用希望者は、このスプレッドシートで、現在の利用者がさまざまなレベルのクエリ量に対して支払っている月額料金を確認することができます。
新しいWeb3ユースケースの開拓
The Graphを介して提供されるオラクルからのダイナミックなデータは、パーマサイトの新しい可能性を開くことができます:
無駄のない安価なバックエンドを持つブログやコンテンツハブ
ブログのコンテンツホスティングをIPFSにオフロードして、サブグラフを使用してフロントエンドにブログのコンテンツを供給します。コンテンツ・パブリッシャーは、ENSを使用して、定期的にIPFSにコンテンツを投稿し、この方法を用いてチェーンすることで、ブログをホストすることができます。ブログのフロントエンド・コードは、サブグラフをバックエンドとして使用し、ホスティングやサーバーのメンテナンス、DNSのドメイン名登録が不要になります。パブリッシャーは、サイトのトラフィックに応じたクエリを支払うために、課金残高を持つ必要があるだけです。トラフィックや更新頻度にもよりますが、1ヶ月あたり1ドル未満の変動費で実現できます。
アルゴリズムによる選択とパーソナライズされた体験
自分や自分のコミュニティのためにキュレーションされたコンテンツを優先的に表示する。データパブリッシャーは、オフチェーンでコンテンツを推奨するための複雑な機械学習ワークロードを実行し、モデル出力をサブグラフで利用できるようにすることで、カスタムフィードランキングスコアを作成できます。Permawebや連合型ソーシャルネットワークのフロントエンドでは、モデル出力をフロントエンドの入力として使用し、ユーザーが公に表明した嗜好や行動に基づいて、パーソナライズされた体験を作成することができます。
データパブリッシャーとアプリ/フロントエンドのオペレータを分離することで、オープンソースコミュニティにおけるフロントエンドとバックエンドのエンジニアの専門化と分業が可能になり、Bluesky、Lens、Mastodonなどの分散型ソーシャルアプリケーションやプロトコルにとって有望な前進の道となる可能性があります。
リアルタイムのモニタリング
オラクルからのリアルタイムデータを組み込んだPermawebは、サプライチェーンから市場、気象条件まで、さまざまなシステムやプロセスの監視に利用できることが想定されます。Edge & Nodeは現在、このワークフローを利用して、コミュニティが分散型ネットワーク上のクエリについて、集約されたインデクサーとサブグラフのサービス品質を監視できるようにしています。
The Graphが、ウェブ上の有用な(しかし現在はサイロ化された)公共データへのアクセスを可能にし、第三者が使用するデータを公開する従来の機関によるウェブ3への参加を増やすためにどのように利用できるかを想像すると、わくわくします。あなたの目標が、無駄のない分散型インフラを利用したダイナミックなサイトの構築であれ、大規模なデータセットに対するクラウドソーシングによる分析の奨励であれ、サブグラフはそれを可能にするものなのです。
もし、あなたがこの方法を用いて、あなたのDappsでダイナミックなオフチェーンデータを公開したり、ホストしたり、プロセスを簡素化するためのオープンソースライブラリを共同で作成することに興味があるなら、Edge & Nodeのデータサイエンスチームはあなたからの連絡やコラボレーションを歓迎します!
ぜひ、このブログの記事とThe Graph Forumでアイデアを共有するか、DiscordでThe Graphコミュニティと考えを共有してください。
謝辞:Brian Berman、Michael Macaulay、Doug Antin、Zac Burns and Ricky Esclapon、Noelle Becker Moreno、Aaron Kelly、この投稿に対する意見とフィードバックをありがとうございました。