「マンガでわかる　ブロックチェーンのトリセツ」を読んで

# はじめに 

以前から興味のあったブロックチェーンについて知りたいと思っていたので、入門編として良さそうなこちらを読みました。  
技術的な詳細内容は少ないですが、ブロックチェーンの概要を知るにはもってこいだと思います。  
備忘録として、各章の概要と感想を書き残します。

# 1. ブロックチェーンって何？

![network_blockchain.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/198603/59d1e464-4a42-6def-4564-2450c9cbb614.png)

## キーワード

- ブロックチェーン
- P2P

## 概要

![ブロックチェーンの図_パターン1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/198603/b7d1f9bc-5770-ae77-9360-729ccd1a9f6e.png)

- ブロックチェーンは取引データを1本の鎖のように繋げていったもの。  
    - 各取引データは「ブロック」単位
    - ブロックチェーンに接続するサーバでデータをコピーする
    - 取引データを連番で記録するだけだと、データの改ざんがあってもわからない
        - ブロックの中に、１つ前のブロックにある取引データの要約を加える
        - 過去データを書き換えた場合、要約との不一致が生じ、改ざんを検知する

- P2P（ピアツーピア）による分散
    - 世界中のサーバが「台帳」のコピーを持っている
    - 一部の「台帳」が壊れた場合でも、別の「台帳」があるため、システムは壊れない
    - 24時間365日動作する仕組みになっている

- ブロックチェーンにデータが書き込まれるまで
    1. 取引データを書き込み
    2. ブロックチェーンのサーバがデータを受領
    3. 各サーバ間で取引データの合意形成
    4. 書き込み完了通知（承認）

# 2. ブロックチェーンと仮想通貨

## キーワード

- 仮想通貨

## 概要

- 仮想通貨
    - ex. ビットコイン、イーサリアム
    - ブロックチェーンを使って電子的に実現したお金
    - 仮想通貨を手に入れるためには、仮想通貨の取引所を利用する
    - 多くは「日常で使うこと」を目的にされておらず、投資目的の金融商品として今後価値が上がることを期待されている
    - 通貨のため、個人や企業での取引に利用可
    - 電子マネーとの違い: 対応する店舗でないと使用できない


# 3. ブロックチェーンがつながっていく仕組み

## キーワード
- ハッシュ（関数、値）
- トランザクション
- Nonce
- マイニング

## 概要

![ブロックチェーンの図_パターン2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/198603/016665da-0283-580d-e1a7-a6a99c8f81d6.png)

- ヘッダ内容
    - ひとつ前のブロックハッシュ
        - 特定の数時以下でないといけないというルールがある。
        - そのため、元データを書き換え、ルールにあうように繰り返しが必要
        - ブロックのヘッダに任意に書き換えられる領域（Nonce）がある
        - ハッシュの値が期待通りになるようなNonceを見つけることをマイニングと呼ぶ
            - マイニングでNonceを見つけると報酬がもらえる
    - Nonce
    - 今回の取引（トランザクション）のハッシュ

- トランザクション内容
    - 取引データ
        - 取引のひとつひとつはハッシュに変換されている

# 4. ブロックチェーンを利用した「トレーサビリティ」

## キーワード

- トークン
- トークンエコノミー
- トレーサビリティ

## 概要

- トレーサビリティ
    - 流通の過程を追跡できるようにした仕組みのこと
    - 食品や薬品などの取引で、流通の過程が進むにつれデータが記録される
    - ブロックチェーンを利用することで、運用、保守、コスト面での優位性があると考えられているため、ブロックチェーンの活用例として注目されている
    - 従来のDBシステムを使ってトレーサビリティの場合、DBの改ざんやDBサーバ停止などでデータが見られなくなる問題がある。また、管理者やセキュリティ管理などが必要。

- トークン 
    - ブロックチェーンにおけるトークンは「価値を持った数字の情報」
    - 価値≠お金
    - トークンに価値があるので、支払に使用できる
    - ex. 共有の冷蔵庫にプリン2個いれると、プリン２個分のトークンをもらうことができる

- トークンエコノミー
    - 情報モノの提供を、通貨の代わりに、トークンで支払いする
    - 通貨の実態がないため、通貨の一番小さな単位以下の支払いが可能

# 5. ブロックチェーンが得意なこと苦手なこと

## キーワード

- マスターデータ
    - 会員情報など頻繁に更新しないデータ
- トランザクションデータ

## 概要

- トランザクションデータ
    - ブロックチェーンへの記録にむいているデータの種類
    - 追加されていくデータ
    - 取引、購入履歴など

- ブロックチェーンはマスターデータの管理が苦手
    - 履歴を蓄積して使うデータには向くが、最新の状態を保つデータには向かない
    - よくあるブロックチェーンシステムでは、マスターデータはDBで管理されていることが多い

# 6. ブロックチェーンは世界でどう活用されているか？

## キーワード

- スマートコントラクト
- DApps

## 概要

- 海外でのブロックチェーンの利用例
    - エストニア電子政府: e-Residency
        - 海外在住のまま、エストニアで銀行口座や会社を作成できる制度
        - 利用者のメリット: EU加盟国のためビジネス拡大のチャンス
        - エストニアのメリット: 税収の見込みや、世界中に制度の先進性をアピール
    - Ethereumを使ったサービス: Etherscan
        - スマートコントラクトやDAppsに使用されるEthereumを利用
        - ゲーム関連

- スマートコントラクト
    - 契約実行の確認と支払いを自動で行う仕組み
    - 取引に関する契約をブロックチェーン状にあらかじめプログラミング、条件達成後に自動で支払いを実行
    - 従来のフリマアプリなどでも可能だが、運営者なしで実現が可能で、コスト削減ができる

