徹底理解ブロックチェーン ゼロから着実にわかる次世代技術の原則(impress top gear)

【最新 – ブロックチェーンを理解するためのおすすめ本 – 入門から活用事例まで】も確認する

ブロックチェーンの一般的な概念と技術的なパターンの基本がわかる

本書は、ブロックチェーンの存在意義から全体的な技術の解説、ブロックチェーンのシステムの流れとポイント、ブロックチェーンの活用など様々な内容がまとめられています。プログラムに関する解説はなく、技術的すぎず、かといって初歩的すぎないレベルに仕上げています。

Daniel Drescher (著), 株式会社クイープ (翻訳)
出版社 : インプレス (2018/6/28)、出典:出版社HP

著者紹介

Daniel Drescher (ダニエル・ドレシャー)
金融業界の専門家として複数の銀行で電子セキュリティ取引を担当してきた経験を持つ。最近では、セキュリティ取引におけるオートメーション(自動化)、機械学習、ビッグデータに取り組んでいる。オックスフォード大学でソフトウェアエンジニアリングの修士号、ベルリン工科大学で計量経済学の博士号を取得している。

レビュー担当者紹介

Laurence Kirk (ローレンス・カーク)

シティ・オブ・ロンドンで低遅延金融アプリケーションを開発した後、分散台帳テクノロジの可能性に魅了される。修士号を取得するためにオックスフォードに移り、Extropy.ioというスタートアップの設立に携わる。Extropy.ioは、Ethereumプラットフォームでのアプリケーション開発を手掛けるブロックチェーンコンサルティング会社である。分散テクノロジに情熱を注ぐLaurenceは、Ethereumの開発者、エバンジェリスト、教育者として活動している。

Daniel Drescher (著), 株式会社クイープ (翻訳)
出版社 : インプレス (2018/6/28)、出典:出版社HP

はじめに

ここでは、すべての著者が答えなければならない重要な質問に答えたいと思う。本書を読むべきなのはなぜだろうか。より具体的には、ブロックチェーンの本を読むべきなのはなぜだろうか。なぜ本書が書かれたのか、本書から得られると期待できるものは何か、期待できないものは何か、本書は誰のために書かれたのか、本書はどのような構成になっているのか——これらのことを知りたい場合は、このまま読み進めよう。

なぜまたブロックチェーン本なのか

ブロックチェーンは公的な場での討論やメディアにおいて大きな注目を集めてきた。ブロックチェーンはインターネットの登場以来最大の発明であると主張するエンスージアスト(熱狂的な支持者)もいるほどだ。ブロックチェーンについては、この数年間、多くの本や記事が書かれてきた。しかし、ブロックチェーンの仕組みを理解したい人は、本の山を目の前にして途方に暮れることになるかもしれない。そうした本は、技術的な部分をざっと紹介するだけであるか、技術的な概念を俯瞰的なレベルで説明しているかである。前者は、ブロックチェーンを理解するのに必要な技術的な詳細を含んでいないため、物足りない感じがするかもしれない。後者は、まだ理解していない内容に関する知識を持っていることが前提となるため、やはり不満が残るかもしれない。
ブロックチェーンに関する純粋に技術的な本と、ブロックチェーンに期待される経済的効果やブロックチェーンの未来像を説明し、具体的な応用例を紹介する文献との間には、そもそもギャップがある。本書はそのギャップを埋めるものである。
本書を執筆したのには、次のような目的がある。具体的なブロックチェーンアプリを理解し、ブロックチェーンのスタートアップのビジネスケースを評価し、ブロックチェーンに期待される経済的効果に関する議論に注目するには、ブロックチェーンの技術的な土台を概念的に理解している必要がある。ブロックチェーンのベースとなっている概念を理解していなければ、ブロックチェーン全体の価値や潜在的効果を評価することも、特定のブロックチェーンアプリの付加価値を理解することも不可能である。本書では、ブロックチェーンのベースとなっている概念に焦点を合わせている。というのも、新しいテクノロジがきちんと理解されていないと、非現実的で根拠のない期待のせいで、さんざんもてはやされた挙げ句、失望に終わることがあるからだ。
本書では、ブロックチェーンを構成している概念を簡潔に理解しやすく説明する。新しいテクノロジが登場するときには、「それはどのようなものか」、「なぜ必要か」、「どのような仕組みで動作するのか」という3つの質問が浮上する。ここでは、それらの質問に答えたいと思う。

