徹底理解 ブロックチェーン〜ゼロから着実にわかる次世代技術の原則〜[本]

この記事は約9分で読めます。

ブロックチェーンの実用化が着々と進んでいるように感じるため、

値上がりによる利益を取る投資対象としてではなく、実際に利用される技術としての側面について学びたいと考えている。

そこで、改めてブロックチェーンについてまとめられた本を読んでいる。

現在読んでいるのはこの本。

「徹底理解 ブロックチェーン 〜ゼロから着実にわかる次世代技術の原則〜」

比喩と例えを多用し、数式などは極力載せないようにしているため、非常に読みやすい本となっている。

ただし、初めて触れる分野なので、内容が簡単に理解できるかと言われるとそうではない。

1回読んだだけでは完全に理解するのは難しい本だと感じる。

また、原著はアメリカでAmazonの複数カテゴリでランキング1位となっている。

日本語に翻訳されている本ではあるものの、聞き馴染みのない言葉や言い回しがあるため、

その点も理解するための若干の壁になっている。

ビットコインが大盛り上がりを見せた時に、いくつかの本を読んだことはある。

分散型台帳技術を用いていること、マイニングは膨大な計算を繰り返すこと、

マイニングに関わるナンス、ハッシュ値など、様々な用語が出てきては解説が繰り返されるが、

どうにもイマイチ理解することができなかった。

ビットコインについての原論文は公開されているし、

Bitcoin A Peer-to-Peer Electoronic Cash System

概要が日本語訳されているものもある。

日本語で読むビットコイン原論文[by Satoshi Nakamoto]

改めて見てみると、原論文はたったの9ページしかない。

その9ページにまとめられた内容によって数年前にあれだけ大きなお金が動いていたと言える。

先のことはわからないが、これから生活を大きく変えたり密接に関わっていくる可能性のある技術について、知っておきたいと思う。

何も調べたり聞いたりせず、何も知らずにいても日々の生活を送ることはできるが、

このサイトは資産形成を目的に運営している。

様々な情報に触れて、お金を動かす機会や、仕事にする機会を掴むことができるように模索することも運営する上での目標の一つとしているため、

新しい技術には時間がある時にできるだけ学ぶようにしておきたい。

この本には全部で25の章がある。

その内容について、各章のまとめを記載する形で記事にする。

あくまで私自身の学びのためであり、まとめる中で省いている部分も多く存在する。

また、この分野に詳しくない状態でまとめているため、もしかしたら理解に間違いがある場合もあるかもしれない。

そのため、正しく全貌を知りたいという場合は購入することをお勧めする。

1章

スマートフォン、テレビ、コンピュータなど、どのようなものに対しても、私たちは一人一人モノに対する捉え方が異なっている。

そのため、技術的なことについて話し合う場合、システムをどのように分割して捉えるかを合わせることが必要になる。

ここでは、システムを分割する方法とブロックチェーンについて話し合うためのベースを設定する方法についてまとめている。

この本では、システムはアプリケーション層と実装層、また機能面と非機能面に分けることができる。

アプリケーション層はユーザーのニーズ(写真をとる、音楽を聞く)といったことに関連している。

実装層に属しているものは、それらのニーズを実現するための(色を認識する、デジタル情報を音響情報に変換するといった)ことに関連している。

実装層はユーザのニーズを満たすための手段であり、技術的な側面が強い。

機能面と非機能面では、システムが何をするのかが機能面(写真を撮る、音楽を聴く)。

システムがどのように行うかが非機能面(綺麗な画面、使いやすさ)に当たる。

機能面はユーザのニーズを満たすので重視されるが、非機能面はほとんど意識されにくい。

非機能面にはセキュリティと完全性が含まれるが、

非機能面の一つである完全性はどのようなシステムにおいても意識はされないが、とても重要なシステムと言える。

非機能面の完全性には3つの要素で構成される。

  • データ完全性
  • 振る舞い完全性
  • セキュリティ

いつ、どんな時でも意図した通りに問題なく使えることができなければとても困ったことになるが、

完全性が維持されていることが当たり前になっているので、そのことのありがたみに気付きにくく、エンジニアは完全性の維持のために大きな努力を払っている。

2章

車に使われるエンジンには様々な種類がある。どれを選ぶこともできるが、選んだ種類によって大きな違いが生まれることになる。

同じことがソフトウェアにも当てはまる。ソフトウェアを実装する時にはアーキテクチャによって大きく異なり、分散と集中の二つのアプローチが存在する。

分散アーキテクチャには中央のノードが存在せず、どのノードも他のほとんどのノードとは繋がっていない。

対して、集中アーキテクチャは全てのノードが中央のノードと繋がっている。

それぞれにメリットとデメリットが存在する。

分散システムの利点は以下の通り

  • 計算能力の高さ
  • コスト削減
  • 信頼性の高さ
  • 自然に成長する能力

分散システムのデメリットは以下の通り

  • 協調のオーバーヘッド
  • 通信のオーバーヘッド
  • ネットワークへの依存性
  • プログラムの複雑化
  • セキュリティの問題

ビットコインはP2Pシステムで構成されているが、P2Pシステムは分散アーキテクチャと言える。

これらの分散、集中アーキテクチャを組み合わせたものも存在する。

ブロックチェーンの技術はユーザから意識されにくい非機能面に分類されるが、

ユーザのニーズを満たすための手段は集中、分散アーキテクチャのどちらも利用することができる。

ブロックチェーンは分散システムにおける完全性を達成するための手段となる。

