Web3.0検証(2)-分散型アプリのアーキテクチャ


[前回] Web3.0検証(1)-Web3.0対応ブラウザに触れてみる

はじめに

前回はWeb3.0の入り口として、Web3.0対応ブラウザBraveを触ってみました。
今回は、Web3.0アプリケーションの内部構造がどうなっているか、理解しておきます。

Web3.0分散型アプリ(DApps)とは

ethereum.orgの定義がわかりやすかったです。以下、抜粋です。

A decentralized application (dapp) is an application built on a decentralized network 
that combines a smart contract and a frontend user interface.
A dapp has its backend code running on a decentralized peer-to-peer network. 
A dapp can have frontend code and user interfaces written in any language
 to make calls to its backend.
Furthermore, its frontend can get hosted on decentralized storage such as IPFS.

登場人物が四つあるようです。

  • バックエンド
    • 分散型Peer to Peer(P2P)ネットワークで実行される
    • 対して、Web2ではバックエンドコードが集中型サーバーで実行されていた
  • フロントエンド(ユーザーインターフェイス)
    • 任意の言語で記述でき、バックエンドを呼び出す
  • 分散ストレージ(IPFSなど)
    • フロントエンドを分散ストレージにホストできる
  • スマート・コントラクト
    • ブロックチェーン上のトランザクション実行に使用される

関連用語を確認しておきます。

  • Peer to Peer(P2P)
    • Wikipediaから引用:「複数のコンピューター間で通信を行う際のアーキテクチャのひとつで、対等の者(Peer、ピア)同士が通信をすることを特徴とする通信方式、通信モデル、あるいは通信技術の一分野を指す。」
  • IPFS
    • Wikipediaから引用:「InterPlanetary File System (IPFS)とは分散型ファイルシステムにデータを保存・共有するためのP2Pハイパーメディア分散プロトコルである。IPFSネットワークにあるノードは分散ファイルシステムを形成する。」
  • スマート・コントラクト
    • Wikipediaから引用:「契約のスムーズな検証、執行、実行、交渉を意図したコンピュータプロトコルである。スマートコントラクトには第三者を介さずに信用が担保されたトランザクションを処理できるという特徴がある。」

スマート・コントラクトがよくわかりませんでしたが、ブロックチェーンと関係するようですので一旦は気にせず。

Web3.0分散型アプリのアーキテクチャはどうよ

以下の説明がとても参考になりました。
https://www.preethikasireddy.com/post/the-architecture-of-a-web-3-0-application

アーキテクチャ図はこんな感じ:

従来のWeb2アプリと比べ、新しく登場したものをリストアップします。

  • Signer
    • ユーザの秘密鍵を使ってメッセージやトランザクションに署名する署名者のことで、ユーザがEthereumネットワーク上で操作できるように許可してくれるようです
  • Provider
    • Ethereumネットワークへの接続には、プロバイダーが必要のようです
  • Contract
    • 上述のスマート・コントラクトのことです(今後検証予定)

おわりに

今回は手を動かせず理論武装だけでしたので、いくつかモヤモヤが残ってしまいました。
次回から、Web3.0アーキテクチャの各要素を検証しながら、理解を深めようと思います。
なんか、わくわくしてきました。

[次回] Web3.0検証(3)-分散型アプリを作ってみる