2018/10/25

書籍『ゼロから創る暗号通貨』をどう読むか

濵津誠 著『ゼロから創る暗号通貨』(2018年10月、PEAKS発行)の編集をお手伝いしました。この本はどんな本かというと……

  • 土台となるP2Pネットワークから暗号通貨を自前で作ってみることで、ブロックチェーンを応用したまったく新しいサービスと未来を創るところまで意識できる本
  • 著者の濵津さん自身が教師役となり、ブロックチェーンの「うさんくさくない」部分の全体がわかるように、読者をひっぱっていってくれる本

要するに、ブロックチェーンの技術を通して、濵津さんという凄腕技術者が読者のメンターになってくれる本です。これまでクラウドファンディングで出資者しか読めなかったのが、今日から一般にも購入できるようになりました!

ゼロから創る暗号通貨

ゼロから創る暗号通貨

以下は、個人的な回想と、本書でぼくが何をしたかの舞台裏。

暗号通貨についてざっくりと知りたいなと思って、「暗号通貨」で検索してみると、投資して儲けたい人向けの記事と、通貨としての側面について考察する社会派な記事ばかりがトップに並びます。この結果だけ見ると、だいぶうさんくさい。でも、暗号通貨というかブロックチェーンって技術的には面白そうなトピックだし、キャッチアップはしておきたいな。

というわけで、その昔、サトシ・ナカモトの原論文(PDF)とされているものを斜めに眺めてみたことがあります。以下、たぶんそのころにぼくが感じたであろうこと。

どうやら、ビットコインにおける「コイン」とは、取引の記録をつなげたものらしい。 ということは、そのコインが使われた取引の記録を、そのままコインとして使おうという発想か。 で、この論文の冒頭にあるのが、取引の連鎖としてのコインの構成図というわけね。 ブロック暗号化方式におけるブロックチェーンみたいだな、ああ、それで「ブロックチェーン」っていうのか。 しかし、原論文でその図が出てくるところには、「We define an electronic coin a chain of digital signatures」(電子コインとは、ディジタル署名の連鎖のことである)と書いてあるぞ。 このディジタル署名で、コインを使った人を特定しようというのだろうか。 分散されたタイムスタンプサーバで「Proof of Work」を計算し、その「証拠」をブロックに埋めることで、CPUパワーに基いた安全な取引が実現する? 何をいってるのかさっぱりわからないぞ。 ブロックの図の中に出てくる「nonce」が「証拠」のことなのかな……。

論文だからしょうがないかもなんだけど、だいたいこんな感じで、半分くらい読んだところで放置してました。こんな「ふわふわ」した概念を具体的にどうやって「通貨」として使えるように実装できるのか、そもそも、この論文のどのへんが画期的なのか、まったく想像つかないぞ!

PEAKSの永野さんから「暗号通貨の本をクラウドファンディングで出すことになったので編集を手伝ってほしい」という相談を受けたのは、そんなときのことでした(うそです、実際に論文を読んでみたのは4-5年前のこと)

PEAKSについては、『プロフェッショナルIPv6』と同時期にクラウドファンディングの技術書を始めたシンクロ改行ニシティというくらいの情報しか持っておらず、ただiOSとかAndroidとかの現場よりの内容が多い印象だったので、暗号通貨というテーマはかなり意外に感じたのを覚えています。それなのにぼくに編集依頼がくるということは、もしかしたらだいぶ固い感じの内容なのかなあと勝手に想像していました。

ところが、著者の濵津さんの原稿をはじめて目にして、肩透かしを受けることになります。原稿に対する第一印象は、「ラノベだこれ」

しかも、その時点で出来上がっている原稿の大半は、ぜんぜん暗号通貨っぽくない。ひたすらPythonでP2Pネットワークを作り始めているのです。確かに暗号通貨って分散ネットワーク上のアプリケーションだし、書名のとおり「ゼロから創る」んだろうけど、本の構成として正直これでいいのだろうか。わざわざ「創る」という表記になってるのも気になる。それに、対話形式の本文って、これまたかなり難易度が高い手法を選んだな……。