3章

3章ではP2Pシステムについての説明が記載されている。

P2Pシステムは形のない商品やデジタル化された商品などの売買において、その仲介者としての役割を果たしている産業はどれもP2Pに置き換えられる可能性がある。

銀行などの金融機関に預けているのはお金だが、銀行口座に預けられているのは現金をではなく、実体のない電子的な情報になっている。

ただの数字のやり取りを行なっているだけであり、借入、貸付、送金などは仲介者である金融機関によって操作される形のない電子的な情報のやり取りに過ぎない。

銀行同士の送金に時間や手数料が必要なのはその仲介者である金融機関が間に存在しているからであり、P2Pシステムではその送金処理においてコストや時間を抑えることができる。

それは2つのピア(ノード)でデータを送受信するだけであることが理由になる。

これは金融機関で扱っている金融資産に限らず、デジタル化可能なものであればP2Pシステムによる恩恵を受けられる可能性がある。

4章

P2Pシステムでは完全性を維持することがかなり重要になる。

分散型のP2Pシステムで完全性を維持するために影響する要因で大きなものは2つ存在する。

  • ノードの数
  • ノードの信頼性

これらの2つが明らかであれば、完全性の達成と維持の可能性が高くなる。

ハードウェアやソフトウェアは常に障害の発生するリスクを抱えている。

不具合を起こすノードがあるような状態で、正常に動作するノードの数がわからない場合や、

悪意を持って不正のP2Pシステムを利用しようとするものが現れると、分散型のP2Pシステムを利用しようとする者の数が減ることになる。

安心してそのシステムを利用することができないからだ。

ブロックチェーンが解決するべき課題はそれら2つともが明らかになっていない状態で完全性を維持することにある。

5章 ブロックチェーンの定義

データ構造として見ると、データをブロックという単位にまとめ、それらを鎖のようにつなぎ合わされることからブロックチェーンと呼ばれる。本に当てはめると、ブロックは各ページであり、各ページはページ番号に基づいて1冊の本として綴じられる。誰かがそのページを抜き取るとページ番号が飛ぶ箇所が現れるため、正しく綴じられているか確認することができる。また、ブロックチェーンは複数の台帳からなる純粋な分散型のP2Pシステムの総称として用いられることもある。

ブロックチェーンについて説明される時は、暗号通貨と共に記述されることが多い。

理解しやすく説明しやすいことと、経済的な影響が大きい事例であるために暗号通貨と合わせた説明が行われやすい。

しかし、所有権の管理と行使は通貨だけに留まらない。

6章 所有権の性質

自分が所持しているモノの所有権を証明することは難しい。

同じ事実について証言する客観的な立場の商人の数が多ければ多いほど、この事実が真実である可能性は高くなる。この考え方こそがブロックチェーンの基本概念の一つとなっている。

所有権の証明には3つの要素がある。

  • 所有者の識別
  • 所有する物品の識別
  • 所有者とオブジェクトのマッピング

所有者と所有する物品を紐づけるには台帳が用いられるが、台帳は古くなったり壊れたりすることがある。そのため、中央で1つだけで管理するよりも複数で管理し、大多数の台帳が同意する真実に基づいて所有権に関するリクエストを解決することができる。

ブロックチェーンであれば、複数の台帳からなる純粋な分散型のP2Pシステムを作成することができる。

まとめ

まだ読み進めている最中ではあるが、ここまで読んでいて感じたことをまとめておきたい。

1章、2章では機能面と非機能面に分けた上での話が書かれている。

ブロックチェーンは分散システムでの完全性を達成するための手段であるとされているが、

私たちが何かしらのサービスを利用する時、そのシステムの構成がどのようになっているかという点についてはあまり意識しない。

そのため、分散システムであろうが集中システムであろうがどちらでもよいのだが、

もしサービスの提供者にとってこれまで利用していた集中システムよりも、

ブロックチェーンのような分散システムの方が便利だということ結論に至ればそちらが利用されることになる。

メリットとデメリットはそれぞれにあるので、用途に合わせて利用していく形になるのではないかと感じる。

また、こういった話題を気にかけるのは、一般のサービス利用者である私たちではなく、サービスを提供する事業者であることが多いはず。

私たちにとっては問題なく使うことができればそれで良いが、

サービスの提供者側はできるだけコストをかけず、より信頼性のある方法を使う方が良い。

普段から生活する上でブロックチェーンについて関わりがないと感じるのは間違いでは決してなく、

この技術を利用する場面は、最終消費者である私たちにとって少ないことが理由にある。

その数少ない例の一つがビットコインなどの暗号通貨だったが、

ビットコインの仕組みよりも、価格が変化することによる投資対象としての側面が極端に強く意識された結果だった。

結局のところ、大半の人々にとっては価格が変化して高くなった時に売却すると儲かるという機能面(といって良いのかはわからないが)が意識されており、

その技術を支えた非機能面のブロックチェーンについてはどうでも良いというのが正直なところだったのではないだろうか。

ゴールドラッシュの時には金を掘りに来た人々ではなく、その人々のために服やツルハシを提供した人々が今でも企業として残っていることを考えると、

本当に目を向けるべきはビットコインの値動きではなく、やはりこうした技術的な側面にあるのではないかと感じる。

今はその盛り上がりもすっかりおさまった状態にあ理、またブロックチェーン関連でゴールドラッシュが来るのかどうかもわからない。

しかし、もしその時が来たら、いつでも波に乗ることができるように今のうちから学んでおきたい。

コメント