Neutrinoで働くブロックチェーンエンジニアのブログ

渋谷の専門特化コワークNeutrinoに入居してブロックチェーンエンジニアとして働いています。元丸の内。(Neutrino運営企業とは直接関係ありません)

ブロックチェーンエンジニアを目指す方へお勧めの技術書・サイト

最近、ブロックチェーンエンジニアを目指すためにどのようなスキルセットを身につければ良いかや、初心者向けの技術書執筆の話などを頂くことが増えてきました。

ブロックチェーン業界で働くという事に興味をもつエンジニアの方が増えてきたように感じます。

そこで、初めてブロックチェーンに触れる方の指針になればと思い、本記事を書きました。

猛者の方には物足りない点は多々あると思いますが、あくまで初学者向けというところで勘弁していただければと思います。

前置き

前提として、応用先によって身につける技術は異なる

以下記事では、ブロックチェーンエンジニアの生息場所を以下3つに分けました。

※最近では、企業に属さないOSSエンジニア、Dapps系エンジニアという括りも出てきていると思います。

  1. 仮想通貨取引所
  2. ICOを行ってサービスを開発するスタートアップ
  3. ブロックチェーン関連の新規事業部署、コンサル

www.blockchainengineer.tokyo

それぞれによって身につける技術の特性などは異なりますし、一般化は難しいと思います。

本記事ではどのような環境で仕事をするにしても、一般的に必要とされる知識について書いてみます。

どんな職場(チーム)でも、初めのハードルは「共通言語」

ブロックチェーンエンジニアとして企業で仕事に従事する場合、最低限どれくらいの技術レベルや知識が望ましいか」という質問を最近いただきました。

最低限というところを考えて、私がブロックチェーンの経験がない方をチームに迎え入れてまずハードルになるのは、ブロックチェーンの共通言語で話す」ところだと思います。

公開鍵暗号方式に始まり、ブロック高、ハッシュ値、マイニング、トランザクショントランザクション手数料、UTXOモデル、アカウントモデル、スマートコントラクト、コントラクトアドレス、イベントログ…

一つ一つ紐解いていくと難しくはないと思うのですが、ブロックチェーン特有の用語は非常に多いのです。

チームで資料を作ってノウハウ化していても、ブロックチェーンはじめての方が用語を覚えて手触り感を得るまでは、2~3ヶ月はかかってしまうと思います。

最良なのは公式ドキュメントだが、英語と技術用語のハードルも

じゃあ何が良いか、というとブロックチェーンの根本的な考えは非中央集権的、オープンである事です。

公式ドキュメント、githubが常に更新されていますので、これを追っていく。BitcoinならWhitepaperとBIP等を全て読めば完璧!

…となるのですが、当然全て英語、また猛者たちが技術用語を駆使して議論しているので全て追っていくのは大変です。

そこで、この記事ではまず初学者向けにお勧めの技術書を紹介していきます。

なお、ブロックチェーン毎にそれぞれ独自の仕様はあると思いますが、基本はBitcoinとEthereumの知識があれば幅広く対応しやすいと考えています。

ブロックチェーンの概要に加えて、以下3つの知識があれば色々なブロックチェーンに対応できると思います。そしてこれらはBitcoinとEthereumを学習すれば身につける事が可能です。

Bitcoin公式サイト(日本語) bitcoin.org

Bitcoinのソースコードgithubgithub.com

Ethereum公式サイト ethereum.org

Ethereumのソースコードgithubgithub.com

共通言語を会得するための本

基本知識は「Mastering Bitcoin」(ビットコインブロックチェーン)から

現時点で一番基礎を身につけられる技術書は、A・アントノプロス氏が著された原題「Mastering Bitcoin」(邦題:ビットコインブロックチェーン)になると思います。

Bitcoinと実装されているブロックチェーンの仕組みについて、トランザクション構造、公開鍵暗号方式、ウォレット方式などがコード付きで丁寧に解説されています。

ブロックチェーンの始まりはBitcoinで、LitecoinもDashもビットコインソースコードを基に作られています。Mastering Bitcoinで基礎となる技術要素を身につける事がまず第一歩だと考えています。

NTT出版より日本語訳が発売されています。

ビットコインとブロックチェーン:暗号通貨を支える技術

ビットコインとブロックチェーン:暗号通貨を支える技術

また、有志による日本語訳も無料PDFで公開されています。

Mastering Bitcoin 有志による日本語訳

アプリへの応用知識を得られる「ブロックチェーンアプリケーション開発の教科書」

2018年2月に発売されたこの本は、Bitcoinに限らず、Ethereum、日本語情報では詳しく書かれています。 日本語でEthereumのアプリケーションを開発するためのTruffleフレームワークについても書かれているのはこの本がはじめてかと思います。

ブロックチェーンアプリケーション開発の教科書

ブロックチェーンアプリケーション開発の教科書

手触り感を得るための本・サイト

上記の本で基礎用語がわかったら第一関門突破です。

ノード構築は手触り感を得るためのお手軽で基本アクション

書籍の読書と並行するとベターなのは、ノードを構築して、RPCを叩くなどをすると手触り感を得られると思います。 また、ブロックチェーンのチームに入る場合にもスムーズかと思います。

Bitcoinノード構築

https://qiita.com/Naomasa/items/5053a5d9c33ae040bed2qiita.com

Ethereumノード構築

www.blockchainengineer.tokyo

Ethereumのスマートコントラクトの手触り感は「はじめてのブロックチェーン・アプリケーション」で

Ethereum公式チュートリアルに書かれている内容とかなり近いと言われていますが、 gethの環境構築、仮想通貨発行コントラクト、ICOコントラクトについて書かれている本です。

なお、掲載コードは最低限のチュートリアルコントラクトです。実際にICOなどを行うには改善が必要ですのでご注意ください。

初版の発売時期は2017年8月ということからか、OpenZepplinなどコントラクトを実装する際に利用されるフレームワークの話は書かれていません。

また、最新バージョンのクライアントだと書籍掲載のままでは動かないコードもありますが、そこは試行錯誤して動かすのも良い勉強になります。

はじめてのブロックチェーン・アプリケーション Ethereumによるスマートコントラクト開発入門 (DEV Engineer's Books)

はじめてのブロックチェーン・アプリケーション Ethereumによるスマートコントラクト開発入門 (DEV Engineer's Books)

EthereumのSolidity文法は遊びながら学べる「Cryptozombies」

Cryptozombiesという、ゲームを作りながらSolidityを学べる無料サービスがあります。

こちらはSolidityのやや癖がある文法を遊びながら学べます。

途中のレッスンまで日本語モードがあり学びやすく、Solidity学習には大変お勧めです。

cryptozombies.io

概ね基礎用語がわかってきたら

情報収集は公式コンテンツのウォッチで

その後は、はじめに書いたように公式情報のWhitepaper、Wikigithub上で行われる改善提案を追って行くのが良いと思います。

BitcoinのWhitepaper

(日本語訳されたものもコインチェックのブログに掲載されていたのですが、一時的に見られないようです)

EthereumのWhitepaper(日本語版)

github.com

身に付けたいブロックチェーンの知識に傾倒していく

DashやZcashといったBitcoinを基にしている純粋通貨型でも独自の実装があるブロックチェーン

NEMやLISKといった独自プラットフォーム系ブロックチェーン

Hyperledgerやirohaといったプライベート系を構築できるブロックチェーンと色々独自仕様が存在します。

それらはドキュメント参照と手を動かしつつ両輪で学んで専門知識を身に付けて行くのが良いかと思います。