Skip to content

Latest commit

 

History

History
206 lines (204 loc) · 8.87 KB

File metadata and controls

206 lines (204 loc) · 8.87 KB

ブロックチェーンアプリケーション開発の教科書

目次

  1. ブロックチェーンとは
    1. インターネット以来の発明
      • インターネットが変えた社会
      • インターネットが変えた価値観
    2. インターネットとブロックチェーン
      • クライアント・サーバ方式とP2P方式
      • ブロックチェーンが社会に与える衝撃
    3. ブロックチェーン技術の歴史
      • ビットコイン登場以前
      • ビットコインの登場から普及まで
      • ブロックチェーン技術の応用から盛り上がり
  2. ブロックチェーン技術の理解
    1. タイムスタンプサーバ - まったく新しい「時計」の発明
      • 物理的タイムスタンプ
      • コンピュータ上のタイムスタンプ
      • 中央集権的タイムスタンプ
      • 非中央集権的タイムスタンプ
      • ハッシュチェーンタイムスタンプ
      • ハッシュチェーンからブロックチェーン
    2. Proof of Work - 暗号理論による不正の防止 -
      • Proof of Workにおける作業
      • ビットコインにおけるProof of Work
    3. UTXO - 口座を持たないお金の表現 -
      • アカウントベースの残高記録方式
      • コイン識別方法
      • UTXO
    4. 暗号通貨の価値
      • お金の分類
      • 紙幣の価値
      • 暗号通貨の価値の根拠
      • 暗号通貨の意義
      • 新しい経済システム
      • 暗号通貨が与える衝撃
  3. ブロックチェーンアプリケーションの理解
    1. スマートコントラクトとは
      • 広義のスマートコントラクト
      • 教義のスマートコントラクト
      • スマートコントラクトの実例
    2. イーサリアム
      • イーサリアムとは
      • イーサリアムの発祥
      • イーサリアム=ワールドコンピュータ
      • イーサリアムの歴史とロードマップ
    3. ビットコインとイーサリアムの相違
      • イーサリアムの内部通貨
      • トランザクション手数料であるGas
      • アカウント構造
      • 残高参照
      • ブロック生成速度
      • 重いチェーンの採用
      • Proof of Work
      • Etheream Virtual Machine (EVM)
      • トランザクション
  4. ブロックチェーンプロダクトの比較
    1. ビットコインとオルトコイン
      • ビットコインから派生したプロダクト
      • ビットコイン2.0プロダクト
      • オルトコイン
      • オルトチェーン
    2. スマートコントラクトプラットフォーム
      • イーサリアムとスマートコントラクトプラットフォーム
      • ビットコイン上のスマートコントラクトプラットフォーム
      • その他のスマートコントラクトプラットフォーム
      • スマートコントラクト開発支援ツール
    3. エンタープライズプラットフォーム
      • パーミッションドブロックチェーン
      • Hyperledgerプロジェクト
      • Corda
      • Mijin
      • ブロックチェーンのためのクラウドサービス
  5. ビジネスへの応用
    1. ブロックチェーンサービスのアーキテクチャ
      • アーキテクチャ
      • 新たなビジネスモデル
      • オープンソースとブロックチェーン技術
      • クラウドファンディングとICO
    2. ブロックチェーンアプリケーションの利用
      • 暗号通貨の利用
      • 実店舗における決済手段としての利用
      • オンライン決済手段としての利用
      • 暗号通貨プラットフォームへの貢献
      • 暗号通貨以外での活用
    3. ブロックチェーンアプリケーションを利用するサービス
      • 仮想通貨取引所
      • 分散型仮想通貨取引所
      • ウォレット
      • 暗号通貨決済・送金サービス
      • 広告の代替
    4. 新しいブロックチェーンアプリケーションの提供
      • パブリックなブロックチェーン
      • パーミッションドなブロックチェーン基盤
  6. アプリケーション開発の基礎知識
    1. アプリケーション開発の環境構築
      • イーサリアムクライアント
      • ネットワークの種類
      • Go Etheream(Geth)のインストール
      • プライベートネットでの実行
      • Gethコンソールでのコマンド
    2. ブロック構造とトランザクション
      • ブロック構造
      • トランザクションの実行
  7. Solidityによるアプリケーション開発
    1. はじめてのスマートコントラクト開発
      • 開発環境
      • Remixでのスマートコントラクト開発
      • RemixとGethの接続
    2. 型・演算子・型変換
      • 値型
      • 参照型
      • mapping型
      • 左辺を含む演算子(代入演算子)
      • 削除演算子
      • 型の変換
    3. 予約単位、グローバル変数・関数
      • Etherの単位
      • 時刻の単位
      • ブロックおよびトランザクションのプロパティ
      • エラーハンドリング
      • 数学関数と暗号関数
      • アドレスの関数
      • コントラクトの関数
    4. 式・構文・制御構造
      • 入力パラメータと出力パラメータ
      • 制御構造
    5. コントラクト
      • 状態変数及び関数の可視性
      • 関数の修飾子
      • 定数
      • view修飾子
      • pure修飾子
      • fallback関数
      • event修飾子
      • 継承
  8. アプリケーション開発のフレームワーク
    1. Truffleフレームワークの活用
      • 環境構築
      • プロジェクトの作成
      • イーサリアムクライアントの選択
      • コントラクトのコンパイル
      • マイグレーション
      • 公式サンプルMetaCoin
      • テストコード
    2. ERC20準拠のトークン作成
      • Truffleプロジェクトの作成
      • OpenZeppelinのインストール
      • トークンコントラクトの作成
      • テストコードの作成
    3. ネットワークへのデプロイ
      • プライベートネットへのデプロイ
      • テストネットへのデプロイ
  9. アプリケーション設計の注意点
    1. スマートコントラクトへの攻撃手法と対策
      • リエントラント(再入可能)
      • トランザクションオーダー依存(TOD)
      • タイムスタンプ依存
      • 整数オーバーフロー
      • 予期しないrevert
      • ブロックのGas Limit
      • 強制的な送金
    2. セキュリティを高めるための手法
      • OpenZeppelin
      • Mythril
    3. ストレージの課題
      • データ依存の注意点
      • ユーザーのローカルストレージ
      • サービス提供者のデータベース
      • 分散ファイルストレージ
    4. オラクルの利用
      • BlockOne IQ
      • Chain Link
      • Oraclize
  10. 技術的課題と解決案
    1. ファイナリティ
      • 暗号通貨決済の不可逆性
      • 分散システムにおける合意形成
      • ブロックチェーンにおける合意
      • ビザンチン将軍問題
      • ビザンチン将軍問題の解
      • オープンなブロックチェーン基盤の制約条件
      • Proof of Workとナカモトコンセンサスによる現実解
      • ファイナリティの追求
    2. Proof of Workプロトコルの拡張
      • Proof of Workの課題
      • Proof of Workアルゴリズムの拡張
      • Proof of Stake
      • Proof of Stakeのコイン流動性
      • Nothing at Stake問題
      • Proof of Stakeの改竄リスク
    3. ブロックチェーンのパフォーマンス課題
      • 求められるパフォーマンス
      • データ構造の最適化によるパフォーマンス向上
      • オフチェーン技術によるパフォーマンス向上
      • スケーラビリティソリューション
  11. ブロックチェーン技術の未来
    1. 歴史から考える未来
      • 電子マネーと暗号通貨の歴史的相違
      • キーテクノロジー登場による変革
    2. ブロックチェーンで実現される未来
      • ブロックチェーンで登場した概念
      • ブロックチェーン技術で増幅される変革
      • ブロックチェーン技術に対する批判
      • エンジニアとしての責務