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