受信トレイに直接配信される暗号通貨の最高のインサイトを入手してください。下記のニュースレターを購読してください。

mail icon

読み込みと書き込みのスケーリング

Kyle Samani
Tushar Jain
2021年7月30日 | 10 minute read

編集者の詳細:*本記事はTushar JainとKyle Samaniが共著したものです。*

ブロックチェーンとは、固有の信頼性が最小化された特性を持つデータベースです。すべてのデータベースと同様に、読み込みと書き込みという2つの操作があります。

ブロックチェーンのスケーリングに関するこれまでの内容のほとんどは書き込み操作に該当します。これは頻繁に毎秒ごとの取引(TPS)として測定されます。例えば、Ethereumは15~30TPSをサポートし、Binance Smart Chainは160TPSをサポートし、Solanaは50,000TPSをサポートします。投資家はブロックチェーンの書き込みをスケーリングするために何十億ドルもの投資を行ってきました。

ブロックスペースの需要は指数関数的に増加し、ブロックチェーンでのデータの読み込みに関する需要はさらに速く拡大すると予想しています。インターネット上の主要なアプリケーションは基本的に何らかの形式のデータベースアプリケーションです。そして、ほとんどのデータベースアプリケーションでの読み込みと書き込みの比率は100:1と10,000:1となっています。なぜ、これほど比率が偏っているのでしょうか。Instagramで10,000人のフォロワーがいたとして、あなたが1つの写真を投稿すると、フォローワーの10%がInstagramを開き、写真を表示します。その1つの書き込み(写真をアップロード)に対する結果は1,000件の読み込みとなります。1万人がアセット取引をしており、分散型取引所で1件の取引をする場合、その10,000人がその取引を読み込み、そのアセットの価格を更新する必要があります。書き込みはレイヤー1ブロックチェーンのスケーラビリティによって制約されています。optimistic rollupやzk rollupのようなレイヤー2のソリューションがオンライン化され、Solanaのようなハイスループットなネットワークを用いることで、書き込み容量が急激に増え、上記の理由により読み込み需要が増加します。

読み込みのスケーリングはブロックチェーン業界にとって、次の大きなスケーリングの課題となっています。

ほとんどのデータベースアプリケーションには特定のデータ構造が含まれており、データベースの構造は、システムがシステムからデータをクエリされる方法に合わせて調整されています。例えば、Telegramのようなチャットアプリについて考えてみます。Telegramシステム全体が、ユーザーID、スレッドID、タイムスタンプ、メッセージコンテンツの4つのコラムヘッダーを伴う1つの巨大なテーブルであると想像できるかと思います。これは理論上機能する可能性がありますが、Telegramが所有するユーザーの数(500M+)と、毎日送信されるメッセージの数を考えると、これがどのようにパフォーマンスを低下するかがわかります。ユーザーがスレッドでクリックするたびに、すべてのクエリは同じテーブルからクエリします。これは非常に大きな問題です。すべてのクエリが同じテーブルに該当しないようにするためにも、クエリをローカリゼーションする方が適切であることが分かります。

別の構造を想像することができます。各スレッドが、ユーザーID、タイムスタンプ、メッセージコンテンツの3つのコラムヘッダーを含む別々のテーブルで保存されているとします。ユーザーがTelegram UIでスレッドをクリックすると、システムはそのスレッドにすべてのメッセージを保存しているテーブルが分かり、そのテーブルをクエリして新しいメッセージを要求します。この構造により、クエリをローカリゼーションすることで、パフォーマンスが劇的に向上します。

ブロックチェーンでの読み込みをスケーリングすることに関する問題は、ブロックチェーンが定義上、トランザクションフォーマットが規定されていないことです。ブロックチェーンとは、一連の取引にすぎません。誰がいつでもどんな取引でも提携でき、いかなる取引にも、任意のフォーマットが含まれ、複雑にすることが可能です。

ブロックチェーン上の取引は、すべて1つのテーブルで実行されます。上記のTelegramの例を参照することで、これがどのように大きなパフォーマンス問題を生み出すかがわかります。ブロックチェーンの場合、この問題は特定のデータ構造がある単一タイプのアプリケーションが存在しないため、さらに顕著になっています。何千ものアプリケーションが、それぞれに独自のデータ構造と、異なるユースケースを持っています。

