国内でブロックチェーンに精通しているエンジニアが少ないことは依然として課題です。
独学ではブロックチェーンのエンジニアリングをどのように学べば良いのでしょうか。
これについて海外の良い記事を見つけましたので、要約をする形で紹介します。
ブロックチェーン開発者になるための10のステップという記事です。
Becoming a Blockchain Architect in 10 steps
https://hackernoon.com/becoming-a-blockchain-architect-in-10-steps-b5945701e9cd
ブロックチェーン開発者になるための10のステップ
以下のような内容です。
1.Pythonでブロックチェーンを実装する(20時間)
とても楽しい演習ですが、ブロックチェーンがデータベースとどう違うものなのかを理解するためには、データ構造のレベルでどのようにブロックチェーンが機能しているのか明解にしておくことが不可欠なため、楽しいだけでなくとても重要な演習です。
私は、データの構造と、ナンスを計算しブロック作成を行う実装をしました。
この段階ではコンセンサスアルゴリズムを実装する必要はありません。
2. クリプトゾンビ (8時間)
solidityのコードを書き始めるための素晴らしい導入であり、一番いい方法です。solidityはJavascriptに非常によく似た言語であるため、ミッションクリティカルなソフトをsolidityで書くことに疑問を持つ方もいるでしょう。
ミッションクリティカルとは
3. Remix (4時間)
Remixは素晴らしい統合開発環境(IDE)であり、バックエンドをがっつり勉強していく予定でJavascriptが苦でないあなたにはぴったりのものです。とても簡単にローカルで立ち上げたEthereumのチェーンに接続することもできます。
4. Ethereum crowdfund tutorial (4時間)
スマートコントラクトを用いて、トークンを作りクラウドセールを行うためのチュートリアル。少し雑なところもありますが、solidityのドキュメントを読みながら自分で勉強することができます。
5. ICOのホワイトペーパーを読む(8時間)
ブロックチェーンのユースケースやコミュニティで何が怒っているのかを理解するために、ブロックチェーンベースのアプリのホワイトペーパーを読みました。現実の課題を解決したい人、山のようなお金を欲しい人、資本主義を壊して革命を起こしたい人などがいることがわかりました。いくつか有用なプロジェクトがあることがわかりました。
6. solidityの最適な学習(4時間)
自分で書いたスマートコントラクトのコードは、後から変更できず、また世界に公開されます。将来、恥ずかしい思いをしないように、また自分のスマートコントラクトの利用者のお金を盗まれないように、最適なsolidityを行うことの重要性をあげておきます。
先ほどあげたクリプトゾンビにもセキュリティに関する良いアドバイスがあり、Openzeppelin(https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/audit/ZeppelinAudit.md)にも、consensys(https://consensys.github.io/smart-contract-best-practices/)にも有用で権威のあるドキュメントがあり参考になります。solidityスタイルガイド( https://solidity.readthedocs.io/en/v0.4.24/style-guide.html )を使いながら読み進めるといいでしょう。
7. Atom/Truffle/Ganache (4時間)
Remixとは別の、solidityの開発環境の組み合わせ。Remixは優秀ですが、より良いコードを書こうと思った場合は適切な開発環境が必要です。
(Truffleを使うことで、solidityのテストを行うことができます。Javascriptを使用する)
8. Unit tests for crowdfund (12時間)
Truffleは機能ごとにユニットのテストを行うことができ、それがTruffleを使う上での良いところです。ユニットのテストを行うことで、solidityについて多くのことを学ぶことができました。容易に開発のトレーニングができ、どういう実装が存在し、どうそれらが違うのか比較することができるようになります。
9. Parityのテスト環境を作る(12時間)
Ethereumは、現在において最も主要なブロックチェーンです。
このEthereumのクライアントの一つである Parityのテスト環境を構築することは、Ethereumを理解することに手助けになります。
以下は、PoAのParityの環境を構築するチュートリアルです。
https://wiki.parity.io/Demo-PoA-tutorial.html
10.他のブロックチェーンの実装方法について記事を読む(8時間)
様々なブロックチェーンがありますが、それらのブロックチェーンの違いは何を理解します。
Bitcoin、 Ethereum、 EOS.IO、 Hyperledger、 Corda,などのブロックチェーンは、私達がICOのホワイトペーパーで見るアプリケーションレイヤーで見るプロジェクトのインフラストラクチャーになっています。
これらの違いを学習することは、パブリックブロックチェーンとコンソーシアムチェーンの違い、プライバシーやファイナリティについて、トランザクションスピードのパフォーマンスが各コンセンサスアルゴリズムによってどのように異なってくるかを学習できます。
最後に
本記事の筆者は、ブロックチェーンは黎明期の技術であり、学習カーブは非常に短いとも述べています。
技術者がまだ少ないだけに業界で上級者になることは決して難しくないとも末尾で書かれています。
上級者がどの程度を表現するかについて異論がある人もいるだろうことと、上には限りなく優れた技術者が存在することを注釈した上で、これに関しては、一定の事実でしょう。
ブロックチェーン業界は黎明期であり、これから学習を始めることは遅くはないですし、タイミングとしては最適だと言えます。
関心を持たれた方は、上記の学習フローを参考にして、学んで見ると良いでしょう。
独学が難しいと感じる方に関しては、2ヶ月間でbitcoinとEthereumを網羅的に学習するブロックチェーンエンジニア集中講座( https://www.blockchain-edu.jp/engineer )もチェックしてみてください。
HashHubとフレセッツ株式会社と共同で開講しているプログラムです。
日本国内業界にブロックチェーンに精通するエンジニアが増えることを願っています。
お知らせ
■HashHubでは入居者募集中です!
HashHubは、ブロックチェーン業界で働いている人のためのコワーキングスペースを運営しています。ご利用をご検討の方は、下記のWEBサイトからお問い合わせください。また、最新情報はTwitterで発信中です。
HashHub:https://hashhub.tokyo/
Twitter:https://twitter.com/HashHub_Tokyo
■ブロックチェーンエンジニア集中講座開講中!
HashHubではブロックチェーンエンジニアを育成するための短期集中講座を開講しています。お申込み、詳細は下記のページをご覧ください。
ブロックチェーンエンジニア集中講座:https://www.blockchain-edu.jp/
■HashHubでは下記のポジションを積極採用中です!
・コミュニティマネージャー
・ブロックチェーン技術者・開発者
・ビジネスディベロップメント
詳細は下記Wantedlyのページをご覧ください。
Wantedly:https://www.wantedly.com/companies/hashhub/projects