堅牢なスマートコントラクト開発のためのブロックチェーン[技術]入門
- 田篭照博 著
- 定価
- 3,278円(本体2,980円+税10%)
- 発売日
- 2017.10.27
- 判型
- B5変形
- 頁数
- 240ページ
- ISBN
- 978-4-7741-9353-3 978-4-7741-9395-3
概要
ブロックチェーンの技術は,ビットコインに代表される仮想通貨に使用されるだけではありません。従来のように中央集中管理型のシステムに比べて,改ざんが難しく,かつ低予算で構築できることから,幅広い分野への応用が期待されています。例えば,地域通貨や電子クーポン,有価証券,投票,電子チケットの偽造・転売防止などです。
本書では,ブロックチェーンの暗号化技術のほか,スマートコントラクト開発で注目されるEthereum(イーサリアム)のセキュリティ対策まで言及しています。
こんな方にオススメ
- ブロックチェーンの技術や具体的な開発方法,セキュリティ問題/対策に興味のある方
- スマートコントラクトでシステム開発を企画している方
目次
Part1 ブロックチェーンと関連技術
Chapter 1 ブロックチェーンの全体像
- 1.1 ブロックチェーン
- 1.2 ビットコインネットワーク
- 1.3 Ethereum
- 1.4 ブロックチェーンネットワークの構成要素
Chapter 2 ブロックチェーンを理解するための暗号技術
- 2.1 ハッシュ関数
- 2.2 公開鍵暗号
- 2.3 楕円曲線暗号
- 2.4 デジタル署名
Part2 ビットコインネットワーク
Chapter 3 お金のように扱える仕組み
- 3.1 所有者を特定する「鍵」と「錠」
- 3.2 送金先となる「アドレス」
- 3.3 鍵を管理する「ウォレット」
- 3.4 ウォレットの種類
Chapter 4 トランザクション
- 4.1 トランザクションのライフサイクル
- 4.2 トランザクションの概要
- 4.3 トランザクションの構造
- 4.4 UTXOと残高
- 4.5 Locking ScriptとUnlocking Script
Chapter 5 ブロックとブロックチェーン
- 5.1 ブロックの構造と識別子
- 5.2 ブロックからトランザクションを検索する(マークルツリー)
Chapter 6 マイニングとコンセンサスアルゴリズム
- 6.1 ビザンチン将軍問題と分散型コンセンサス
- 6.2 Proof-Of-Work
- 6.3 トランザクションの集積
- 6.4 マイナーの報酬トランザクション(coinbaseトランザクション)
- 6.5 チェーンの分岐(フォーク)
- 6.6 51%攻撃
Part3 Ethereumとスマートコントラクト開発
Chapter 7 Ethereumとビットコインネットワークの主な違い
- 7.1 Ethereumの特徴
- 7.2 ネットワークの種類
Chapter 8 スマートコントラクト開発の準備とSolidityの基本文法
- 8.1 環境構築
- 8.2 Ethereumの公式ウォレット(Mist Wallet)
- 8.3 Remix-Solidity IDE
- 8.4 Solidity言語仕様
Chapter 9 スマートコントラクトの用途別サンプル
- 9.1 サンプル(その1)-HelloEthereum
- 9.2 サンプル(その2)-クラウドファンディング用のコントラクト
- 9.3 サンプル(その3)-名前とアドレスを管理するコントラクト
- 9.4 サンプル(その4)-IoTで利用するスイッチを制御するコントラクト
- 9.5 サンプル(その5)-ECサイトで利用するコントラクト
- 9.6 サンプル(その6)-オークションサービスで利用するコントラクト
- 9.7 サンプル(その7)-抽選会で利用するコントラクト
Part4 スマートコントラクトのセキュリティ
Chapter 10 スマートコントラクトのセキュリティプラクティス
- 10.1 Condition-Effects-Interactionパターン
- 10.2 Withdrawパターン(push vs pull)
- 10.3 Access Restrictionパターン
- 10.4 Mortalパターン
- 10.5 Circuit Breakerパターン
Chapter 11 スマートコントラクトの脆弱性の仕組みと攻撃
- 11.1 Reentrancy問題
- 11.2 Transaction-Ordering Dependence(TOD)
- 11.3 Timestamp Dependence
- 11.4 重要情報の取り扱い
- 11.5 オーバーフロー
Chapter 12 事例から学ぶブロックチェーンのセキュリティ
- 12.1 サードパーティの脆弱性(Solidity脆弱性)
- 12.2 クライアントアプリの脆弱性と鍵管理(Jaxx脆弱性)
プロフィール
田篭照博
アプリケーションエンジニアとして主にWebアプリケーションの開発に従事した後,セキュリティエンジニアに転身し,セキュリティ診断(Webアプリケーション,スマートフォンアプリケーション,スマートコントラクトなど)に従事。現在は,ブロックチェーン×セキュリティをテーマにしたアプリケーション開発に従事しており,日夜プログラミングに勤しむ日々。