標準的なEthereumクライアントであるGo Ethereum(GETH)には、いくつかの基本的なクエリ機能が存在します。例えば、GTHに対し、「このアドレスはどのくらいETHが含まれているか」という質問をすることができます。Ethereum merkle trieのデータ構造により、GETHがその質問に簡単に答えることができます。

次に、「これらの50のUniswapプールにTVLがどのくらい含まれているのか、それら全体でTVLがどのくらいあるのか」というより複雑な問題について考えてみましょう。この質問に回答するには、Uniswapプールとは何か、そのプール内の資産の価格について理解することが必要です。

デフォルトでは、GETH自体がUniswapプールとは何かを知らないため、GETHはその質問に答えることができません。

要約すると、次の3つの問題があります。

  1. 読み込みのスケーリング
  2. データ構造を理解して、何をクエリする必要があるかを知ること
  3. 検閲に強いクエリ結果を提供すること

ブロックチェーンデータのクエリは開発者にとって課題であり、これらの問題を解決するには、強く拡張可能なソリューションが必要です。分散型インデックスプロトコルであるThe Graphは、これらの問題に取り組んでいる主要なプロジェクトであり、成功すれば、「Google of Web3」になるように準備されています。

クエリレイヤーがWeb3スタックの最も重要なレイヤーに成長する可能性があるということを踏まえMulticoin Capitalは2018にThe Graphに投資しました。この記事では、プロジェクトが歴史と業界の両方において、重要なターニングポイントとなるため、The Graphを修正します。暗号資産で最も人気のある製品に成長したThe Graphのホストサービスは、その目的を果たしてきました。現在、The Graphは分散型ネットワークに移行しており、この移行が進むにつれて、上記3つの問題は解決し始め、完全分散型アプリケーションの機会を作り上げます。

分散化を可能にすることと、それをスケーリングすることは別のことです。The Graphは昨年20倍以上の成長をしており、2021年5月だけでも250億クエリを処理しました。The Graph Foundationは、読み込みの問題に取り組むことでThe Graphのスケールを支援するために2つの大きな補助助金を行いました。最初の補助金は、インデックスパフォーマンスを大幅に改善することを支援するために、専門知識を活用するエンジニアチームであるStreamingFastを導入することでした。2つ目の補助金は、誰がGraphノードを展開し、ネットワーク上の供給を増やすことを簡単にするのを助けるチームであるFigmentを導入しました。

第1世代サブグラフがホストされたサービスから分散型プロトコルに移行するにつれて、The Graphの完全なビジョンは現実に見えるようになり、ネットワーク効果は急速に成長を続けています。

読み込みを無限にスケーリング

すべての暗号ネットワークの基礎は、中央集権的な調整主体なしに、不信感を持つ当事者間の大規模なコラボレーションを促進するためにソフトウェアにインセンティブ(およびディスインセンティブ)をエンコードすることです。これはこれらのシステムへの信頼を最小化するものです。

抽象的に、このフレームでは無限に読み込みをスケーリングする新しい方法を提示します。暗号資産経済的ゲームを設計することで、純理論の経済主導を動機付け、そのデータをクエリする方々のために読み込みを実行し、これによってネットワークの供給側が需要を満たすために自己組織化できるようにします。

従来、企業は集中型サービスを構築し、多くのプログラマーを雇い、開発チームを編成し、多くのサーバーを管理することによって、昔ながらの方法でそれらを拡張してきました。彼らはパフォーマンスとコストを最適化するために、何百万時間もかけて システムの設計と再構築をします。

The Graphは以下のプロトコルです。1. 独立した合理的なアクションを促し、大規模なデータセット(サポートされたブロックチェーン上のデータ)のサブセットを保存し、インデックスする。2.このサービスのユーザーがどのアクションにより各サブセットが保存されているのかを把握することをサポートする。3.これらのクエリプロバイダが有効なレスポンス(誤った結果を返していないこと)を返していることを確認します。

