今回はブロックチェーンプログラミングについて効率よく学習する方法を紹介したいと思います。ブロックチェーンは今後、様々な業種へ利用されることが期待されていて、ブロックチェーンシステムの本格的な開発が増えていくかと思います。
そのため、ブロックチェーンエンジニアを目指す人もより増えていきそうですね。
しかし、まだブロックチェーンのシステムを構築するにはどうすればよいかいまいち把握していない方も多いかと思います。
そこで今回はブロックチェーン開発に必要なプログラミング言語、ブロックチェーンプログラミングの効率的な学習方法を説明していきます。
Contents
ブロックチェーンプログラミングで何ができるか

ブロックチェーンエンジニアになって実際にどのような仕事があるのか、ブロックチェーンプログラミングで何ができるのかをまず把握しておきましょう。
現在、ブロックチェーンエンジニアには次のような仕事があります。
- 仮想通貨取引所の運営・開発
- ICOで資金調達を行うスタートアップ
- ブロックチェーンを活用した新規事業・コンサル事業
これらはいずれもブロックチェーンエンジニアと名乗ることができますが、エンジニアとしてそれぞれ違う技術を必要とします。
「仮想通貨取引所の運営・開発」は仮想通貨取引所のアプリケーション開発、フロントエンドやバックエンドなどブロックチェーン自体を構築する技術だけでなく、WEBアプリやネイティブアプリの開発技術も必要となります。
「ICOで資金調達を行うスタートアップ」はトークン開発を行うために、ブロックチェーン自体を作り上げるための技術がもっとも必要となります。
「ブロックチェーンを活用した新規事業・コンサル事業」は一からブロックチェーン自体を構築するための技術よりも、既に存在するブロックチェーンの基盤を利用したアプリケーションの開発や構築をする技術が必要になります。
ブロックチェーン開発に必要な言語は何か?

仮想通貨の種類によってブロックチェーン開発に使用されるプログラミング言語は異なります。
学習するべきブロックチェーンプログラミングは大きく分けて3つに分けられます。ひとつはビットコイン関連のシステム、2つ目にイーサリアムのスマートコントラクト開発、そして3つ目にプライベートブロックチェーンの開発があります。
ビットコインに使用されるプログラミング言語「C++」
ビットコイン関連のシステム開発をしたい場合は、ビットコイン自体が「C++」で構築されているので「C++」を身につけると良さそうです。
また、「C#」で独自ブロックチェーンを開発しているところもあります。仮想通貨取引所bitFlyerのオリジナル・ブロックチェーン「miyabi」も「C#」で構成されています。
また、ビットコインのようなブロックチェーンはPythonやRubyなどのスクリプト言語でも開発可能です。
イーサリアムに使われるスマートコントラクト開発するには「Solidity」
イーサリアムはスマートコントラクトを実装していて、ブロックチェーン上で契約内容の管理が必要になります。
「Solidity」は1つの言語だけで様々なプログラムを実装できます。DApps開発をしたい場合はこの「Solidity」を身につけるといいでしょう。
産業用ブロックチェーンを構築するには「Go言語」「Java」
IBMのオープンソースプロジェクト「Hyperledger Fabric」は産業用に特化されたプライベートブロックチェーン、コンソーシアムブロックチェーンの構築ができます。
「Go言語」か「Java」を身につけるとこのアプリケーションを構築することができます。
ブロックチェーン技術の知識を身につける