本書から期待できないものは何か

本書では、ブロックチェーンのアプリケーションを意図的に取り上げていない。一般的なクリプトカレンシー、特にビットコインが、ブロックチェーンの顕著なアプリケーションであることは確かだが、本書ではブロックチェーンを一般的なテクノロジとして説明する。このアプローチを選択したのは、ブロックチェーンの具体的な応用事例に的を絞るのではなく、ブロックチェーンの一般的な概念と技術的なパターンを明らかにするためである。このため、以下の内容は含まれていない。

●ビットコインをはじめとするクリプトカレンシーに関する内容
●特定のブロックチェーンアプリを対象とした内容
●ブロックチェーンの数学的な要素の証明に関する内容
●ブロックチェーンのプログラミングに関する内容
●ブロックチェーンの法的な位置付けと意味合いに関する内容
●社会または人類全体に対するブロックチェーンの社会的、経済的、または倫理的な影響に関する内容

ただし、説明上適切であると判断すれば、無理のない範囲で取り上げることがある。

本書から期待できるものは何か

本書では、ブロックチェーンの技術的な概念を説明する。これには、トランザクション、ハッシュ値、暗号化、データ構造、P2P(Peer-to-Peer)システム、分散システム、システムの完全性、分散コンセンサスを概念的に説明することが含まれる。本書の説明は、次の4つの要素に基づいている。

●対話レベルの解説
●数学や数式は含まない
●問題領域を段階的に解説
●比喩と例え

▶︎対話レベルの解説
本書は意図的に対話レベルの内容の深さで書かれている。技術的な知識がなくても読んでいけるよう、数学やコンピュータサイエンスの用語は使わない。ただし、ブロックチェーンに関する議論に参加し、他の文献を理解するために必要な用語については説明が含まれている。

▶︎数学や数式は含まない
暗号化やアルゴリズムといったブロックチェーンの主要な要素は、複雑な数学的概念に基づいている。それらの概念を理解するには、ゾッとするような数学的な表記や数式の知識が要求されることがある。だが本書では、技術的な知識がなければ読めないほど複雑な内容になるのを避けるために、数学的な表記や数式は示さない。

▶︎問題領域を段階的に解説
本書では、各章をステップと呼んでいる。これには次のような理由がある。これらのステップは、ブロックチェーンに関する知識を段階的に養っていくラーニングパスを形成している。これらのステップの順番は慎重に選択されている。各ステップでは、ソフトウェアエンジニアリングの基礎、用語の説明、ブロックチェーンが必要な理由、ブロックチェーンを構成している個々の概念とそれらの相互関係をカバーしている。各章を「ステップ」と呼ぶことにより、それらが依存関係にあることと、それらの説明上の目的が明白になる。個別に読むことができる「章」とは異なり、「ステップ」は論理的な順序に従って読んでいく必要がある。

▶︎比喩と例え
新しい概念を紹介する各ステップは、現実の状況に例えた説明で始まる。こうした比喩には、主に4つの目的がある。1つ目は、新しい技術的な概念を紹介するための準備をすることである。2つ目は、技術的な概念を理解しやすい現実のシナリオに結び付けることで、新しい領域を開拓するときの思考上のハードルを下げることである。3つ目は、類似性と例えを利用することで、新しい概念の習得を可能にすることである。4つ目は、新しい概念を覚えるための大まかなルールを提供することである。

本書の構成

本書は25のステップで構成されている。これらのステップは、5つのステージに分かれている。これらのステージは、ブロックチェーンに関する知識を段階的に養っていくラーニングパスを形成する。これらのステップでは、ソフトウェアエンジニアリングの基礎、必要な用語の説明、ブロックチェーンが必要な理由、ブロックチェーンを構成している個々の概念とそれらの相互関係、ブロックチェーンの使用パターン、そして研究開発が活発な分野を
カバーしている。

