最近、ブロックチェーンエンジニアを目指すためにどのようなスキルセットを身につければ良いかや、初心者向けの技術書執筆の話などを頂くことが増えてきました。
ブロックチェーン業界で働くという事に興味をもつエンジニアの方が増えてきたように感じます。
そこで、初めてブロックチェーンに触れる方の指針になればと思い、本記事を書きました。
猛者の方には物足りない点は多々あると思いますが、あくまで初学者向けというところで勘弁していただければと思います。
前置き
前提として、応用先によって身につける技術は異なる
以下記事では、ブロックチェーンエンジニアの生息場所を以下3つに分けました。
※最近では、企業に属さないOSSエンジニア、Dapps系エンジニアという括りも出てきていると思います。
それぞれによって身につける技術の特性などは異なりますし、一般化は難しいと思います。
本記事ではどのような環境で仕事をするにしても、一般的に必要とされる知識について書いてみます。
どんな職場(チーム)でも、初めのハードルは「共通言語」
「ブロックチェーンエンジニアとして企業で仕事に従事する場合、最低限どれくらいの技術レベルや知識が望ましいか」という質問を最近いただきました。
最低限というところを考えて、私がブロックチェーンの経験がない方をチームに迎え入れてまずハードルになるのは、「ブロックチェーンの共通言語で話す」ところだと思います。
公開鍵暗号方式に始まり、ブロック高、ハッシュ値、マイニング、トランザクション、トランザクション手数料、UTXOモデル、アカウントモデル、スマートコントラクト、コントラクトアドレス、イベントログ…
一つ一つ紐解いていくと難しくはないと思うのですが、ブロックチェーン特有の用語は非常に多いのです。
チームで資料を作ってノウハウ化していても、ブロックチェーンはじめての方が用語を覚えて手触り感を得るまでは、2~3ヶ月はかかってしまうと思います。
最良なのは公式ドキュメントだが、英語と技術用語のハードルも
じゃあ何が良いか、というとブロックチェーンの根本的な考えは非中央集権的、オープンである事です。
公式ドキュメント、githubが常に更新されていますので、これを追っていく。BitcoinならWhitepaperとBIP等を全て読めば完璧!
…となるのですが、当然全て英語、また猛者たちが技術用語を駆使して議論しているので全て追っていくのは大変です。
そこで、この記事ではまず初学者向けにお勧めの技術書を紹介していきます。
なお、ブロックチェーン毎にそれぞれ独自の仕様はあると思いますが、基本はBitcoinとEthereumの知識があれば幅広く対応しやすいと考えています。
ブロックチェーンの概要に加えて、以下3つの知識があれば色々なブロックチェーンに対応できると思います。そしてこれらはBitcoinとEthereumを学習すれば身につける事が可能です。
Bitcoin公式サイト(日本語) bitcoin.org
Bitcoinのソースコード(github) github.com
Ethereum公式サイト ethereum.org
Ethereumのソースコード(github) github.com
共通言語を会得するための本
基本知識は「Mastering Bitcoin」(ビットコインとブロックチェーン)から
現時点で一番基礎を身につけられる技術書は、A・アントノプロス氏が著された原題「Mastering Bitcoin」(邦題:ビットコインとブロックチェーン)になると思います。
Bitcoinと実装されているブロックチェーンの仕組みについて、トランザクション構造、公開鍵暗号方式、ウォレット方式などがコード付きで丁寧に解説されています。
ブロックチェーンの始まりはBitcoinで、LitecoinもDashもビットコインのソースコードを基に作られています。Mastering Bitcoinで基礎となる技術要素を身につける事がまず第一歩だと考えています。
NTT出版より日本語訳が発売されています。
- 作者: アンドレアス・M・アントノプロス,今井崇也,鳩貝淳一郎
- 出版社/メーカー: エヌティティ出版
- 発売日: 2016/07/14
- メディア: 大型本
- この商品を含むブログ (7件) を見る
また、有志による日本語訳も無料PDFで公開されています。
アプリへの応用知識を得られる「ブロックチェーンアプリケーション開発の教科書」
2018年2月に発売されたこの本は、Bitcoinに限らず、Ethereum、日本語情報では詳しく書かれています。 日本語でEthereumのアプリケーションを開発するためのTruffleフレームワークについても書かれているのはこの本がはじめてかと思います。
- 作者: 加嵜長門,篠原航,丸山弘詩
- 出版社/メーカー: マイナビ出版
- 発売日: 2018/02/01
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
手触り感を得るための本・サイト
上記の本で基礎用語がわかったら第一関門突破です。
ノード構築は手触り感を得るためのお手軽で基本アクション
書籍の読書と並行するとベターなのは、ノードを構築して、RPCを叩くなどをすると手触り感を得られると思います。 また、ブロックチェーンのチームに入る場合にもスムーズかと思います。
Bitcoinノード構築
https://qiita.com/Naomasa/items/5053a5d9c33ae040bed2qiita.com
Ethereumノード構築
Ethereumのスマートコントラクトの手触り感は「はじめてのブロックチェーン・アプリケーション」で
Ethereum公式チュートリアルに書かれている内容とかなり近いと言われていますが、 gethの環境構築、仮想通貨発行コントラクト、ICOのコントラクトについて書かれている本です。
なお、掲載コードは最低限のチュートリアルコントラクトです。実際にICOなどを行うには改善が必要ですのでご注意ください。
初版の発売時期は2017年8月ということからか、OpenZepplinなどコントラクトを実装する際に利用されるフレームワークの話は書かれていません。
また、最新バージョンのクライアントだと書籍掲載のままでは動かないコードもありますが、そこは試行錯誤して動かすのも良い勉強になります。
はじめてのブロックチェーン・アプリケーション Ethereumによるスマートコントラクト開発入門 (DEV Engineer's Books)
- 作者: 渡辺篤,松本雄太,西村祥一,清水俊也
- 出版社/メーカー: 翔泳社
- 発売日: 2017/08/03
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
EthereumのSolidity文法は遊びながら学べる「Cryptozombies」
Cryptozombiesという、ゲームを作りながらSolidityを学べる無料サービスがあります。
こちらはSolidityのやや癖がある文法を遊びながら学べます。
途中のレッスンまで日本語モードがあり学びやすく、Solidity学習には大変お勧めです。
概ね基礎用語がわかってきたら
情報収集は公式コンテンツのウォッチで
その後は、はじめに書いたように公式情報のWhitepaper、Wiki、github上で行われる改善提案を追って行くのが良いと思います。
(日本語訳されたものもコインチェックのブログに掲載されていたのですが、一時的に見られないようです)
EthereumのWhitepaper(日本語版)
身に付けたいブロックチェーンの知識に傾倒していく
DashやZcashといったBitcoinを基にしている純粋通貨型でも独自の実装があるブロックチェーン
NEMやLISKといった独自プラットフォーム系ブロックチェーン、
Hyperledgerやirohaといったプライベート系を構築できるブロックチェーンと色々独自仕様が存在します。
それらはドキュメント参照と手を動かしつつ両輪で学んで専門知識を身に付けて行くのが良いかと思います。