ブックレビュー 鳥谷部昭寛ほか『スマートコントラクト本格入門』
現状Amazon等で「スマートコントラクト」をキーワード検索すると、トップに出てくるのが本書『スマートコントラクト本格入門』です。
全7章立てになっており、1〜2章がFintech・ビットコイン・ブロックチェーンといったスマートコントラクトを理解するのに必要な前提および背景知識、3〜5章がスマートコントラクトの概要・活用方法・法規制、6〜7章がサンプルコードを使って実際にブロックチェーンとスマートコンラクトを実践体験、という三部構成をとっています。
前中半5章までのパートでは、エンジニアらしいロジカルな文章と豊富な挿絵で、ブロックチェーン技術とそれをベースにしたスマートコントラクトで将来何ができるようになるかを解説。技術評論社から出ている本だけあって、技術的に誤解のないよう厳密な説明を心がけているのが随所に伺えます。これはもちろん本書のいい点でもありますが、やや説明が冗長かなと思う場面もちらほら。基本的な概念については、先日このメディアでご紹介した経産省のテキストなど、全体像が掴める文献を読んでからこの本にとりかかったほうがいいかもしれません。
一方驚かされたのは、この早い刊行タイミングにもかかわらず、
- 資金決済法(仮想通貨規制)
- 犯罪収益移転防止法
- 電子署名法
- 保険業法
- 個人情報保護法・プライバシー
といった、法律家や弁護士もまだ研究中の、スマートコントラクトに関する法律問題にも言及しているところ。企業法務関係者にとってはありがたいですね。
そしてつづく後半6〜7章の技術分野のパートでは、サンプルコードを使ってブロックチェーンとスマートコントラクトを自分で触って体感できるようになっています。本書を手に取られた非エンジニアの方は、特に楽しみに期待されているところでしょう。ただ、私の印象としては、このパートは「入門」というには少しハードルが高めかなという印象でした。というのも、そもそもそのサンプルコードが動く前提となる開発環境の構築方法について、サポートがほとんどないのです。
この点については、本書P127からはじまる6章のトビラに、はっきりとこのような注意書きがありました。
本章と7章は、プログラミングの技術的な解説となり、プログラミングを一度でも経験したことのある技術者を対象としています。したがって、スマートコントラクト開発に関わること以外の基礎的な技術・プログラミング用語の説明は省略しています。
例えば、GethというGo言語のイーサリアム開発環境があるのですが、その構築・インストールについての説明がこんな感じ。
P138の冒頭、唐突に
Homebrewを使うと簡単です。Homebrewをインストールした状態で、ターミナルで以下のコマンドを打ち込んでください。
とあります。しかし、そもそもそのHomebrewとは何で、それをどうやってインストールするのかの記載もありませんし、Homebrewをインストールするための「ターミナル」がなんであるかの説明もありません。一般の方は戸惑われるのではないでしょうか。
それでも、「本書を頼りにブロックチェーンやスマートコントラクトをどうしても触って試してみたい」という方のために、以下、非エンジニアが開発環境を設定する手順の中でつまづきそうなところを、同じく非エンジニアである私の実体験をもとに以下リストアップしてみました。
1. Xcodeをインストール 所要時間:約60分
Homebrewをインストールするには、まず最初にXcodeというOS Xの開発環境からインストールしなければなりません。これを30分ぐらいかけてDLし、さらに30分ぐらいかけてインストールするところからスタートです。ここで半分以上の方が挫折する気がしますが、頑張りましょう(笑)。XcodeはAppStoreからDLできます。
https://itunes.apple.com/jp/app/xcode/id497799835?mt=12
2. Homebrewをインストール 所要時間:約20分
先述のとおり、本書には肝心のHomebrewのインストール方法が記載されていません。ネットを検索するとすぐに出てくる情報ではありますが、上述のXcodeをインストール完了した状態で、こちらに従ってターミナルにスクリプトを打つことで、Homebrewをインストールできます。
https://brew.sh/index_ja.html
3. Javaをインストール 所要時間:約5分
私がハマってしまって数日抜けられなかったトラップがこれ。開発者にとっては入っていて当然すぎるからか、本書にはJavaインストールの必要性について言及がありませんでした。これを入れておかないと、後にgethの開発環境をインストールし構築している途中で
==> Checking out tag v1.7.x
が出たままスタックすることになるはずです。
インストール方法についてはそれほど難しくはないのですが、私はこちらを参考にしました。
https://qiita.com/seijikohara/items/56cc4ac83ef9d686fab2
4. GMPとGoのコンパイラをインストール 所要時間:約40分
本書P139に本当にさらっと一言
ビルドには、GMPとGoが必要です。持っていない方は、事前にインストールしておいてください。
と書いてあるものの、説明は本当にそれだけ(笑)。Homebrewをインストールした状態で以下を実行することで、インストールできます。それぞれ20分ほどかかります。
$ brew install gmp
$ brew install go
以上、1〜4を乗り越えれば、ようやくP138からはじまるGethの構築に取り掛かることができるのですが、P143にもう一つ、大きなトラップが・・・。
5. genesis.jsonファイルの修正 所要時間:約10分
ブロックチェーンを動かそうとする際、ジェネシスブロックと呼ばれるチェーンの最初のブロックを定義するgenesis.jsonファイルを作成する必要があります。しかし、本書P143記載されているソースコードでgenesis.jsonファイルを作成すると、エラーになってしまいブロックチェーンが動かないのです。同じように、こちらのブログの方も、このトラップにはまってお困りになったご様子でした。
私は、こちらの方のgenesis.jsonをお借りして解決しました。
https://qiita.com/oggata/items/eea4d5e37f38785f6079
こうしたトラブルを自分で解決する過程で技術そのものを理解していくことにもなるので、将来のために必要な修行と思うことにしましょう。以上、本書完走のご参考にしていただければ幸いです。
(橋詰)
機能や料金体系がわかる
資料ダウンロード(無料)詳しいプラン説明はこちら
今すぐ相談こちらも合わせて読む
-
契約専門書籍レビュー
白石和泰ほか『プライバシーポリシー作成のポイント』—見よう見まねのプラポリ作りからの卒業
プライバシーポリシーGDPR -
法律・法改正・制度の解説
2020年個人情報保護法改正がプライバシーポリシーに与える影響
法改正・政府の取り組みプライバシーポリシー -
契約専門書籍レビュー
宮内宏『Q&A電子契約入門』—実務上のタブー「電子署名操作の代行問題」に切り込む
電子署名法事業者署名型(立会人型) -
契約専門書籍レビュー
PWC税理士法人『電子帳簿保存法の制度と実務』 —契約書デジタル化とインボイス制度の関係
電子署名法電子帳簿保存法 -
契約専門書籍レビュー
経産省NDAひな形への挑戦状 —出澤総合法律事務所『実践!! 秘密保持契約書審査の実務』
契約書 -
契約実務
NDA(秘密保持契約書)経済産業省公式ひな形の解説【サンプルWordファイル無料DL】
契約書ひな形・テンプレート秘密保持契約書(NDA)