▶︎ステージ1:ブロックチェーンの目的と可能性を知る
ステップ1からステップ3では、ソフトウェアエンジニアリングの主要な概念を取り上げ、これ以降のステップの内容を理解するのに必要な用語を紹介する。このステージを最後まで読めば、ブロックチェーンの基本的な概念を理解できるはずだ。そして、ブロックチェーンを俯瞰的に捉えられるようになるだろう。

▶︎ステージ2:ブロックチェーンはなぜ必要か
ステップ4からステップ7では、ブロックチェーンはなぜ必要か、ブロックチェーンはどのような問題を解決するか、この問題を解決することはなぜ重要か、ブロックチェーンはどのような可能性を秘めているかについて説明する。このステージを最後まで読めば、ブロックチェーンが属している問題領域、ブロックチェーンが最も価値をもたらす環境、そしてブロックチェーンが必要な理由をしっかり理解できるだろう。

▶︎ステージ3:ブロックチェーンはどう機能するか
3つ目のステージは本書の目玉である。というのも、ブロックチェーンの内部の仕組みを説明するからだ。ステップ8からステップ21では、ブロックチェーンを構成している15種類の技術的概念を取り上げる。このステージを最後まで読めば、ブロックチェーンの主要な概念、それぞれの要素の仕組み、ブロックチェーンと呼ばれる大きな機械を生み出すためにそれらの要素がどのようにやり取りするかをすべて理解できるだろう。

▶︎ステージ4:制限とその克服方法
ステップ22とステップ23では、ブロックチェーンの主な制限、それらの制限が発生する理由、それらの制限を克服する方法として何が考えられるかに焦点を合わせる。このステージを最後まで読めば、ここまでのステップで説明してきたブロックチェーンの当初のアイデアが大規模な商用アプリケーションに必ずしも適していない理由と、そうした制限を克服するために提案されてきた変更について理解できるだろう。また、そうした変更によってブロックチェーンの特性がどのように変化したのかもわかるだろう。

▶︎ステージ5:ブロックチェーンの活用とまとめ
ステップ24とステップ25では、ブロックチェーンを実際にどのように理解できるか、そしてブロックチェーンアプリを選択するときに答えなければならない質問は何かについて検討する。このステージでは、研究が活発に行われている分野と今後の発展が期待される分野も紹介する。このステージを最後まで読めば、ブロックチェーンの主なアプリケーションシナリオ、その最も重要な進展、そして長期的な成果や欠点として何が考えられるかをしっかり理解できるだろう。

本書のWebサイト
本書のWebサイトでは、本書の一部のステップで使用しているハッシュ関数やハッシュパズルにアクセスできる。

http://www.blockchain-basics.com

Daniel Drescher (著), 株式会社クイープ (翻訳)
出版社 : インプレス (2018/6/28)、出典:出版社HP

CONTENTS

著者紹介
はじめに

Stage1 ブロックチェーンの目的と可能性を知る

STEP1 レイヤと機能面/非機能面について考える
1.1 比喩:共通の認識を持つ
1.2 ソフトウェアシステムのレイヤ
1.3 2つのレイヤを同時に考察する
1.4 完全性
1.5 次のステップ
1.6 まとめ

STEP2 全体像を把握する
2.1 エンジンという比喩
2.2 決済システムのレイヤ化
2.3 2種類のソフトウェアアーキテクチャ
2.4 分散システムの利点
2.5 分散システムの欠点
2.6 分散型のP2Pシステム
2.7 集中システムと分散システムの組み合わせ
2.8 分散システムの識別
2.9 ブロックチェーンの目的
2.10 次のステップ
2.11 まとめ

STEP3 可能性を認識する
3.1 P2Pと音楽の比喩
3.2 P2Pシステムは音楽業界全体をどのように変えたか
3.3 P2Pシステムの可能性
3.4 用語の定義とブロックチェーンとの関係
3.5 ブロックチェーンの可能性
3.6 次のステップ
3.7 まとめ

