『ブロックチェーンアプリケーション開発の教科書』2018/2/1
加嵜 長門 (著), 篠原 航 (著), 丸山 弘詩 (編集)

暗号通貨(仮想通貨)の価値を支えるブロックチェーン技術、その仕組みから実践までを解説してくれるITエンジニア向けの本です。
この本は、ブロックチェーン技術を正しく理解し、アプリケーション開発を実践するスキルを学ぶための理論的背景や現在の動向を解説する前半と、サンプルコードを交えて、開発の具体例や考え方を実践する後半の2部構成になっています。
想定読者は、ブロックチェーン技術を理解したいエンジニア、ディレクター、MVCフレームワークなどでアプリケーション開発を経験したことがあるエンジニアだそうです。特に後半になると、プログラムのサンプルがあるだけでなく、専門用語も続出なので、ITエンジニアではない一般の人には、かなり難しいと思います。
Chapter1~3では、ブロックチェーン技術の特徴や歴史から、暗号通貨システムを支えるブロックチェーンの要素技術、スマートコントラクトとイーサリアムを解説してくれます。
Chapter4~5では、暗号通貨や暗号通貨以外の具体的な事例を紹介することで、ブロックチェーン技術を活用して提供できるサービスの可能性を考察します。
Chapter6~8では、ブロックチェーン開発の環境構築からイーサリアムのブロック構造やトランザクション構造などに加え、Solidityの言語仕様を解説した上で、スマートコントラクト開発を具体例に説明します。また、Truffleフレームワークを使ったアプリケーションの開発手法も解説しています。
Chapter9~10では、ブロックチェーンでの制約や注意点として、セキュリティやストレージの利用方法などを解説し、発展段階であるブロックチェーン技術が抱える主要な課題と現時点における解決策や事例を紹介します。
そして最後のChapter11では、暗号通貨やブロックチェーン技術が今後どのような変化を社会にもたらすかを検討します。
というように、ブロックチェーンアプリケーション開発に関する総合的な解説書になっていて、まさに『ブロックチェーンアプリケーション開発の教科書』というタイトルに相応しい内容だと思います。
前半の「Chapter1. ブロックチェーンとは?」から「Chapter5. ビジネスへの応用」までは、解説が長くなりがちな「ブロックチェーン」について、とても簡潔に説明してくれているので、一般の人向けの説明資料を作る時にも、これらの文章&イラストがとても参考になると思います。個人的には、「2-1 タイムスタンプサーバ まったく新しい時計の発明」の解説がとても分かりやすくて参考になりました。
タイムスタンプの役割は、「ある出来事が起こった日付や時刻を記録して、事実の存在を証明したり、前後関係を保証したりすること」ですが、コンピュータ上のタイムスタンプには、「現実世界と必ずしも同期がとれない」、「各人の参照する時刻が違っている場合、いつ起こったかの合意が得にくい」、「改ざんが容易」などの問題があります。
この問題に対して、例えば、ネット銀行の取引だと、銀行のサービス時間を基準とする「中央集権的タイムスタンプ」を利用してサービスの整合性を保っているのですが、ブロックチェーンは、この「中央集権的タイムスタンプ」を使うことなく、「非中央集権的タイムスタンプ」の「ブロックチェーンタイムスタンプ」を使うことで、実用レベルでサービスの整合性を保っているのです。その実現方法の一つが「ハッシュチェーンタイムスタンプ」で、「前後関係が存在する2つの出来事に対して、その順序が特定できる「相対時刻」として時間軸を定義する」のだとか。
……なるほど。こんな感じに、前半は、ブロックチェーンの基本的な考え方などを簡潔に解説してくれます。
そして後半は、Ethereum(イーサリアム)におけるスマートコントラクトや、独自トークンの発行、Solidityによるアプリケーション開発などについて、プログラムのサンプルを紹介しながらの実践的な解説があるだけでなく、セキュリティを高めるための手法や、データ保存の注意点などに関しても教えてもらえます。実際にこれらを使ってアプリケーション開発をする場合への「入門書」として参考になると思います。
内容がとても総合的・網羅的ものであるだけでなく、冒頭に「用語解説」としてブロックチェーン関連の専門用語の簡潔な説明もあり、とても充実した『ブロックチェーンアプリケーション開発の教科書』だと思います。この分野は発展途上であり、今後の変更(進化)が激しいと思われるので、これからも、これをベースに定期的に改訂版を出して欲しいと感じました。
ブロックチェーンに興味のあるIT技術者の方は、ぜひ読んでみてください。
なお社会や科学、IT関連の本は変化のスピードが速いので、購入する場合は、対象の本が最新版であることを確認してください。
<Amazon商品リンク>