インデクサー(クエリを実行する人)がすべての要求を提供することができなくなった場合はどうなるのでしょうか?

需要が供給を超過する場合、市場参加者において既存のインデクサーとアウトサイダーの両方がブロックチェーン上の決済フローを監視することにより実現します。余剰リソースがある人(またはリソースを簡単に取得できる人)はThe Graphソフトウェアをダウンロードと実行し、The Graphのスマートコントラクトに登録し、発見可能で、インデンスデータセットをインデックスし、ユーザーのためのクエリ処理を開始します。このサイクル全体を数分または数時間間隔で実行でき、100%自動化することができます。

概要:クエリサービスの需要が増大するにつれて、合理的経済的に動機付けられた供給がその需要を満たすために自己組織化します。Kyleは数年前にこのテーマについて明確に述べました。

データ構造のスケーリング

データ構造の問題を解決する技術的な方法は2つあります。

1)GETHにすべてのUniswapプールのリストと関連する取引(入金、出勤、取引など)を求め、GETHの外部プログラムとしてTVLを計算します。誰かが質問をする場合、計算を繰り返し、最新の番号を取得します。

2)別のデータ構造を定義するには、Ethereum取引のリストである巨大なテーブルの末端に新しい取引が追加されるたびに、システムはUniswapプールのサイズを増加または減少するかどうかを検出し、GETHの外部に存在するデータベースで追加する適切なデータフィールドを更新します。

The Graphは、ソリューション2を可能にするデータ構造を指定するフレームワークを提供し(これらはサブグラフマニフェストと呼ばれます)、これらのマニフェストファイルに基づくデータベースインデックスサービス、ノードの分散型ネットワーク間で実行するリアルタイムクエリシステムを提供します。

さらに、Graphは2015年にFacebookによって発明され、オープンソースされたクエリ言語であるGraphQLを使用する開発者にクエリを公開します。今では、GraphQLは非常に使いやすいため、開発者のためのクエリインターフェイスのためのゴールドスタンダードと考えられています。ここでは、GraphQLの素晴らしさをより技術的な情報を踏まえて紹介します。

同じ問題を解決するソリューションもあります。市場を次のように分けます。

The Graph Graph

ポケットネットワークは、右下隅の1つであるため、知的に興味深いものです。しかし、The Graphの成功により、開発者はGraphQLとサブグラフを使用して構築することを、RPCがGETHノードに呼び出すことよりも、より速く、より簡潔であるため、好ましいと述べています。

検閲への抵抗とセキュリティのスケーリング

Graphの最大の競合他社はInfuraです。Infuraは単純なサービスです。数千ものGETHノードの前にあるロードバランスです。より高度なレベルの抽象化(上記のイメージのパーランスあたり、「クエリ最適化」)を提示するものではありません。他の競合他社はすべてInfuraのサイズの一部です。

Infuraは、それを使用するdAppsのための中央集権型チョークポイントとして機能します。検閲に強いサービスを提供するためには、dAppはそれに対する中央集権型の制御を排除する必要があります。攻撃者がInfuraを使用してdAppを使用するユーザーの権限をシャットダウンする場合、これは大きな脅威となります。The Graphは、クエリの結果を提供するインフラを運営する独立した人たちのグローバルネットワークであるため、検閲抵抗を提供することができます。

Graphインデクサが誤った応答を返した場合、彼らは大きなペナルティーを受ける可能性があります。クエリを要求する人またはサードパーティのどちらかが、インデックスが無効な結果を生み出したことを検出する限り、ブロックチェーン自体は真実の最終的なアービタとなります。インデクサが嘘をついていると仮定して、ブロックチェーはインデクサの接続(GRTに投稿)を切り、悪意ある行動を報告する人に報酬を贈ります。

インデクサにより最大の価値があると示された最大のクエリエコシステムは、最も安全なクエリシステムであることを意味します。このリターンは、次のようにフィードバックループを生み出します。

The Graphフライホイール

結論 --

