Web 3.0 アーキテクチャは、単に分散型であるだけでなく、モジュール型でもあります。
著者:Xiang,W3.Hitchhiker
一、Web 2.0 アーキテクチャ
Web2.0アプリケーションの例として、中央集権型取引所 Binance を挙げます。Binance はユーザーがさまざまなトークンを取引できるようにしています。
Binance は Web 2.0 アプリケーションで、アーキテクチャは非常にシンプルに聞こえますが、実際の開発には多くの作業が必要です。
ユーザーはネットワークプロバイダーを通じてデバイスをネットワークに接続し、ブラウザを開いて Binance のドメイン名を入力し、http プロトコルを介して Binance のウェブサイトにアクセスする必要があります。
Binance はユーザーが携帯電話またはメールアドレスを使用してこのプラットフォームに登録し、ログインする必要があります。
次に、Binance 自体はユーザー登録情報、取引額、取引履歴、注文などの基本データを保存する場所が必要です。これにはデータベースを構築して保存し、常に更新する必要があります。
さらに、バックエンドのプログラミング言語(Node.js、Java、Go など)は Binance のすべてのビジネスロジックを決定します。バックエンドのロジックを実行するためにサーバーを構築する必要があります。たとえば、新しいユーザーが登録したり、取引したり、注文した場合に何が起こるかです。
また、フロントエンドのプログラミング言語(JavaScript、HTML、CSS など)は Binance の UI ロジックを決定します。フロントエンドのインタラクションロジックを実行するためにサーバーを構築する必要があります。たとえば、ウェブサイトはどのように見えるのか?ユーザーがページ上の各ボタンとインタラクションすると何が起こるのか?
Binance で取引を書くと、これらすべての要素が統合されて連携します。あなたはそのフロントエンドとインタラクションし、フロントエンドはバックエンドとインタラクションし、バックエンドはそのデータベースとインタラクションします。これらすべてのコードは中央集権型サーバーにホスティングされ、インターネットブラウザを介してユーザーにフィードバックされ、中央集権型サーバーのすべての制御権は Binance の手にあります。
これは、今日のほとんどの Web 2.0 アプリケーションの動作原理の簡単なまとめですが、実際にはもっと複雑です。
二、Web 3.0 アーキテクチャ
Web 3.0 アプリケーションの例として Uniswap を挙げます。Uniswap は中央集権型取引所で、さまざまなトークンを自由に追加して取引できるようにしています。
Uniswap は Web 3.0 アプリケーションで、アーキテクチャは非常に複雑に聞こえますが、実際の開発は非常にシンプルです。
まず、ユーザーはデバイスを通じてネットワークに接続する必要があり、ネットワークサービスプロバイダーを介する必要があります。これは、電気通信やモバイルなどに似ています。(分散型ネットワークサービスプロバイダー、IoT:Helium)
次に、ユーザーはブラウザまたはオペレーティングシステムを介してプログラムにアクセスする必要があります(分散型ブラウザまたはオペレーティングシステム:Brave)。
ユーザーはブラウザを介してサービスサーバーとインタラクションする必要があり、この操作はプロトコルによってサポートされる必要があります(従来は http、最新のものは IPFS によって置き換えられ、コンテンツアドレッシングを使用します)。
Uniswap はユーザーがプライベートキーやウォレットを使用してログインする必要があります(プラグインやウォレットなど:Metamask、Tokenpocket、Math、 Brave ウォレット)。さらに、統一された DID も未来の方向性の一つです(ENS などに似ています)。
ウォレットはブロックチェーンのノードに接続する必要があり、この時ノードのサーバーが必要です。これには対応するブロックチェーンのノードが必要で、または Infura/Alchemy のような専門のノードサービスプロバイダーによって提供されます。(分散型ノードサービスプロバイダーもトレンドです:Pocket)
Uniswap のウェブサイトはどのように見えるのか?ユーザーがページ上の各ボタンとインタラクションすると何が起こるのか?これもまた JavaScript、HTML、CSS などのフロントエンドプログラミング言語によって Uniswap の UI ロジックが実現されます。
しかし、Web3 では自分でサーバーを構築してフロントエンドのインタラクションロジックを実行する必要はありません。これらのフロントエンドデータは分散型ストレージネットワークに保存できます。(Filcoin、SWARM、AR など)
以下は Uniswap の公式 IPFS リンクです。このソリューションではフロントエンドサーバーを構築する必要がなく、ユーザーは同様に正常に使用できます。
ipfs://bafybeiagkgmmhux6fswdoedmwqqsvt5arjivl35wuk25jljb2yqgn7njgu/#/swap
上記のリンクは ipfs:// で始まるため、ipfs を解析できるブラウザでなければ開けません(Brave、Opera)。
また、このリンクは人間が読める形式ではないため、ドメインサービスが必要で、対応するドメインをこのリンクにマッピングする必要があります。たとえば uniswap.eth。(分散型ドメインサービス:IPNS、ENS など)
もちろん、IPFS も Http に互換性のあるゲートウェイを介してアクセスすることしかサポートしていません。
ウェブサイトのアクセス量が多い場合、より柔軟な帯域幅市場が必要です ------ CDN 加速ネットワーク。(CDN サービス、IPFS、 Filecoin 検索市場)
Uniswap はブロックチェーンのスマートコントラクト言語 solidity などを使用して実現され、Uniswap のすべてのビジネスロジックを決定します。EVM 環境内で実行されるため、Uni は自分でサーバーを構築してバックエンドのビジネスロジックを実行する必要はありません(スマートコントラクトをサポートするブロックチェーン、ETH など)。
しかし、取引所が表示する必要があるのは、ビジネスロジックだけではなく、価格の歴史的な価格曲線や取引額なども必要です。これらの歴史的データはスマートコントラクトから取得することはできません。プロジェクト側が表示する必要がある場合、依然として自分でサーバーを構築し、ノードを実行し、チェーン上のデータをフィルタリングして Uni 自身のデータベースに保存する必要があります。したがって、Web3 にはチェーンデータインデックスのソリューションが必要です。(チェーンデータインデックスプラットフォーム Graph)
The Graph はチェーンデータインデックスのソリューションを提供し、ユーザーがデータを簡単にクエリできるようにします。The Graph では、どのスマートコントラクトをインデックスする必要があるか、どのイベントや関数呼び出しをリッスンする必要があるかを定義でき、呼び出し時や生成時の状態も含めて、受信したイベントをフロントエンドロジックが処理できるように変換する方法を規定できます。
チェーン上のデータの保存は、専用の Graph インデックスマイニングノードによって行われます。このインデックスノードは、ユーザーのページ端から呼び出すための API を提供し、プロジェクト側はサーバーを構築する必要がなく、インデックスノードだけがサーバーを構築してインデックスデータマイニングノードを実行する必要があります。
ブロックチェーンデータをインデックスすることで、The Graph はアプリケーションロジック内でチェーン上のデータをクエリでき、ほぼ遅延が発生しない状況を実現します。
たとえば、Uniswap の取引情報の表示は The Graph によって生成されます。
Uniswap がさらに多くを表示したい場合、オフチェーンの価格データもオンチェーンで表示する必要があります。この場合、オフチェーンとオンチェーンのデータの橋渡しを行う必要があります(分散型オラクル:chainlink)。
上記の開発ロジックに従うと、Uniswap は Web 3.0 アプリケーションを公開したことになりますが、実際の実装コストは Binance 取引所の開発コストよりもはるかに低くなります。なぜなら:
- Uniswap はユーザーにメールアドレスや携帯電話を結びつける必要がなく、ウォレットを介して直接ログインできます。Uni 自身も保存する必要がありません。
- Uniswap はフロントエンドサーバーを構築する必要がなく、ユーザーは IPFS または AR によってフロントエンドページにアクセスできます。
- バックエンドサーバーを構築する必要がありません。バックエンドロジックはスマートコントラクトで実行されます。
- データベースを構築する必要がありません。歴史的データとデータベース操作は The Graph によって実現されます。
専門家が専門的なことを行う。Uniswap は自分のロジックを適切に設計し、他のロジックはモジュール化された Web3 基盤インフラストラクチャによって支えられます。
これにより、Uniswap は完全な分散化を実現するだけでなく、Web3 モジュール化の簡単なアプリケーションケースでもあります。
Web3 の核心は信頼を必要としない価値のインタラクションであり、モジュール化の発展は信頼を必要としないだけでなく、運用の効率を向上させることもできます。モジュール化のトレンドはさまざまな業界に適用されるでしょう。
前述のように、Web3 ネットワークアーキテクチャのモジュール化は Web3 の生成力効率を向上させましたが、Web3 の生産関係の効率をどう向上させるか(Web2 の生産関係は主に企業に基づいていますが、Web3 の生成関係は DAO であり、DAO のモジュール化も未来のトレンドです)。DAO はブロックチェーンに依存しており、ブロックチェーン自体もモジュール化に向かっています。同様に、メタバースやゲームなどもそうです。
モジュール化の時代の到来は、より高い効率とより良いサービスをもたらし、W3Hitchhiker は引き続き暗号のモジュール化の道を追い続けます。