ブロックチェーンプログラミングを身につける前に事前知識が必要です。まずは本やネット記事などを参考にブロックチェーン技術について理解しましょう。
読むべきブロックチェーン技術関連の書籍
ゼロ知識ベースの方もいればある程度知識がある方もいると思います。なので各自の状況にあった書籍をこちらの記事で紹介していますのでそちらをご参考ください。
読むべきネット記事やホワイトペーパー
上のページには取り上げていないネット記事の方も難易度高めですがおすすめですので参考にしてみてください。
ビットコインのホワイトペーパーです。すべてはこのホワイトペーパーから始まりました。イーサリアムやネムなど関連したブロックチェーン技術のプロジェクトのもととなったビットコイン仕組みのすべてが書かれています。
BIPではビットコインの基本的な開発仕様がナンバリングされて定義されています。この内容を追えるようになってくると相当ビットコインに詳しいといえます。
日本語訳されたイーサリアムのホワイトペーパーです。イーサリアムを理解するのにビットコインの基本的な仕組みへの理解が前提となっています。
イーサリアムの基本的な開発仕様がまとまっています。ここまでくるとかなり理解が深まっていると思います。
ビットコイン研究所というサロンを運営しているビットコイナー大石さんのブログです。とてもわかりやすいトレンド情報を紹介しています。
ビットコイン研究所を運営しているビットコイナーの東さんのブログです。技術的な面やトレンド予想、海外レポートもあります。
d10n Labというサロンを運営しているビットコイナーの平野さんのブログです。平野さんの考察が入った記事が多く大変勉強になります。
ブロックチェーン・プログラミング仮想通貨入門の著者安土さんのブログです。ビットコインの最新技術を日本語でわかりやすく紹介しています。
最近更新されていないですがイーサリアムに関連した技術の仕組みをわかりやすく紹介してくれているブログです。
イーサリアム界隈で有名なindivさんのブログでこちらもイーサリアム関連の技術の仕組みをわかりやすく紹介しています。
知識をアウトプットする

本やネット記事でインプットしたあと、理解をより深めるためのアクションについて紹介します。
人に説明する
もっとも効率良く理解するためのアウトプット手段が「人に説明する」ことです。
技術的な説明をするとき、自分が完璧に理解していないと話すことはできませんよね。端的に話せない場合は自分に何かしらの理解が足りていないということになります。
また、人に説明するときは何かしらリターンがきて、ディスカッションになるとより自分が理解できてるかが明確にわかります。
上手く伝えられない場合、再び学び直しなんでも人に説明しトライするといいですね。
ブログを書く
人に説明したいけど、話す相手がなかなか見つからないというかたもいると思います。その場合はブログを書きましょう。
ブログを書くにはまとめる作業と執筆の作業に時間がかなり奪われ、効率はあまり良くないです。
執筆中に自分の理解が足りていないことに気づくことが多く、こちらも再び学び直すことで次に学習に繋げましょう。
DAppsを開発する

こちらもアウトプットの一種ですが、イーサリアムのスマートコントラクトに興味がある人は紹介した技術書などを参考にしながら実際に開発していくといいです。
いきなり開発は大変だと思うので参考になるサイトをいくつか紹介します。
スマートコントラクトを実装できる言語「Solidity」を学習できるサイトです。Progateのようなもので比較的学習しやすいです。「Solidity」を学習するときはよくこのサイトが紹介されますが個人的には普通に難しいと思います。分からない場合は、立ち止まらずどんどん進みましょう。
udemyのDApps開発ガイドです。英語ですがこれが初心者にはやさしいと思います。
公式ドキュメントです。基本はこれがもとですので読み込んでおきましょう。
スクールに通う
正直、自分で何から何までやるのは不安だし続かない。。。なんて方もいるかもしれません。開発していって詰んでしまうこともあると思います。
本気でブロックチェーンエンジニアになりたい方はtech boostがおすすめです。
tech boostでは、Webコースとイノベーティブコースがあり、イノベーティブコースではブロックチェーンを学習することができます。
しかし、僕がオススメしているのはtech boostのブロックチェーンエキスパートコースです。本格的に学習したい方はそちらの方がいいかと思います。
そちらは無料カウンセリングで確認できるかと思いますので気になる方は確認してみてください!
まとめ
ブロックチェーンは範囲が広いうえに変化の激しい業界です。すべての情報を追って開発もしてってなるとかなり大変です。
なので自分の好きな分野を追っていき、他の分野は雰囲気を知る程度でいいと思います。
この記事を見てくれた方がDApps開発の一歩になってくれればと思います。