草コイン投資で目指せ億り人

      2018/05/03

【書評】大石哲之著『ビットコインはどのように動いているのか?』は最も分かり易いブロックチェーン解説本

ビットコインとブロックチェーンの勉強をするにあたり、結構手当たり次第に色々な本を読んでみたのですが、その中で断トツに分かり易かった本があります。

それが、大石哲之氏が書いた『ビットコインはどのようにして動いているのか?』です。

 

『ビットコインはどのようにして動いているのか?』が最も分かり易いブロックチェーン解説本だと思う3つの理由

筆者がこの本が最も分かり易いと思った理由は下記の3つです。

  • ビザンチン将軍問題を入口として説明している
  • ビットコインの取引きの流れを3ステップに分けて解説している
  • ハッシュ値の性質を基にマイニングについて説明している

ビザンチン将軍問題を入口として説明している

ビットコインでは、ビットコインの取引き情報を管理する台帳を、1台のサーバではなく、P2Pネットワークに参加する全てのPCが管理しています。

P2Pネットワークに参加している世界中のPC(ノード)が、過去のビットコインの取引き情報の全てを含んだ、膨大なデータ量を持つ台帳を管理しているのです。

新しい取引きが発生した際には、その取引き情報が、全てのノードに対して通知されます。そして、新しい取引き情報を受け取った各ノードは、その新しい取引きが正当な取引きであるかを検証します。

世界中のノードが検証して、その新しい取引きが正当であると認められれば、各ノードが管理している台帳は更新されます。

ここで、1つの疑問が発生します。

果たして、世界中のノードはどのようにしてたった1つの更新情報に関する合意を得ているのでしょうか?

P2Pネットワークに参加している各ノードには悪意のあるノードが含まれている可能性があります。悪意のあるノードは、自身が儲かるような取引き情報をP2Pネットワークに流して、不正な台帳更新の合意形成を促してしまう可能性があります。

どのようにして、悪意のあるものが混在するP2Pネットワークのなかで、唯一絶対的な台帳の更新情報に関する合意を得るのか。これが、ビサンチン将軍問題そのものである、ということです。

ここでいう、ビザンチン将軍問題とは何か?というと、下記の通りです。

ビザンチン将軍問題(ビザンチンしょうぐんもんだい、英語: Byzantine Generals Problem)とは、相互に通信しあう何らかのオブジェクト群において、通信および個々のオブジェクトが故障または故意によって偽の情報を伝達する可能性がある場合に、全体として正しい合意を形成できるかを問う問題である。
出典Wikipedia

ビザンチン将軍問題とは、コンピューターサイエンスの分野で長年議論されてきた問題です。東ローマ帝国(ビザンチン帝国)の将軍達の合意形成においても、同じような問題が発生していたため「ビザンチン将軍問題」という名前が付いています。

P2Pネットワークでビットコイン取引き情報の台帳管理を行う無数のPC達が、不正な取引き情報に関する合意形成を促す悪意のあるPCが多数混在するなか、唯一絶対的な取引きの更新情報に関する合意を得るって凄くないか??」ということが理解できた時、後に続くこの問題の解決方法(PoW)のこともしっかりと理解できるようになります。

ブロックチェーンテクノロジーはどのような問題を解決したのか?という最も本質的な部分を簡潔明瞭に解説している大石さんの著書は、他のビットコイン/ブロックチェーン解説本と比べて圧倒的に理解し易いです。

ビットコインの取引きの流れを3ステップに分けて解説している

この本では、ビットコインの取引きの流れを下記の3ステップで解説しています。

  1. 取引(トランザクション)の作成と通知
  2. マイニング(採掘)
  3. ブロックチェーン:ブロックのブロードキャストと承認

ビットコインの取引きの流れを、最初に上記の3ステップで説明しているため、ビットコイン取引きの全体像をつかむことが出来ます。

全体像を掴むことが出来れば、後は詳細を理解するだけです。これはどの分野の学習をする際にも言えることですが、はじめに全体像をつかむことが出来れば、詳細について勉強した時に、「自分が全体においてどの部分に該当する箇所を学んでいるのか分からなくなってしまう(迷子になってしまう)」という事態を避けることが出来ます。

