関連サイト
本書の関連ページが用意されています。
内容紹介
●これ1冊でWeb3アプリ開発に必要な知識が学べる!
本書は、イーサリアム・NFT(非代替性トークン)・DAO(自律分散型組織)によるブロックチェーンWebアプリ開発の入門書です。
Web3の理解が難しいとされる一因は、必要な技術領域が多岐にわたることです。たとえば、ブロックチェーンの理解だけではWeb3アプリを作成できません。従来のWebシステム全般の知識、ブロックチェーンとの接続方法、ウォレットの扱い方、Web3ビジネスの知識など、周辺の知識とスキルが必要となります。
そこで本書では、知識ゼロからNFTやDAOを活用したWeb3アプリを構築できるよう、開発者目線で必要な知識を選り抜いて解説しています。Web3の概要、要素技術の解説から、イーサリアムを利用したサンプルアプリやNFTマーケットプレイス、DAOの開発・実装方法、ブロックチェーンネットワークの作り方やノードプロバイダーとの接続方法まで、これ1冊でWeb3アプリ開発に必要な知識を包括的に学べるようにしています。
Web3の要素技術を学びたい方、Web3を活用したサービス・アプリケーション開発に興味がある方にお勧めの1冊です。
書誌情報
- 著者: 愛敬 真生, 小泉 信也, 染谷 直希
- 発行日: 2024-03-01 (紙書籍版発行日: 2024-03-01)
- 最終更新日: 2024-03-01
- バージョン: 1.0.0
- ページ数: 336ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB
- 出版社: インプレス
対象読者
Web3に興味のあるエンジニア(新人~中堅)・ブロックチェーンに興味があるが忙しくて手が出せていないSE・○情報系の学生(大学・高専・専門学校)
著者について
愛敬 真生
デロイト トーマツ コンサルティング合同会社/デロイト トーマツ ノード合同会社 シニア・スペシャリスト・リード
建築系・金融系のシステム開発を経て2015年からブロックチェーン開発に従事。ブロックチェーンを活用した貿易業務システムのPoC・開発やNFTマーケットプレイスの開発などを担当。著作に『ブロックチェーン仕組みと理論』(リックテレコム刊)、『個人投資家のためのFinTechプログラミング』(日経BP刊)(いずれも共著)がある。本書の第1 ~ 3章、Appendixの執筆を担当。
小泉 信也
デロイト トーマツ コンサルティング合同会社/デロイト トーマツ ノード合同会社 スタジオ・シニア・リード
ネットワーク基盤、クラウド基盤開発業務を経て、Webアプリケーション開発、生成AIアプリケーション開発、ブロックチェーン開発に従事。ブロックチェーンアプリケーションのプロトタイプ開発や、NFTマーケットプレイスの開発、新人向けブロックチェーン講座講師など担当。本書の第6 ~ 7章の執筆を担当。
染谷 直希
デロイト トーマツ コンサルティング合同会社/デロイト トーマツ ノード合同会社スタジオ・シニア・リード
データベースやDBaaSなどの開発を経て、Blockchain as a Serviceの開発に従事。保険業務におけるブロックチェーン適用のPoCなどを実施。現在はNFTマーケットプレイスの開発などを担当。本書の第4 ~ 5章の執筆を担当。
目次
はじめに
Contents
第1章 Web3による社会変革
- 1.1 Web3とはなにか?
- 1.1.1 Webの歴史
- 1.1.2 Web3の変化
- 1.2 Web3のサービス
- 1.2.1 DeFi
- 1.2.2 NFT(非代替性トークン:Non-Fungible Token)
- 1.2.3 DAO
- 1.2.4 DID/SSI
- 1.3 Web3が実現する社会
- 1.3.1 Web3のエコシステム
- 1.4 NFT/DAOの動向
- 1.4.1 NFT/DAOの市場サービス・事例
第2章 Web3のアーキテクチャと構成要素
- 2.1 Web3アプリケーションのアーキテクチャ
- 2.1.1 Web2.0とWeb3のアーキテクチャの違い
- 2.2 Web3アーキテクチャの構成要素
- 2.3 ブロックチェーンとWebアプリケーションの接続
- 2.4 Web3アーキテクチャの処理の流れ
- 2.5 ブロックチェーン
- 2.5.1 ブロックチェーンとビットコイン
- 2.5.2 ブロックチェーンの革新性
- 2.5.3 ブロックチェーンが実現する信頼の仕組み
- 2.5.4 ビットコインの課題
- 2.6 暗号資産・トークン
- 2.7 スマートコントラクト
- 2.7.1 スマートコントラクトの動き
- 2.7.2 スマートコントラクトの概念
- 2.8 ウォレット
- 2.8.1 ウォレットとは
- 2.8.2 ウォレットの種類
- 2.9 パブリックとプライベートについて
- 2.10 オンチェーンとオフチェーン・
- 2.10.1 分散ストレージの利用(IPFSとSwarm)
- 2.10.2 プライバシー
- 2.10.3 パフォーマンス
- 2.11 Web3アプリケーションを開発するうえでのベストプラクティス
- 2.11.1 ユーザーエクスペリエンス
- 2.11.2 セキュリティ
第3章 イーサリアム開発入門
- 3.1 イーサリアム概要
- 3.1.1 ビットコインから生まれた分散型アプリケーション・プラットフォーム
- 3.2 イーサリアムの仕組み
- 3.2.1 アカウント
- 3.2.2 スマートコントラクトとEVM
- 3.2.3 オラクル
- 3.2.4 ガス ~送金やスマートコントラクト実行の燃料~
- 3.3 コンセンサスアルゴリズム
- 3.3.1 PoS
- 3.3.2 シャーディング
- 3.4 今後の開発ロードマップ
- 3.5 EVM互換のブロックチェーン
- 3.6 イーサリアムの標準規格(EIP/ERC)
- 3.6.1 EIP(Ethereum Improvement Proposals)
- 3.6.2 ERC(Ethereum Request for Comments)
- 3.7 事前準備(ツールの整備やEtherの入手)
- 3.7.1 Webアプリケーション開発の必要条件
- 3.7.2 スマートコントラクト開発の必要条件
- 3.8 Visual Studio Codeのインストール
- 3.8.1 Japanese Language Packのインストール
- 3.8.2 Solidityのインストール
- 3.8.3 ESLintのインストール
- 3.9 インデントの設定
- 3.10 Gitのインストール
- 3.11 Node.jsのインストール
- 3.11.1 NVMのインストール
- 3.12 SolidityとOpenZeppelinによるスマートコントラクト開発
- 3.12.1 Solidity概要
- 3.12.2 OpenZeppelin概要
- 3.12.3 スマートコントラクト開発の手順
- 3.12.4 Hardhatを用いた開発・テスト ~Hardhat概要~
- 3.13 Hardhatによるスマートコントラクト開発
- 3.13.1 プロジェクトの作成
- 3.13.2 スマートコントラクトの作成
- 3.13.3 スマートコントラクトのテスト
- 3.13.4 ブロックチェーンネットワークへのデプロイ
- 3.13.5 スマートコントラクトのデプロイ
- 3.14 フロントエンドの作成
- 3.14.1 フロントエンドプロジェクトの作成
- 3.15 MetaMaskのインストールと設定
- 3.16 アカウントのインポート
- 3.17 アプリケーションの実行
- 3.18 OpenZeppelinによる開発
- COLUMN Hardhatのトラブルシューティング
第4章 NFT開発入門
- 4.1 NFTとは
- 4.2 NFTの配布パターンについて
- 4.3 NFTの標準規格
- 4.4 NFTマーケットプレイスの業界標準
- 4.4.1 マーケットプレイスコントラクトの概観
- 4.4.2 Wyvern Protocol
- COLUMN NFTマーケットプレイスにおける「分散」について
- 4.4.3 Seaport Protocol
第5章 NFTマーケットプレイス開発
- 5.1 NFTマーケットプレイスの全体設計
- 5.2 NFTマーケットプレイス開発の流れ
- 5.3 NFTコントラクトの作成
- 5.4 アプリケーションへのNFT関連機能の追加
- 5.4.1 アプリケーションメニューの作成
- 5.4.2 NFT作成機能の追加
- COLUMN TypeChainとTypeScript
- 5.4.3 所有NFT一覧の追加
- 5.5 マーケットプレイスコントラクトの作成
- 5.6 NFT出品、購入機能の作成
- 5.6.1 NFT売り注文生成機能の追加
- 5.6.2 マーケットプレイス出品機能の追加
- 5.6.3 マーケットプレイス購入機能の追加
- 5.7 NFTとクリエイターのロイヤリティ
- 5.8 NFTとNFTマーケットプレイスにおける注意点
第6章 DAO開発入門
- 6.1 DAOの全体像
- 6.1.1 DAOの概要
- 6.1.2 DAOの設計原則
- 6.1.3 DAOの主要な技術要素
- 6.2 DAOに関する規格、動向
- 6.2.1 DAOに関する規格、標準実装
- 6.2.2 OpenZeppelinによる投票機能の標準実装
- 6.2.3 その他のDAOに関係する規格
- 6.3 ガバナンストークンと投票機能
- 6.3.1 OpenZeppelinによる投票システム
- 6.3.2 投票システムを設計および実装する際の重要な要素
- 6.3.3 ガバナンストークン
- 6.3.4 投票ポリシー
- 6.3.5 セキュリティ
第7章 DAOシステム開発
- 7.1 DAOの全体設計
- 7.1.1 DAO開発プロセスの概要
- 7.1.2 DAOの全体システム構成 ~アーキテクチャの構成~
- 7.2 DAO開発に向けた設計
- 7.2.1 背景や目的
- 7.2.2 インセンティブ設計
- 7.2.3 必要な機能の整理
- 7.2.4 ガバナンスモデル設計
- 7.2.5 ガバナンスモデル拡張設計
- 7.2.6 投票シーケンス
- 7.2.7 アプリケーションレイヤ設計
- 7.3 DAO開発
- 7.3.1 DAOの開発の流れ
- 7.3.2 スマートコントラクトの実装
- 7.3.3 作成したコアガバナンス機能のテストとデプロイ
- 7.3.4 Webアプリケーションの実装
- 7.4 DAO Operation Toolの紹介
- 7.4.1 DAOの種類
- 7.4.2 Aragon概要
- 7.5 DAOシステム開発のポイントと注意事項
- 7.5.1 DAOの法律上での不確かさ
おわりに
Appendix
- A1 ブロックチェーンネットワークの構築・テスト
- A1.1 ローカル環境にイーサリアムネットワークを構築する
- A1.2 ノードプロバイダーを経由してテストネット(またはメインネット)に接続する