インプレス[コンピュータ・IT]ムック エンジニアのためのWeb3開発入門
インプレス / 2024年03月01日 / 全335ページ
イーサリアム・NFT(非代替性トークン)・DAO(自律分散型組織)によるブロックチェーンWebアプリ開発の入門書です。本書では、知識ゼロからNFTやDAOを活用したWeb3アプリを構築できるよう、開発者目線で必要な知識を選り抜いて解説しています。Web3の概要、要素技術の解説から、イーサリアムを利用したサンプルアプリやNFTマーケットプレイス、DAOの開発・実装方法、ブロックチェーンネットワークの作り方やノードプロバイダーとの接続方法まで、これ1冊でWeb3アプリ開発に必要な知識を包括的に学べるようになっています。
目次
- 本書情報および正誤表のWebページ|本書における注意点
- はじめに
- 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 NFTDAOの動向
- 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アーキテクチャの処理の流れ
- 本書情報および正誤表のWebページ|本書における注意点
- はじめに
- 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 NFTDAOの動向
- 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 ノードプロバイダーを経由してテストネット(またはメインネット)に接続する
- INDEX
- 著者プロフィール主要参考文献
- 奥付
※このデジタル雑誌には目次に記載されているコンテンツが含まれています。それ以外のコンテンツは、本誌のコンテンツであっても含まれていません のでご注意ください。
※電子版では、紙の雑誌と内容が一部異なる場合や、掲載されないページがある場合があります。