結果として、非常に効率的に学習を進めることが出来ます。大石氏の本は、全体の流れを最初に説明してくれるので、詳細の技術について学ぶ際にも、非常に理解がし易いです。

簡単にですが、上記3つのステップを下記のように解説してみます。(詳細は大石氏の本を読んでください。)

手順1. 取引(トランザクション)の作成と通知

「手順1. 取引(トランザクション)の作成と通知」とは、自身が行った、例えば「私はAさんに10BTC送付しました」といったビットコインの取引き情報をP2Pネットワークに対して通知をすることです。

具体的に送付する取引情報としては、「自分のウォレットアドレス」や「Aさんのウォレットアドレス」、さらに「10BTC」といった送付するBTCの数量などがあります。

全てのトランザクションの情報はBlockchain.infoなどで誰でも参照することができます。

手順2. マイニング(採掘)

「手順2. マイニング(採掘)」とは、「手順1. 取引(トランザクション)の作成と通知」で通知された取引情報のまとまり(ブロック)に不正がないか検証を行い、そのブロックに対応する特定の条件を満たすハッシュ値を見つけ出すための計算を行い、P2Pネットワーク(ブロックチェーンネットワーク)に対して発見したハッシュ値を不正がないと確認したブロックと共に通知する作業のことです。

実は、「新しく通知されたブロックに対応する、特定の条件を満たすハッシュ値の計算」がビザンチン将軍問題を解決する肝となる作業になります。PoW(プルーフオブワーク)またはマイニング(採掘)と呼ばれることもあります。

このマイニング(特定の条件を満たす計算量の多いハッシュ値の計算)についての詳細については、本を購入して勉強し、理解を深めましょう。

手順3. ブロックチェーン:ブロックのブロードキャストと承認

「手順3. ブロックチェーン:ブロックのブロードキャストと承認」とは、「手順2. マイニング」の工程にてあるノードから通知された特定の条件を満たすハッシュ値及び、ブロックに含まれている全ての取引き情報が、正当であるかを検証し、正当であれば手元にある台帳(ブロックチェーン)の末尾に、その新しいブロックを付け加える作業のことです。

新しいブロックが全てのノードに通知されると、全てのノードは一斉にそのブロックの正当性の検証を行い、そのブロックに対応する特定の条件を満たすハッシュ値の計算を行います。この特定の条件を満たすハッシュ値を最初に発見したノードは、ブロックチェーンネットワークに対して、新しいブロックの情報とともに、その発見された新しいハッシュ値を通知します。これが「手順2. マイニング(採掘)」に該当する作業です。

「手順3. ブロックチェーン:ブロックのブロードキャストと承認」では、「手順2. マイニング(採掘)」の作業にて、一番最初に新しいブロックに対応する特定の条件を満たすハッシュ値を発見したノードが通知してきた、ブロックとハッシュ値が正当なものであるかを、確認する作業のことです。

つまり、「手順3. ブロックチェーン:ブロックのブロードキャストと承認」は、「手順2. マイニング(採掘)」の答え合わせのような位置付けの作業だということです。

ハッシュ値の性質を基にマイニングについて説明している

ビザンチン将軍問題を解決するための作業がマイニングです。このマイニングという作業を理解する上で避けては通れないのが「ハッシュ値」とは何か、を理解することです。

大石氏の本では、この「ハッシュ値」について詳細に解説してくれます。「ハッシュ値」について深く理解した後にマイニングについて勉強をすると、非常に効率的に理解を深めることが出来ます。

また、ハッシュ値について理解すると、Satoshi Nakamotoの発案したアイデアの具体的にどのような部分が革新的だったのかを理解することが出来ます。(ここを理解できるようになると、Satoshi Nakamotoをリスペクトする気持ちが産まれてきます。)

まとめ

以上、大石哲之氏著『ビットコインはどのようにして動いているのか?』についての書評でした。

やはり、ビザンチン将軍問題の解説からスタートし、ブロックチェーンテクノロジーの全体像を説明した上で、マイニングについて理解する上で欠かせない「ハッシュ値」についても詳細に解説をしている本著は、ブロックチェーンテクノロジーについて解説する最も分かり易い本だと思います。

RELATED ARTICLES

関連記事はありませんでした

Copyright© つかめ草コインドリーム! , 2018 All Rights Reserved.