Web3の教科書:わかりやすく解説

Web3の教科書:わかりやすく解説

sponcered by







Web3について詳しく知りたい方へ。

本特集では、ブロックチェーンとスマートコントラクトによって実現される、新しいインターネット世界である「Web3」について、あらゆる情報を整理しています。

情報量が膨大なため、ブックマーク等して、随時必要な箇所をご参照ください。

本特集の内容

  • Web3について
    従来のインターネットの違い、Web3の構成要素など
  • Web3アプリケーション(DApps)について
    Web3アプリケーションの基礎知識、事例、ビジネスモデル、運用(分散型ガバナンス)など
  • Web3アプリケーション(DApps)の開発方法
    DApps開発の流れ、プログラミング言語Solidityの詳しい解説など

written by @raq_reezy

Web3とは

Web3とは

Web3とはブロックチェーンとスマートコントラクトによって再構築されたインターネット

Web3とは、ブロックチェーンとスマートコントラクトによって再構築されたP2Pのインターネットを指します。

具体的には、ブロックチェーン上にすべてのデータが保存されており、ユーザーはブロックチェーン上に存在するスマートコントラクトと呼ばれるプログラムを実行することで、サービスを利用します。

Web3と従来のインターネットの違い

従来のインターネットにおいては、各サービスごとに各種データを保存していました。例えば、銀行のサーバーには貯金残高というデータが保存されており、証券会社のサーバーには保有株式のデータが保存されています。Gmailのサーバーには過去に送受信したメールのデータが保存されており、ツイッターのサーバーには過去のツイートやフォローしているアカウントの情報が保存されています。

Web3においては、こうしたデータはすべてブロックチェーン上に保存されています。また、こうしたデータの閲覧、残高の送金やメッセージの送信といった行為は、すべてブロックチェーン上に存在するスマートコントラクトと呼ばれるプログラムをユーザーが実行することで行います。

また、ユーザーのIDについても、従来のインターネットでは、Facebookアカウント、Googleアカウント、Twitterアカウントなど、サービスごとにアカウントが分かれて存在していました。

Web3においては、ユーザーのIDはウォレットに集約されており、そのウォレットで各種スマートコントラクトとやりとりします。

Web3と従来のインターネットの比較表

Web3 従来のインターネット
イメージ 画像 画像
データの所在 ブロックチェーン サービス提供者のサーバー
プログラムの実行 ブロックチェーン サービス提供者のサーバー
ユーザーのID ユーザーのウォレット 各サービス毎のアカウント

Web3の構成要素

ブロックチェーン

ブロックチェーンとは、複数のコンピューターを横断してデータを分散的に管理する仕組みを指します。

スマートコントラクト

スマートコントラクトとは、ブロックチェーン上で動作するプログラムを指します。プログラムは、ブロックチェーンに参加しているコンピューターの容量を用いて実行されます。

Web3ウォレット

Web3ウォレットとは、ユーザーがDAppsを利用できる機能を持ったウォレットを指します。

  • Web3ウォレットとは

トークン

トークンとは、ブロックチェーン上に残高のデータが記録された資産を指します。

  • トークンとは

Web3向けブロックチェーンの種類

ここでは、特にメジャーなWeb3向けブロックチェーンを4種類紹介します。

さらに詳しく、いろんなブロックチェーンを知りたい方は「Web3の構成要素:ブロックチェーンとは」をお読みください。

Ethereum(イーサリアム)

Ethereum(イーサリアム):Web3向けブロックチェーン

Ethereum

Ethereum(イーサリアム)は、スマートコントラクトを動かせるパブリックチェーンの中で最大のブロックチェーンです。

  • Ethereum(イーサリアム)とは

BNB Chain(BNBチェーン)

BNB Chain(BNBチェーン):Web3向けブロックチェーン

BNB Chain

BNB Chain(BNBチェーン)は、世界最大の取引所であるBinanceが運用しているブロックチェーンです。

  • BNB Chain(BNBチェーン)とは

Solana(ソラナ)

Solana(ソラナ):Web3向けブロックチェーン

Solana

Solana(ソラナ)は、決済ブランドのVISA並みのスピードで取引を高速に実行できることを売りにしているブロックチェーンです。

  • Solana(ソラナ)とは

Polygon(ポリゴン)

Polygon(ポリゴン):Web3向けブロックチェーン

Polygon

Polygon(ポリゴン)は、イーサリアムのスケーラビリティ問題を解消するために登場したサイドチェーンです。

  • Polygon(ポリゴン)とは

Web3アプリケーション(DApps)の事例

DAppsとは

DApps(Decentralized Application)とは、分散型アプリケーションという意味で、ブロックチェーン上のスマートコントラクトによって動くアプリケーションを指します。

DeFi(分散型金融)

DEX(取引所)

  • DEX(分散型取引所)とは
  • 事例:Uniswap
  • 事例:CurveFinance
  • 事例:PancakeSwap

融資・レンディング

  • レンディング・プロトコルとは
  • 事例:MakerDAO
  • 事例:AAVE
  • 事例:Compound

アグリゲーター

  • アグリゲーターとは
  • 事例:1inch
  • 事例:BeefyFinance

クロスチェーン

  • クロスチェーンとは
  • 事例:Stargate
  • 事例:Multichain

ステーキング

  • ステーキングサービスとは
  • 事例:Lido
  • 事例:Rocket Pool

その他

  • 準備中

ゲーム・NFT

GameFi(Play2Earn)

  • GameFiとは
  • 事例:Axie Infinity

NFTマーケットプレイス

  • NFTマーケットプレイスとは
  • 事例:Opensea