Stage2 ブロックチェーンはなぜ必要か

STEP4 問題の核心を明らかにする
4.1 「猫の群れの番」という比喩
4.2 P2Pシステムでの信用と完全性
4.3 P2Pシステムの完全性に対する脅威
4.4 ブロックチェーンによって解決される主要な問題
4.5 次のステップ
4.6 まとめ

STEP5 用語の定義を明確にする
5.1 用語の定義
5.2 暫定的な定義
5.3 所有権の管理という役割
5.4 本書で取り上げるブロックチェーンの応用領域
5.5 次のステップ
5.6 まとめ

STEP6 所有権の性質を理解する
6.1 「カバンの中のリンゴ」という比喩
6.2 所有権と証人
6.3 所有権の基礎
6.4 セキュリティについて
6.5 台帳の目的と特性
6.6 所有権とブロックチェーン
6.7 次のステップ
6.8 まとめ

STEP7 二重支払い問題とは
7.1 紙幣偽造とシステム脆弱性
7.2 二重支払い問題
7.3 用語の定義
7.4 二重支払い問題の解決方法
7.5 本書での二重支払い問題の使用法
7.6 次のステップ
7.7 まとめ

Stage3 ブロックチェーンはどう機能するか

STEP8 ブロックチェーンの設計を考える
8.1 目標:概念の理解
8.2 出発点:システムの特徴
8.3 対処すべきタスク
8.4 次のステップ
8.5 まとめ

STEP9 所有権の文書化
9.1 「リレー競走のバトン」という比喩
9.2 目標:所有権の文書化
9.3 課題:記録を見つけ出す
9.4 トランザクションデータの考え方
9.5 インベントリデータとトランザクションデータについて
9.6 所有権の文書化の仕組み
9.7 この仕組みはなぜうまくいくのか
9.8 順序の重要性
9.9 トランザクション履歴の完全性
9.10 次のステップ
9.11 まとめ

STEP10 データのハッシュ化
10.1 皮膚紋理という比喩
10.2 目標:トランザクションデータの識別
10.3 ハッシュ関数の特性
10.4 実際に試してみる
10.5 データハッシュ化のパターン
10.6 次のステップ
10.7 まとめ

STEP11 ハッシュ化の使用パターン
11.1 データを比較する
11.2 データの変化を検知する
11.3 変化に敏感な方法でデータを参照する
11.4 変化に敏感な方法でデータを格納する
11.5 時間のかかる計算を行わせる
11.6 ブロックチェーンでのハッシュの使用法
11.7 次のステップ
11.8 まとめ

STEP12 ユーザーアカウントの識別と保護
12.1 メールボックスという比喩
12.2 目標:資産へのアクセス
12.3 アカウントの課題
12.4 アカウントの考え方
12.5 暗号学について
12.6 現実世界での非対称鍵暗号
12.7 ブロックチェーンでの非対称鍵暗号
12.8 次のステップ
12.9 まとめ

STEP13 トランザクションの承認
13.1 手書きの署名という比喩
13.2 目標:資産譲渡の可否
13.3 課題:開放性と譲渡制限
13.4 承認の考え方
13.5 デジタル署名について
13.6 ブロックチェーンでのデジタル署名の仕組み
13.7 なぜうまくいくのか
13.8 次のステップ
13.9 まとめ

STEP14 トランザクション格納の仕組み
14.1 図書カード目録という比喩
14.2 目標:履歴の整理
14.3 課題:格納のあり方
14.4 考え方:トランザクションデータと図書館
14.5 本をブロックチェーンデータ構造に変換する
14.6 ブロックチェーンデータ構造
14.7 ブロックチェーンデータ構造にトランザクションを格納する
14.8 次のステップ
14.9 まとめ

STEP15 データの追加と変更の仕組み
15.1 編み物という比喩
15.2 新しいトランザクションを追加する
15.3 変更を検知する
15.4 データを正しい順序で変更する
15.5 意図的な変更と意図しない変更
15.6 次のステップ
15.7 まとめ