- DApps
    - ブロックチェーンを使ったアプリの総称
    - トークンを活用してオープンソースであることが最低条件
    - ex. CryptoKitties

# 7. ブロックチェーンとIoTを組み合わせるメリット

## キーワード

- IoT
    - インターネットに様々な機器をつなぐ仕組み

## 概要

- IoTとブロックチェーンの組み合わせの活用法
    - IoTデバイスが取得した機器のデータやハッシュをブロックチェーンに保存
    - トークンを支払い、機器の利用
    - ex. 集合住宅でのEV充電管理サービス
        - トークンを支払い利用権を取得、支払った分だけ充電可能


# 8. ブロックチェーンを決済サービスで使うには？

## キーワード

- マイクロペイメント
    - 少額決済。１円未満の超少額決済。
- オフチェーン
    - ブロックチェーンの外側で行われる技術
- サイドチェーン
    - オフチェーンの部分をブロックチェーンで構成しているもの 
- マルチシグ
    - 複数の秘密鍵を設定したウォレット。
    - 複数の署名がないと送金が実行できない
    - 一部の秘密鍵が盗まれてしまっても、ウォレットに保管したトークンが盗まれる心配がない

## 概要
- ブロックチェーンを決済サービスに活用するには
    - ブロックチェーンは取引の承認に時間がかかる
    - 決済サービスのようなすぐ処理が必要なものは、オフチェーンで行う

![オフチェーンの図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/198603/32fff7aa-7856-4f9a-33fb-f2ed58722fbb.png)

- オフチェーンのイメージ
    - 特定の期間内の細かい決済は、オフチェーンで行う
        - 利用者は最初にデポジットを支払い、その中で買い物を行う。
        - 特定の期間後、最後にまとめてお釣りをもらう
    - 最初と最後の取引のみ、ブロックチェーンに記録する

- マルチシグ
    - 購入側と売る側の両方の署名がないと送金できないウォレット
    - オフチェーンの中で行われるマルチシグを使った支払いの仕組み
        1. マルチシグウォレットを作り、返金可能な期限付きのトランザクションをあらかじめ作る 
        1. 購入者は代金を先払いする
        1. 購入者が商品を複数回利用する
        1. トランザクションの期限後、使用しなかった分を売る側から返金してもらう

# 9,10. ブロックチェーンで町おこし～スマートシティ～

## キーワード

- スマートシティ
    - IT機器やデータ、ネットを活用した街や、街づくりのこと

## 概要

- スマートシティでのスマートコントラクトの活用法
    - スマートコントラクトは契約を自動で行う意味・機能
    - スマートシティの契約対象は、乗り物・住宅・電力・金融サービス（保険）など
    - スマートシティの構成要素に対して、管理人不要でサービスの提供・支払いを行うことができる

- スマートシティにおけるブロックチェーンの特長
    - 管理者不要で、データが事実上改ざん不能
        - 24h利用可能
    - データに価値を持たせることができる
    - ブロックチェーンネットワークに接続した人ならだれでもデータを参照できる

# 11. ブロックチェーンで使われる技術のまとめ

## キーワード

- 秘密鍵、公開鍵
- 署名
- 暗号化
- 分散コンピューティング

## 概要

- ブロックチェーンでの秘密鍵、公開鍵、署名の使用方法
    1. ユーザは取引データを作成する
    1. 秘密鍵で署名を行う
    1. 公開鍵をセットする
    1. 取引データをブロックチェーンネットワークに送信する
    1. 取引データを公開鍵を使って、電子署名を検証する（ハッシュ値を確認する）

- ブロックチェーンの弱点
    - 秘密鍵が他人の手に渡ってしまうと、取引データを偽造されてしまう
    - 過去の仮想通貨の流出事件のほとんどは、秘密鍵の管理に失敗してしまったことによるもの

- ブロックチェーンまとめ
    - ブロックチェーンの特長
        - 24時間365日稼働
        - 改ざんが難しい
        - 従来システムに比べてコストがかかりにくい
    - 使用されてる技術
        - P2Pによるデータの分散と管理者不要
        - 公開鍵暗号方式による電子署名でのなりすまし防止
        - ハッシュによるブロックの接続やデータの格納
    - ブロックチェーンの使われ方
        - 仮想通貨
        - トレーサビリティの実現
        - トークンエコノミーによる新しい価値の認識

# 12. ブロックチェーンで作る未来

## キーワード

- 量子コンピューター
- 量子耐性
    - 量子コンピューターの処理速度でも耐えられる暗号化方式 

## 概要

- ブロックチェーンは万能ではない
    - ブロックチェーンに使用されている「公開鍵暗号方式」は万能ではない。
    - 計算能力が高い量子コンピュータなどで計算すれば暗号を破ることが可能

- 量子耐性を得るために行う4つの工夫
    - 秘密鍵、ハッシュ値を長く複雑にする
    - 秘密鍵を使い捨てにする
    - 秘密鍵に3進数を利用する
    - ランポート署名を使用する

# 感想

ブロックチェーンの概要が分かりやすく記載されており、入門編としてとても良いと感じました。
ストーリー仕立てで技術内容が紹介されているため、なぜこの章にこの技術が紹介されてるんだろうと感じることが多々あり。  
ブロックチェーンの構成要素なども後ろの章で構成されているので、てっとり早くブロックチェーンの情報を知りたいという人には向かないかも。  
ストーリ仕立てであることは、内容が頭に入りやすいという点では良かった。