本書は、ビットコインとブロックチェーンをゼロから概念的に組み立てていきながら、その仕組みを深く理解するための解説書です。架空の会社内におけるトークンシステム構築に携わるストーリーを通じ、ゼロから徐々に追加する形で機能を積み上げることで、それぞれの機能の意味を深くはっきりと理解することができます。
技術者ではない人や、自分でゼロから作ってみる余裕のない人でも、ビットコインのようなデジタル通貨システムの設計の過程を追体験することができます。ある程度のコンピューターネットワークの知識があれば、プログラミング経験や数学の知識は不要です。
●「監訳者あとがき」より
本書『詳解 ビットコイン―ゼロから設計する過程で学ぶデジタル通貨システム』は、2019年にManning Publications社から刊行された、Kalle Rosenbaum著『Grokking Bitcoin』の全訳です。
私が、本書の監訳の依頼をいただいたとき、原著はまだ完成していませんでした。ですが、読ませていただいた未完の原稿を通して、本書でどのようにビットコインの技術を説明するのか、そのアイデアを知り、すぐにお引き受けすることを決めました。
本書では、ゼロからインクリメンタルに(徐々に追加する形で)機能を積み上げることで、何の変哲もないカフェのトークンシステムがビットコインに生まれ変わっていきます。この表現のアイデアはとてもすばらしく、読者を魅了するでしょう。同時に、これは技術を理解するために非常に適した表現方法だと言えます。私たち技術者は、まさにインクリメンタルにソフトウェアを設計するからです。ビットコインを発明した匿名の開発者サトシ・ナカモトが実際にこの順序で設計したかどうか(おそらくは異なるのですが)にかかわらず、インクリメンタルな説明では、それぞれの段階で追加される機能の意味がはっきりします。
物理学者の故リチャード・ファインマン博士は、黒板に“What I cannot create, I do not understand.”(自分で創れないとしたら、私は理解していない)という言葉を遺しました。そのすぐ下には“Know how to solve every problem that has been solved.”(今までに解かれたすべての問題の解き方を知れ)と書かれており、ファインマンが、これらの言葉を通して「どんな既存の理論的成果も自分でゼロから導けるようになれ。さもなければ本当には理解していないということだ」と伝えたかったことがわかります。
同じように、ゼロから自分で同様なソフトウェアを設計できないとすれば、その技術を本当に理解したとは言えないでしょう。私はブロックチェーンの(こともやる)研究者として、いくつかの独自の設計を発表していますが、そのことを通してさまざまな発見をし、理解を深めることができました。私自身、「自分で創れないとしたら、私は理解していない」という言葉の意味を身をもって知ったと思います。
本書では、技術者ではない人や、自分でゼロから作ってみる余裕のない人でも、ビットコインのようなデジタル通貨システムの設計の過程を追体験できます。ひとつひとつの課題を解決し、改ざんも検閲もできない仕組みとして創り上げていく、生き生きとしたストーリーを通して、誰にとってのどんな問題を解決するために、どんな仕組みの何を導入したのかが明確になります。
本書では、トークンシステムのビットコインへの改造が、社内の複数の開発者たちの手によって行われる様子が描かれていますが、現実のビットコインも、立ち起こる課題に対して多くの開発者たちがアイデアを出し合い、解決に貢献することにより成り立っています。テクノロジーが、科学(この場合コンピューターサイエンス)を応用するさまざまな人々の知恵の集積であることを、読者のみなさんは改めて知ることになるでしょう。
(中略)
ビットコインという技術の理解を出発点として、本書がプライバシー、検閲からの自由、民主主義、技術の在り方、そして広く人と社会について考えるきっかけになったとしたら、監訳者として望外の喜びです。
2020年3月 斉藤賢爾