STEP16 追加専用のデータストアにする
16.1 「偽りの家系」の比喩
16.2 目標:信頼できるデータ
16.3 課題:データの保護
16.4 考え方:公開と保護
16.5 不変性について
16.6 全体的な仕組み
16.7 仕組みの詳細
16.8 なぜうまくいくのか
16.9 ブロックチェーンデータ構造の改ざんのコスト
16.10 現実のイミュータブルなデータストア
16.11 次のステップ
16.12 まとめ

STEP17 データストア分散の仕組み
17.1 「社内の情報共有」という比喩
17.2 目標:各コンピュータによる管理
17.3 課題:情報の伝播
17.4 考え方:社内グループでの会話
17.5 全体的な仕組み
17.6 仕組みの詳細
17.7 なぜうまくいくのか
17.8 次のステップ
17.9 まとめ

STEP18 トランザクションの検証と追加
18.1 報酬と査定の比喩
18.2 目標:追加と完全性の両立
18.3 課題:有効なトランザクションだけの追加
18.4 考え方:監視と報酬
18.5 構成要素
18.6 全体的な仕組み
18.7 仕組みの詳細:ルール1~13
18.8 なぜうまくいくのか
18.9 不誠実な振る舞いに対処する
18.10 次のステップ
18.11 まとめ

STEP19 トランザクション履歴の選択
19.1 「人が歩いてできる道」の比喩
19.2 目標:1つのトランザクション履歴の維持
19.3 課題:ノードが持つ情報と作業フェーズ
19.4 考え方:履歴を確定するための合意
19.5 仕組み:トランザクション履歴の選択
19.6 チェーンの選択がもたらす影響
19.7 投票方式への脅威
19.8 ハッシュパズルの役割
19.9 なぜうまくいくのか
19.10 次のステップ
19.11 まとめ

STEP20 完全性の代価
20.1 「仕事の成果物と報酬」の比喩
20.2 ブロックチェーンでの手数料の役割
20.3 報酬の支払い手段の望ましい特性
20.4 暗号通貨の登場について
20.5 次のステップ
20.6 まとめ

STEP21 すべてのピースをつなぎ合わせる
21.1 概念とテクノロジを復習する
21.2 ブロックチェーンとは何か
21.3 ブロックチェーンの目的:アプリケーション層の機能面
21.4 ブロックチェーンの特性:非機能面
21.5 ブロックチェーンの内部機能:実装層の機能面
21.6 抽象性の獲得
21.7 次のステップ
21.8 まとめ

Stage4 制限とその克服方法

STEP22 制限を明らかにする
22.1 課題:制限と克服
22.2 ブロックチェーンの技術的制限
22.3 ブロックチェーンの非技術的制限
22.4 制限を克服する
22.5 次のステップ
22.6 まとめ

STEP23 ブロックチェーンを見直す
23.1 「目的の両立」という比喩
23.2 ブロックチェーンの競合する目的
23.3 競合の根本原因
23.4 競合を解決する
23.5 4つの異なるブロックチェーン
23.6 読み取り/書き込みアクセスの制限がもたらす影響
23.7 ブロックチェーンの目的を見直す
23.8 本書での「ブロックチェーン」の意味
23.9 次のステップ
23.10 まとめ

Stage5 ブロックチェーンの活用とまとめ

STEP24 ブロックチェーンを利用する
24.1 収納の比喩
24.2 ブロックチェーンの特性
24.3 一般的な使用パターン
24.4 具体的な使用パターン
24.5 ブロックチェーンアプリを分析する
24.6 次のステップ
24.7 まとめ

STEP25 本書のまとめ、そしてその先の向こうへ
25.1 ブロックチェーンの比喩
25.2 今後の発展とブロックチェーンに代わる選択肢
25.3 ブロックチェーンの主要な成果
25.4 欠点として何が考えられるか
25.5 ブロックチェーンの未来
25.6 次のステップ
25.7 まとめ

Daniel Drescher (著), 株式会社クイープ (翻訳)
出版社 : インプレス (2018/6/28)、出典:出版社HP