そんなことを思いつつ、まずは文章になっている情報を整理するつもりで読み始めて、1章と2章を読み終えたところで、この本が対話形式なのは単なる思いつきではなく完全に意図的だなと気づきました。これなら、「マンガでわかる」みたいな本と同じように、頭ごなしに概念から入るのがつらい人向けに最初の一歩から教師役が寄り添って説明していく本にできそう。そして暗号通貨というのは、数年前にぼく自身がぶちあたったように、

  • なぜそういう概念を導入したいのか
  • その概念はどういう技術に落とし込めるのか
  • それらを組み合わせて何ができるのか
が見えにくいテーマなのかもしれず、それならば対話形式はもってこいかもしれない。

とはいえ、対話形式って、ケレン味を感じさせることなく読ませるのが難しいんですよね。そもそも登場人物の役割分担を書き分けるのが難しい。生徒役がありえないほど高スキルな質問をしてしまう、みたいなことがないようにしないといけない。かといって、先生役がひたすら説明するのもうまくない。ぼくが最初に原稿を見たのは、ちょうどサポーター向けの最初のプレビューが始まっていたころだったのですが、そのへんの調整はまだまだ必要そうな状態に見えました。

そこで、まずは教師役の兄と生徒役の弟の口調を整理しつつ、弟のペルソナを「Pythonでコードはごりごり書けるけど技術の背景にある設計思想はまだ読み取れない学生」としつつ、それがぶれないように兄と弟のセリフを整理しました。兄の説明についても、飛躍を埋めるような調整を全体に入れました。ついでに、なぜ暗号通貨の本を読んでいるはずなのにP2Pネットワークを創らされているのか動機を明確にしたり、いま全体のうちどの部分を説明しているのか迷子にならないようにサブ見出しを適宜入れたり、そういう通常の編集も加えていきました。

ちょっと驚いたのは、ぼくの本文編集と並行して、hagino3000さんが全体にわたってPythonのコードをレビューされていたことです。これでは弟が凄腕のPythonistaになってしまうー、という危惧を感じないではなかったのですが、これは読者にとってはすごくうれしいことだと思いました。なるほどPEAKSではそういうところにちゃんとコストをかけているのか、という驚きでした。

最終的に完成した『ゼロから創る暗号通貨』という本、すでにクラウドファンディングで支援された方々の手元には届いているのですが、今日からPEAKSのサイトで一般発売も開始したようです。

ゼロから創る暗号通貨

ゼロから創る暗号通貨

実際に読むとわかりますが、この本では暗号通貨をやるのにP2Pネットワークから本気で作り始めます。それは、P2Pネットワークにおいて個々のノードがブロックチェーンを構成するという点が、リアルな通貨との交換可能性みたいな部分にとどまらず、暗号通貨の技術的な応用可能性が開けてくるところだからです。「土台となるP2Pネットワークから暗号通貨を自前で作ってみることで、ブロックチェーンを応用したまったく新しいサービスと未来を創る」ところまで意識できる内容になっているのが本書の魅力だと思います(それで書名は「作る」じゃなくて「創る」だったんだね)。もちろん、「著者の濵津さん自身が教師役となり、ブロックチェーンの「うさんくさくない」部分の全体がわかるように、読者をひっぱっていってくれる本」という点も魅力です。上記のリンク経由で本を買っていただけると私にキックバックがあるそうなので、暗号通貨のその先にあるブロックチェーンの応用が気になる方、濵津さんみたいな技術者になりたい方は、ぜひ!

っていうか、このブログ記事を書くのに、さっきサトシ・ナカモトの論文を読み返してみたんですよ。そしたら、たぶん『ゼロから創る暗号通貨』をひととおり読んだおかげで、するするわかる。ような気がする。