『ブロックチェーン技術の教科書』2018/4/18
佐藤 雅史 (著), 長谷川 佳祐 (著), 佐古 和恵 (著), 並木 悠太 (著), 梶ヶ谷 圭祐 (著), & 3 その他

ビットコインから生まれた次世代技術「ブロックチェーン」の解説書です。ITエンジニアの方が書いているので、ブロックチェーンはもちろん、その他の技術との関係性について、技術的な面も含めて学べる総合的な解説書だと思います。内容は次の通りです。
Chapter 1 ブロックチェーン・分散台帳とは何か?
Chapter 2 ブロックチェーン・分散台帳の仕組み
Chapter 3 ビットコインの仕組み
Chapter 4 スマートコントラクト
Chapter 5 従来技術とブロックチェーン
Chapter 6 ブロックチェーンの実現可能性
Chapter 7 ブロックチェーンソフトウェアの例
Chapter 8 ブロックチェーンを使ってみよう(1)~データ共有篇~
Chapter 9 ブロックチェーンを使ってみよう(2)~スマートコントラクト篇

前半で「ブロックチェーン」「ビットコイン」について、イラストを使って分かりやすく説明してくれるだけでなく、Chapter 7以降の後半では、イーサリアムとHyperledger Fabricでのスマートコントラクトの簡単なサンプルプログラムが用意されているので、イーサリアムやHyperledger Fabricの環境で実際にスマートコントラクトを実行してみることで、ブロックチェーンソフトウェアのイメージをつかめるように配慮されています。ただしChapter 7以降には、プログラムそのものの一部(サンプル)が書かれているので、IT技術者でない方が理解するには、かなりキビシイかもしれません。それでも、少なくともChapter 6 ブロックチェーンの実現可能性までは、一般の方にも、分かりやすく書かれているように感じました。
この本はIT技術者の方が書いているので、Chapter 6までの解説にも技術的な面が盛り込まれていて、すごく勉強になりました。例えば「Chapter 3 ビットコインの仕組み」の中には、次のような記述があります。
「ブロックの一時的な分岐により取引情報の成立が覆る可能性もあるため、受け取った暗号通貨を使ってよいかを確認するためにはいくつかのブロック生成を待つことが推奨されています。例えば、ビットコインの開発コミュニティが配布しているソフトウェアでは受け取った暗号通貨を他の者に移転するには6回のブロック生成を待つように設定されています。」
……ビットコインはハッシュ値計算の競争によってブロック生成を行う仕組みなので、同時期に複数のブロックが生成される可能性もあり、その場合には「最長のチェーンが採用される」ことで、一つに収束させるようになっているのは知っていましたが、具体的にはどのように行っているのだろう? と疑問に感じていましたが、「6回のブロック生成を待つように設定されて」いたんですね。なるほど。
ところで、ネット銀行を使って他の口座に送金を行う場合には、もちろん、こんな複雑な仕組みはいりません。互いの口座は「信頼できるもの」だし、送金を行う銀行も「信頼できる組織」として機能しているからです。だから個人的には、システム的にみて「ブロックチェーン」よりも現行の銀行システムの方が、現実的にはずっと効率的なのでは? と思っていました。それなのに「海外送金手数料がずっと安い」とか、「相手が信頼できなくても、うまく働く仕組み」などという利点ばかりが喧伝されていて……本当にそうなのかなー、と疑問に感じていたのです。ビットコインなどの方が「海外送金手数料」が安いのだって、システムのハードウェア費用や維持管理を「みんなが(自前のを使って)行う」ことで広く薄く負担しているせいでもあるし、信頼できる組織の銀行が頑丈な建物(+多数の警備員)で守っている多数のコンピュータの維持管理に必要な費用が必要ないせいでもあるし……。
そんなモヤモヤした疑問についても、この本の「Chapter 6 ブロックチェーンの実現可能性」が明快な答えをくれました。
「ブロックチェーンそのものはデータをすべてのノードで管理し、非常に多くの通信と計算量を必要とします。中央集権的に構築するシステムよりも、性能は低く、コストもかかります。それでも、あえてブロックチェーンを使う必要性があるケースはあるのでしょうか? ビットコインの場合は、支払いを政府や中央銀行でさえ止めることができない、極限すると政府が信用できない場合においても(あるいは信用せずに)経済活動を行う必要があるという意味で大きな必然性があります。通常、円滑に経済活動を行おうとする場合、信頼できる人や機関がいれば、そのほうが圧倒的に簡単にシステムを作ることができます。これを考えると、お互いが信頼できるかどうか保証できないけど、みんなで正しく動作していることを確認できるのであればよいという場面において、初めてブロックチェーンを使う意味が出てきます。」
ああ、やっぱりそうだったんですね!
「記録が改ざんされないようにする」のは、実はブロックチェーンで行うより、信頼できる組織運営を合議制で行った方が、コストが低くなるのだそうです。
また「スマートコントラクト」の秘匿性に関しても、留意が必要なようです。
「スマートコントラクトに関わるデータやプログラムは他の参加者と共有されるものなので、当然のことながら他者から秘匿すべきデータに基づいた処理の実行や、処理の内容自体を秘匿したいような場合には問題が生じます。不特定多数が参加するパーミッションレスブロックチェーンの場合はなおのこと、特定の参加者が参加するパーミッションドブロックチェーンにおいても、他の参加者やその中の一部の参加者に対して共有してもよい内容であるかどうかは事前に考えておく必要があります。ブロックチェーンのソフトウェアの中には、ブロックチェーンの参加者すべてではなく、一部の関係者だけに取引情報やスマートコントラクトを共有できるような機能を備えたものもあるようですが、一度ブロックチェーンを運用し始めてしまうと後から設定を変更することが困難なケースもあるかもしれません。」
……仮想通貨やブロックチェーン、スマートコントラクトには、過剰な期待が寄せられているような気がします。この本には、IT技術者の冷静で客観的な視点が感じられました。
この本を読むことで、「ブロックチェーン」に関する理解を、より深めることが出来たような気がします。いろいろな意味でとても参考になる本でした。興味のある方は是非読んでみて下さい。お勧めです☆
<Amazon商品リンク>