The Graphの紹介
2018年の最初の記事より
先月The Graphを発表しましたが想定を遥かに上回る反響を得ました。
プロジェクトや個人の方から、このプロトコルを使いたい、参加したいというたくさんの返信をいただきました。手を差し伸べてくださった全ての方に感謝します。私たちは、暗号コミュニティと分散化運動の一部となり活動できることに興奮しています。なぜThe Graphに取り組んでいるのか、そしてなぜそれが私たちにとって重要なのかについてをここで共有したいと思います。また、私たちのロードマップの発表及びコミュニティのための次なる取り組みについての詳細を共有したいと思います。
分散化
30年近くもの間に世界を席巻してきたウェブは、コミュニケーションのためのユビキタスなオーバーレイとなっています。情報化時代において、人々が情報を保存し、発見し、管理し、共有する方法は、社会の構造や個々の人生経験を直接規定するものです。今日のウェブは、クライアント・サーバ・アーキテクチャを採用しており、サーバー管理者には途方もない権力が与えられています。サーバー管理者は、ルール設定、アクセスの許可や取り消し、データ管理などについて一方的な権限を有しており、多くの場合、ユーザーが発言したり、意識したりすることなく、データが知らぬうちに管理されています。情報は極めて非対称であり、権力の不均衡を引き起こします。
また、この構造は中央集権化を促進します。これが、現在、世界のソフトウェアの多くを実行している企業がほんの一握りである理由です。中央集権化された世界では、個人は、物事がどのように機能するかに影響を与えることができず、代理権も能力もありません。人々は、自分では変えることができず、利害関係もない世界の受動的な傍観者になってしまいます。人々はオール・オア・ナッシングの取引を受け、競争は抑制され、選択の自由は失われています。
ここにきて存在する良いニュースとしては、中央集権化がピークに達し、振り子が逆に揺れ始めているということです。暗号通貨と関連プロトコルの台頭は、私たちがパワーバランスを独占から個人の主権にシフトさせるために利用できるユニークな機会を創生します。
Web3プロトコルスタック
Web3 は大規模な分散化を可能にするプラットフォームです。最終的にどのようなプロトコルがweb3を構成するのかを伝えるのはまだ早いですが、いくつかのプロトコルが分散型体験の新しい波を可能にし、ソフトウェアの構築方法やグローバルな展開方法に取って代わると私たちは信じています。
分散型アプリケーション(dApps)はユーザーが自分のデータをコントロールできるようにします。dAppsはコミュニティが所有し管理するか、ユーザーがプライベートで管理するデータを使って構築されます。このようにして、多くの製品やサービスをプラグイン可能なデータセット上に構築することができ、ユーザーはdAppsを自由に切り替えることができます。これにより、何百万人もの開発者が個人でも小規模なチームでも成功できるようになり、ユーザーは物事がどのように機能するかについての選択肢とコントロールを得ることができるようになります。
EthereumのようなブロックチェーンやIPFS/Filecoinのようなストレージネットワークは、この新しいプロトコルスタックの中心となるでしょう。誰でもEthereumやIPFSノードを実行して、基礎となるデータを検証することができます。今日のブロックチェーンは遅くて高価ですが、新しいコンセンサスアルゴリズム、シャーディング、レイヤー2、そして世界中のチームが取り組んでいるその他のソリューションによって、パフォーマンスとコストが桁違いに向上すると信じるに足る理由があります。
クエリ層
ブロックチェーンとストレージネットワークはスタックの重要なコンポーネントですが、データはアプリケーションで直接消費できる形式で保存されることはほとんどありません。アプリケーションは、データを取得する前に、データをフィルタリング、ソート、ページ分割、グループ化、結合する必要があります。ユーザーはスピナーを見たり、画面がロードされるのを待ったりするのがたとえそれがわずかな時間だとしても好みません。web3が普及するためには、中央集権的な代替手段と同等かそれ以上のエクスペリエンスを提供する必要があります。
今日のチームは、集中型のインデックスサーバーを構築することで、この機能のギャップを回避しています。これらのサーバーはEthereumからデータを引き出し、データベースに保存し、APIを介して公開します。この形では、ユーザーがこれらのサーバーを運用し続けるためには、これらのチームを信頼する必要があるため、それ自体が脆弱性となりますが。プロジェクトが廃業したり、戦略的な理由でデータを修正したり、買収されたり、単にミスをしたりする可能性もあります。
そこで私たちは、ブロックチェーンやストレージネットワークからデータを取得するための分散型クエリプロトコルであるThe Graphを作成しています。The Graphを使うことで、開発者はGraphQLを使ってピアツーピアのインデキシングノードのネットワークに問い合わせを行い、クライアント上で結果を検証することができます。これにより、チームはdAppsのコア機能に集中できるようになります。管理する必要のない信頼できる公共インフラにデプロイして、スケールメリットの恩恵を受けることができるようになります。
web3のポイントがソフトウェアの信頼性の高い基盤を作ることであるならば、The Graphはこの安定性を1段階上げ、どんな開発者でも組織化されたデータを確実に見つけてdAppに直接利用できるようにすることができます。
起源
共同創立者であるJannis Pohlmann、Brandon Ramirez、そして私は以前、いくつかのスタートアップ企業で一緒に働いていました。これらの努力の過程で、私たちはソフトウェアをより速く構築する方法を考えることにかなりの時間を費やしました。私たちは、アプリケーション開発をより生産的にするためのフレームワーク、開発者ツール、インフラストラクチャを構築しました。
2017年初頭にEthereumの領域に飛び込んだとき、ツールや成熟したプロトコルの欠如により、dAppsを構築することが困難であることが明らかになりました。オープンデータをよりアクセスしやすくするというアイデアがそこから私たちの執念となり、The Graphが誕生しました。
私たちは2017年後半に最初のプロトタイプを構築しました。ホワイトボードセッション、プロトタイピング、開発者との会話を重ねながら、数ヶ月かけてデザインを組み上げてきました。私たちは、分散型ネットワーク上で安全に運用できるインデックスロジックを書くための生産性の高い開発者を探していました。数ヶ月前には、私たちはデザインに慣れ、現在Rustで書いている本番実装の作業を始めました。
ロードマップ
暗号分野では、正しいインセンティブ設計が重要であることを知っています。固定的な日付を伝えることは、間違ったインセンティブを生み出すと考えています。長いタイムスケールで本当に重要なのは、1) 優先順位と2) ベロシティです。
優先順位には、ビジョン、ロードマップ、バックログが含まれます。ベロシティとは、チームが単位時間あたりに出荷する機能や拡張機能の数のことです。優先順位が高く、ベロシティが高いチームは成果を出すことができるといえます。そのため、The Graphでは日付ではなく、優先順位とベロシティを伝えることにしています。
開発ロードマップと主要マイルストーンは以下の通りです:
- オープンソース — 最初のバージョンは、EthereumとIPFS用のスタンドアロンのインデクサーです。このノードは、Ethereumのイベントをサブスクライブし、ユーザーが提供するスクリプトを実行してデータを変換し、そのデータをインデックス化し、GraphQLを介して利用できるようにします。スクリプトはWASM上で実行されるため、データの処理は高速で、結果は決定論的です。このリリースでは、The Graph上で構築するための開発者APIを確立し、ブロック再編成やプッシュ更新の処理など、現在チームが自ら解決しなければならない多くの問題を解決します。
- ホステッドサービス — プロジェクトはそれぞれのノードを実行することができますが、チームがより簡単にThe Graphを構築できるようにするために、ホステッドサービスを提供したいと考えています。プロジェクトをサポートし、コミュニティを活性化するために、このサービスを無償で運営していきます。
- ホワイトペーパー — 3月にホワイトペーパーの初期バージョンを書きましたが、その後改良しました。サービス開始後、最近のアップデートをまとめた、より詳細なホワイトペーパーを公開する予定です。
- 分散型ネットワーク — 分散型ネットワークでは、誰もがノードを実行して、インデックス作成、キャッシング、検証、クエリ処理をネットワークに貢献できるようになります。効率的なマーケットプレイスが設定されるので、ノードはサービスに対して報酬を得ることができ、プロジェクトは低コストで信頼性の高い分散型インデックスソリューションを手に入れることができます。