Web3について詳しく知りたい方へ。
本特集では、ブロックチェーンとスマートコントラクトによって実現される、新しいインターネット世界である「Web3」について、あらゆる情報を整理しています。
情報量が膨大なため、ブックマーク等して、随時必要な箇所をご参照ください。
本特集の内容
- Web3について
従来のインターネットの違い、Web3の構成要素など - Web3アプリケーション(DApps)について
Web3アプリケーションの基礎知識、事例、ビジネスモデル、運用(分散型ガバナンス)など - Web3アプリケーション(DApps)の開発方法
DApps開発の流れ、プログラミング言語Solidityの詳しい解説など
written by @raq_reezy
記事の目次
Web3とは
Web3とは、ブロックチェーンとスマートコントラクトによって再構築されたP2Pのインターネットを指します。
具体的には、ブロックチェーン上にすべてのデータが保存されており、ユーザーはブロックチェーン上に存在するスマートコントラクトと呼ばれるプログラムを実行することで、サービスを利用します。
Web3と従来のインターネットの違い
従来のインターネットにおいては、各サービスごとに各種データを保存していました。例えば、銀行のサーバーには貯金残高というデータが保存されており、証券会社のサーバーには保有株式のデータが保存されています。Gmailのサーバーには過去に送受信したメールのデータが保存されており、ツイッターのサーバーには過去のツイートやフォローしているアカウントの情報が保存されています。
Web3においては、こうしたデータはすべてブロックチェーン上に保存されています。また、こうしたデータの閲覧、残高の送金やメッセージの送信といった行為は、すべてブロックチェーン上に存在するスマートコントラクトと呼ばれるプログラムをユーザーが実行することで行います。
また、ユーザーのIDについても、従来のインターネットでは、Facebookアカウント、Googleアカウント、Twitterアカウントなど、サービスごとにアカウントが分かれて存在していました。
Web3においては、ユーザーのIDはウォレットに集約されており、そのウォレットで各種スマートコントラクトとやりとりします。
Web3と従来のインターネットの比較表
Web3 | 従来のインターネット | |
イメージ | 画像 | 画像 |
データの所在 | ブロックチェーン | サービス提供者のサーバー |
プログラムの実行 | ブロックチェーン | サービス提供者のサーバー |
ユーザーのID | ユーザーのウォレット | 各サービス毎のアカウント |
Web3の構成要素
スマートコントラクト
スマートコントラクトとは、ブロックチェーン上で動作するプログラムを指します。プログラムは、ブロックチェーンに参加しているコンピューターの容量を用いて実行されます。
Web3向けブロックチェーンの種類
ここでは、特にメジャーなWeb3向けブロックチェーンを4種類紹介します。
さらに詳しく、いろんなブロックチェーンを知りたい方は「Web3の構成要素:ブロックチェーンとは」をお読みください。
Ethereum(イーサリアム)
Ethereum(イーサリアム)は、スマートコントラクトを動かせるパブリックチェーンの中で最大のブロックチェーンです。
- Ethereum(イーサリアム)とは
BNB Chain(BNBチェーン)
BNB Chain(BNBチェーン)は、世界最大の取引所であるBinanceが運用しているブロックチェーンです。
- BNB Chain(BNBチェーン)とは
Solana(ソラナ)
Solana(ソラナ)は、決済ブランドのVISA並みのスピードで取引を高速に実行できることを売りにしているブロックチェーンです。
- Solana(ソラナ)とは
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)のビジネスモデル
(1)DAppsの利用手数料
DAppsの利用時に、ユーザーが手数料を支払うようにスマートコントラクトに記述しているDAppsも存在します。ただし、以下の2点の理由から、DAppsの利用手数料には値下げプレッシャーが強く働きます。
- 利用手数料の正当性
DAppsは、ブロックチェーンを支えているノードのコンピューターリソースによって実行される。そのノードへの手数料は、アプリケーションを利用するユーザーが直接ガス代として支払う。そのため、アプリケーション開発者はサーバー等を維持する必要もなく、利用手数料を科すことの正当性を得にくい。 - オープンソース
DAppsの多くはオープンソースで開発される。そのため、高額な利用手数料を科した場合には、すぐに手数料を下げたコピーサービスが誕生する余地がある。
(2)トークンの販売
上述のように、DAppsは継続的な収益が不要なことも多いため、開発にあたって必要な資金および創業者・開発者のインセンティブのみを、ユーティリティトークンやガバナンストークンの販売を通じて調達するのも一般的です。
- ユーティリティトークンとは
ユーティリティトークンとは、ゲーム内通貨のように、そのアプリケーションを利用するにあたって必要となるトークンを指します。例えば、Axie InfinityというブロックチェーンゲームにはSLP(スムーズ・ラブ・ポーション)というユーティリティトークンが存在します。 - ガバナンストークンとは
ガバナンストークンとは、そのアプリケーションに関する重要な決定に際して投票に参加できる権利を持つトークンを指します。例えば、MakerDAOというレンディングプロトコルにおいては、ガバナンストークンの保有者が投票によって、ユーザーが資金を借りる際の担保率を定めることができます。
(3)NFTの販売・二次流通からの収益
GameFiなどのゲームアプリケーションであれば、ユーザーの残高管理などはブロックチェーン上で行いつつ、実際のゲーム部分はブロックチェーン外のサーバーで動かすのが一般的です。
こうしたDAppsは継続的な収益を必要としており、ゲーム内のアイテムやキャラクター等をNFTとして発行・販売することを通じて得る収益に加えて、それらがユーザー間で売買された際にも取引金額の一定割合が手数料収益として発生するようにしておくのが一般的です。
Web3アプリケーション(DApps)の分散型ガバナンス
ビジネスモデルの項目でも触れたように、多くのDAppsはシステム自体はブロックチェーン上で動き続けます。
一方で、そのアプリケーションに関する重要項目(例えば利用手数料や機能追加)の決定などの運用・ガバナンスにおいては、DAO(Decentralized Autonomous Organization)という形式が取られることが多いです。これは、重要な項目については、ガバナンストークンの保有者による投票によって決定するという方式です。
また、DAppsの中で外部情報を用いる場合(例えば、競馬DAppsにおける賞金分配のために、スマートコントラクトが実際の競争結果を必要とする場合)などは、複数の参加者がウォッチ・参加するという形で牽制を効かせることで、外部から正確な情報を取り込むことになります。こうした機能や仕組みをオラクルと呼びます。
DAO
DAOとは、分散型のガバナンスによって物事を決定する組織やコミュニティを指します。
- DAOとは
オラクル
オラクルとは、分散型のガバナンスで、情報をブロックチェーンに取り込む仕組みです。
- オラクルとは
Web3アプリケーション(DApps)の開発
DApps開発の流れ
DAppsは、以下のような流れで開発します。
- 開発環境構築
まずは、開発環境を構築します。単体テスト用にPC内にローカルなブロックチェーンを立ち上げます。開発環境の構築が難しい場合は、Remix IDEのようにブラウザ上で動く統合開発環境を利用することもできます。 - スマートコントラクトの実装
スマートコントラクトは、Solidityというプログラム言語で記述することができます。Solidityで、DAppsで保有するデータや関数を定義していきます。 - テストネットにデプロイ
イーサリアムの場合であれば、RinkebyやRopstenなどのテストネットが存在します。テストネットは、ステージング環境のようなものです。テストネットにデプロイして、スマートコントラクトが問題なく動くか、統合テストをします。 - メインネットにデプロイ
テストネットで問題なく動いた場合は、メインネットにデプロイします。メインネットにデプロイします。 - フロントエンドの実装
web3.jsというライブラリやWeb3プロバイダ等を用いて、ユーザーがスマートコントラクトとやりとりするためのウェブサイトやアプリを実装します。
DAppsの開発言語:Solidity
DAppsは、Solidityというプログラミング言語で開発することができます。
DAppsの開発ツール
開発環境
Web3プロバイダ
ミドルウェア
Web3関連銘柄(トークン)への投資
- 準備中
Web3関連用語集
- ブロックチェーン
- スマートコントラクト
- イーサリアム
- ソラナ
- ポリゴン
- BNBスマートチェーン
- Solidity
- DApps
- DID
コメントを残す