Web3アプリケーション(DApps)の企画・設計

Web3アプリケーション(DApps)のビジネスモデル

Web3アプリケーション(DApps)のビジネスモデルは主に3種類

Web3アプリケーション(DApps)のビジネスモデルは主に3種類

(1)DAppsの利用手数料

DAppsの利用時に、ユーザーが手数料を支払うようにスマートコントラクトに記述しているDAppsも存在します。ただし、以下の2点の理由から、DAppsの利用手数料には値下げプレッシャーが強く働きます

  1. 利用手数料の正当性
    DAppsは、ブロックチェーンを支えているノードのコンピューターリソースによって実行される。そのノードへの手数料は、アプリケーションを利用するユーザーが直接ガス代として支払う。そのため、アプリケーション開発者はサーバー等を維持する必要もなく、利用手数料を科すことの正当性を得にくい。
  2. オープンソース
    DAppsの多くはオープンソースで開発される。そのため、高額な利用手数料を科した場合には、すぐに手数料を下げたコピーサービスが誕生する余地がある。

(2)トークンの販売

上述のように、DAppsは継続的な収益が不要なことも多いため、開発にあたって必要な資金および創業者・開発者のインセンティブのみを、ユーティリティトークンやガバナンストークンの販売を通じて調達するのも一般的です。

  • ユーティリティトークンとは
    ユーティリティトークンとは、ゲーム内通貨のように、そのアプリケーションを利用するにあたって必要となるトークンを指します。例えば、Axie InfinityというブロックチェーンゲームにはSLP(スムーズ・ラブ・ポーション)というユーティリティトークンが存在します。
  • ガバナンストークンとは
    ガバナンストークンとは、そのアプリケーションに関する重要な決定に際して投票に参加できる権利を持つトークンを指します。例えば、MakerDAOというレンディングプロトコルにおいては、ガバナンストークンの保有者が投票によって、ユーザーが資金を借りる際の担保率を定めることができます。

(3)NFTの販売・二次流通からの収益

GameFiなどのゲームアプリケーションであれば、ユーザーの残高管理などはブロックチェーン上で行いつつ、実際のゲーム部分はブロックチェーン外のサーバーで動かすのが一般的です。

こうしたDAppsは継続的な収益を必要としており、ゲーム内のアイテムやキャラクター等をNFTとして発行・販売することを通じて得る収益に加えて、それらがユーザー間で売買された際にも取引金額の一定割合が手数料収益として発生するようにしておくのが一般的です。

Web3アプリケーション(DApps)の分散型ガバナンス

Web3のガバナンス(DAOとオラクル)

Web3アプリケーション(DApps)の分散型ガバナンス(DAOとオラクル)

ビジネスモデルの項目でも触れたように、多くのDAppsはシステム自体はブロックチェーン上で動き続けます。

一方で、そのアプリケーションに関する重要項目(例えば利用手数料や機能追加)の決定などの運用・ガバナンスにおいては、DAO(Decentralized Autonomous Organization)という形式が取られることが多いです。これは、重要な項目については、ガバナンストークンの保有者による投票によって決定するという方式です。

また、DAppsの中で外部情報を用いる場合(例えば、競馬DAppsにおける賞金分配のために、スマートコントラクトが実際の競争結果を必要とする場合)などは、複数の参加者がウォッチ・参加するという形で牽制を効かせることで、外部から正確な情報を取り込むことになります。こうした機能や仕組みをオラクルと呼びます。

DAO

DAOとは、分散型のガバナンスによって物事を決定する組織やコミュニティを指します。

  • DAOとは

オラクル

オラクルとは、分散型のガバナンスで、情報をブロックチェーンに取り込む仕組みです。

  • オラクルとは

Web3アプリケーション(DApps)の開発

Web3アプリケーション(DApps)の開発

Web3アプリケーション(DApps)の開発

DApps開発の流れ

DAppsは、以下のような流れで開発します。

  1. 開発環境構築
    まずは、開発環境を構築します。単体テスト用にPC内にローカルなブロックチェーンを立ち上げます。開発環境の構築が難しい場合は、Remix IDEのようにブラウザ上で動く統合開発環境を利用することもできます。
  2. スマートコントラクトの実装
    スマートコントラクトは、Solidityというプログラム言語で記述することができます。Solidityで、DAppsで保有するデータや関数を定義していきます。
  3. テストネットにデプロイ
    イーサリアムの場合であれば、RinkebyやRopstenなどのテストネットが存在します。テストネットは、ステージング環境のようなものです。テストネットにデプロイして、スマートコントラクトが問題なく動くか、統合テストをします。
  4. メインネットにデプロイ
    テストネットで問題なく動いた場合は、メインネットにデプロイします。メインネットにデプロイします。
  5. フロントエンドの実装
    web3.jsというライブラリやWeb3プロバイダ等を用いて、ユーザーがスマートコントラクトとやりとりするためのウェブサイトやアプリを実装します。

DAppsの開発言語:Solidity

DAppsは、Solidityというプログラミング言語で開発することができます。

DApps開発入門:Solidityの初心者向け完全ガイド

DApps開発入門:Solidityの初心者向けガイド

2022年4月30日

DAppsの開発ツール

開発環境

Web3プロバイダ

ミドルウェア

Web3関連用語集

  • ブロックチェーン
  • スマートコントラクト
  • イーサリアム
  • ソラナ
  • ポリゴン
  • BNBスマートチェーン
  • Solidity
  • DApps
  • DID

sponcered by







コメントを残す

メールアドレスが公開されることはありません。