なぜ分散型なのか。これにより、いくつかのことが可能になります。

  1. 検閲に強く、それをシャットダウンできない本当のサーバーレスなアプリケーション
  2. データを「エッジ」に近づけることで、レイテンシーを減少し、パフォーマンスを向上します。
  3. 1日あたり何百万ものクエリから(はい「T」)クエリまで、より効率的な方法でスケーリングします。

分散型について話すとき、通常は検閲抵抗(ビットコイン)のコンテキストでそれについて話します。これを達成する主なメカニズムは、完全な冗長性です。

The Graphの場合、分散型は検閲抵抗とスケールの両方を伴います。世界中の誰でもGraphサーバーを実行することができ、そのサブグラフ基準でクエリの需要がどのようなものであるか確認することができます。世界中の熱心な開発者やコンピュータオタクは、特定のサブグラフが十分なサービスを受けていないかどうかを確認し、すぐにグラフノードを立ち上げてクエリを提供し、報酬を得ることができます。これは、Graphを無限にスケーラブルなものにし、検閲抵抗をもたらす重要な洞察となります。

これが分散型の力です。

開示:*Multicoinは、投資活動に関する利益相反を識別し、効果的に管理するために合理的に作られた書面による方針および手順を確立しており、維持、実行しています。Multicoin Capitalは、この記事に挙げられている資産を公開から3日間「No Trade Period(非取引期間)」「No Trade Policy(取引を行わない方針)」を順守しています。Multicoin CapitalはGRTを所有しています。*

Disclosure: Unless otherwise indicated, the views expressed in this post are solely those of the author(s) in their individual capacity and are not the views of Multicoin Capital Management, LLC or its affiliates (together with its affiliates, “Multicoin”). Certain information contained herein may have been obtained from third-party sources, including from portfolio companies of funds managed by Multicoin. Multicoin believes that the information provided is reliable but has not independently verified the non-material information and makes no representations about the enduring accuracy of the information or its appropriateness for a given situation. This post may contain links to third-party websites (“External Websites”). The existence of any such link does not constitute an endorsement of such websites, the content of the websites, or the operators of the websites. These links are provided solely as a convenience to you and not as an endorsement by us of the content on such External Websites. The content of such External Websites is developed and provided by others and Multicoin takes no responsibility for any content therein. Charts and graphs provided within are for informational purposes solely and should not be relied upon when making any investment decision. Any projections, estimates, forecasts, targets, prospects, and/or opinions expressed in this blog are subject to change without notice and may differ or be contrary to opinions expressed by others.

The content is provided for informational purposes only, and should not be relied upon as the basis for an investment decision, and is not, and should not be assumed to be, complete. The contents herein are not to be construed as legal, business, or tax advice. You should consult your own advisors for those matters. References to any securities or digital assets are for illustrative purposes only, and do not constitute an investment recommendation or offer to provide investment advisory services. Any investments or portfolio companies mentioned, referred to, or described are not representative of all investments in vehicles managed by Multicoin, and there can be no assurance that the investments will be profitable or that other investments made in the future will have similar characteristics or results. A list of investments made by funds managed by Multicoin is available here: https://multicoin.capital/portfolio/. Excluded from this list are investments that have not yet been announced (1) for strategic reasons (e.g., undisclosed positions in publicly traded digital assets) or (2) due to coordination with the development team or issuer on the timing and nature of public disclosure. * This blog does not constitute investment advice or an offer to sell or a solicitation of an offer to purchase any limited partner interests in any investment vehicle managed by Multicoin. An offer or solicitation of an investment in any Multicoin investment vehicle will only be made pursuant to an offering memorandum, limited partnership agreement and subscription documents, and only the information in such documents should be relied upon when making a decision to invest.*

Past performance does not guarantee future results. There can be no guarantee that any Multicoin investment vehicle’s investment objectives will be achieved, and the investment results may vary substantially from year to year or even from month to month. As a result, an investor could lose all or a substantial amount of its investment. Investments or products referenced in this blog may not be suitable for you or any other party.

Multicoin has established, maintains and enforces written policies and procedures reasonably designed to identify and effectively manage conflicts of interest related to its investment activities. For more important disclosures, please see the Disclosures and Terms of Use available at https://multicoin.capital/disclosures and https://multicoin.capital/terms.