Gunosy Blockchain Blog

Gunosyの開発メンバーが知見を共有するブログです。

ブロックチェーン技術を最速で理解するための勉強方法まとめ (エンジニア向け)

はじめに

こんにちは! 新規事業開発室の山口 (@yamarkz)です。

今年もゴールデンウィークに入りましたね! 5/1 5/2を休日にできれば今年は9連休になります。社会人の方からすると、まとまった休日を取ることができる貴重な時間です。旅行に行ったり、趣味に時間を使ったりと過ごし方は様々かと思います。

そんな1年の中でも貴重なまとまった休日が作れるGWに、何か新しいことを学びたい!という方向けにブロックチェーン技術の学び方を紹介していきたいと思います。

自身がこれまでブロックチェーン技術に関わってきた中で学んできた内容を惜しみなく紹介します!!

ブロックチェーン技術の勉強方法の流れ

まずはじめに、ブロックチェーン技術を最速で理解するための大まかな流れを紹介します。 一言に「勉強方法」と言っても様々な切り口、やり方が存在します。

いくつもの方法論がある中で、最も効率良く、最速でキャッチアップし理解していく方法としてオススメするのは 理論 => 実践 という流れです。

この流れをオススメする根拠は、弊社R&Dチームがこの流れでキャッチアップを行い、ブロックチェーン技術を最速で理解していったという実績があるからです。「最速」の定義にもよるかと思いますが、全く無知の状況からチームが立ち上がり、そこから大凡半年でブロックチェーン技術のかなりコアな部分に踏み込んだ議論ができるようになっているという経験があります。なので、理論 => 実践という流れでキャッチアップすることをオススメします。

実践からの流れで行くと、Dappsをとりあえず作ってみて、作っている中で気づきや、つまづいた部分から仕組みの理論を学んでいくという方法もあります。確かにこの流れでも理解は進みますが、仕組みの背景や、他の仕組みとの関係性への理解に時間がかかり、結果理解が追いつかないという状況になります。(自分の経験上の話です。。。)

ブロックチェーン技術は、最初に時間をかけてでも基本的な仕組みと理論を理解できれば、あとは指数関数的に理解の速度が上がって行きます。

f:id:yamarkz:20180428145755p:plain:w400

それはなぜかというと、現在のブロックチェーンに関連する様々なプロジェクトの基本的な仕組みは同じだからです。基本的な仕組みとは、(暗号化理論 / トランザクション / ブロックのデータ構造 / チェーンの繋がれ方 / コンセンサスアルゴリズム / ハッシュ / マイニング / P2P通信 / ネットワーク / スケーリング問題 / 匿名化技術 / セカンドレイヤー / コントラクト / トークン etc...) で、これらの仕組みに対するアプローチはオリジナル要素が加えられていたりもしますが、大枠で見ると似たアプローチとなっています。

これらの理由から、理論をまず正確に理解し、そこから何か新しプロダクトやプロトコルを開発していくというのが最速で進む方法だと思っています。

次に、より具体的にどういったもので理論を理解するのが良いのか紹介していきます。

理論を理解するためのインプット材料

書籍

理論を理解する上でオススメの書籍を紹介していきます。 紹介する順 = 読んで行くと良い順番となっているので、0知識ベースの方は上から順に書籍を読んで理解を進めて行くことをオススメします。

※ 個人的にBitcoinとEthereumに関連したR&Dを行なっているため、それらに関連した書籍を紹介します。

仮想通貨ウォレットを開発する Ginco CEO 森川さんの本です。書店に行けば様々なブロックチェーン技術の入門書が存在しますが、中でも最も本質的で、かつシンプルにブロックチェーンを紹介している本です。そもそも、ブロックチェーンとは何なのか? をまず理解したい方はこの本を読みましょう。

BitcoinのWhitePaperです。このWhitePaperからBitcoinは生まれました。現在ブロックチェーン技術を用いた最も成功したプロジェクトであり、関連したブロックチェーン技術を用いたプロジェクト (Ethereum / NEM / Zcash / Mona) の基本を作ったのがBitcoinの仕組みです。(チーム内での必読書です)

DMM.com スマートコントラクト事業部の篠原さん加嵜さんの本です。ブロックチェーン技術の過去、現在、未来の話がわかりやすく紹介されています。 重要な内容とそうではない箇所にしっかり濃淡があり、わかりやすい図を交えて仕組みを紹介してくれているので、非技術者の方でも、読むことをおすすめします。 (チーム内での必読書です)

後半Ethereumの仕組みについて触れられているので、Ethereumを知りたい方は読むべき一冊です。

smacon.dmm.com

Mastering Bitcoin と呼ばれる本の日本語訳で技術本の中でもバイブルと呼べる一冊です。BitcoinのWhitePaper上で紹介された仕組みをよりわかりやすく詳解に紹介されています。 この本に書かれている内容を理解し、人に説明できるようになればブロックチェーン技術の基本は理解できたと言えると思います。(チーム内での必読書です)

Bitcoinはオープンソースプロジェクトで現在も改善の開発が進められており、仕組みの中ではリリース当初から大きく改善が加えられているものもあります。 改善が加えられていく中で、上記で紹介したMastering Bitcoinでは触れられていないが重要な仕組みが数多く存在してきています。そんな最新の仕組みまで網羅的にわかりやすく紹介されているのがこの本です。

Bitcoinの基本的な仕組みが紹介されており、定義されています。基本的な開発仕様はこのBIP上で定義されており、この内容を追えるようになっていると相当Bitcoinに詳しいと言えます。

分散型アプリケーションプラットフォームを目指すEthereumのWhitePaperで、日本語訳されたものがGithubで公開されています。ぱっと見でわかる通り、このWhitePaper内でも前半でまずBitcoinの仕組みが紹介しており、Ethereumを理解するのにBitcoinの基本的な仕組みへの理解が前提となっていることがわかります。 主要なブロックチェーンプロジェクトはBitcoinの仕組みを踏襲した派生系であることが多いので、Bitcoinの仕組みを理解する = ブロックチェーン技術の基本を理解するということになります。なので、仮にEthereumに興味があったとしてもまずBitcoinの仕組みを理解することが理解を早めると個人的には思っています。

Ethereumの基本仕様がまとまっています。このあたりを読み始められるというレベルになればかなり理解が深くなっていると思います。 わかりやすい英語で丁寧にまとまっているので気になった仕組みがあれば読み漁ってみることをオススメします。

Ethereumの研究開発について議論している掲示板です。実際にコア開発を行なっているVitalikなどが掲示板で投稿をしていたりします。 かなりレベルの高い内容が多いので、ここまで理解できていればEthereum Researcherと名乗れるでしょう。

ブログやネット記事

f:id:yamarkz:20180504110522p:plain:w400

書籍だけでなく、ネットのブログ記事も活用し理解を早めます。

このブログです。なるべくわかりやすさを大事にして技術を紹介しています。感想などお待ちしてます。はてなブックマークつけてくれると嬉しいです。

ハウインターナショナルの安土さんのブログです。安土さんは先ほど紹介した、ブロックチェーン・プログラミング 仮想通貨入門 の著者の方です。Bitcoinの最新の技術仕様を日本語でわかりやすく紹介しています。安土さんは日本でトップクラスで技術的に詳しい方だと思います。このブログ記事の内容が理解できればBitcoinerと名乗れますね。

Solidity開発関連で多くの知見が紹介されているブログです。ブログ主でもあるNakajoさんは技術的な質問すると結構な確率で正確な回答が返ってくるので界隈ではイチローと呼ばれている方です。

日本で有名なBitcoinerである大石さんのブログです。とてもわかりやすくトレンドな情報を紹介してくれます。大石さんはビットコイン研究所というサロンもやっています。

日本で有名なBitcoinerである東さんのブログです。海外レポートなどもあり、面白いです。東さんもビットコイン研究所を運営されています。

日本で有名なBitcoinerである平野さんのブログです。主に考察系の記事が多いのですが、その内容がかなり筋の言い話が多く勉強になります。

日本で最も有名で、かつ質の高い記事を配信しているニュースサイトです。ビットコインに限らず、Ethereum、投資、VC、海外事情などさまざまな内容が紹介されます。

Ethereum界隈で有名なOsukeさんのブログで、Ethereumに関連した技術の仕組みをわかりやすく紹介しています。いつもお世話になってます。

Ethereum界隈で有名なindivさんのブログで、こちらもEthereumに関連した技術の仕組みをわかりやすく紹介しています。毎週出来事をまとめて紹介する週次レポート記事もあり、いつもお世話になってます。

少し古いですが、昨年12月のAdvent Calendarです。Ethereumの多くの知見がまとまっています。

ブロックチェーンに限らないメディアですが、ブロックチェーンの仕組みをわかりやすく紹介している記事であったり、弊社CTO松本のインタビュー記事などもあるのでおすすめです

Ethereum界隈で情報通の墨汁うまいさんが運営するブログです。ブログ内容ももちろん素晴らしいのですが、墨汁さんのTwitterもフォローすることをおすすめします。 墨汁さんはEthereumの海外情報をいち早くキャッチし、日本語速報としてアナウンスしてくださっています。いつもお世話になってます。

East Venturesでアソシエイトを務めるオビさんのブログです。オビさんはブロックチェーンに精通したVCで世界中を飛び周りながら情報発信をされています。 バンコクで開かれたEthereumのMeetup参加記事などは一読する価値ありです。こちら

Ethereum の公式ブログです。とても面白い記事がたくさんあるので、Ethereumの基本的な仕組みが理解できたら一読することをおすすめします。 Vlad Zamfireさん執筆、Proof of Stake Casper 誕生の歴史が綴られた記事が面白いのでオススメです。こちら

海外仮想通貨取引所であるBitMEXのResearch記事です。どの記事も素晴らしい内容で読むことをオススメします。日本語記事もあります。 「なぜ中国が仮想通貨のマイニングにおいて支配的な地位を気づけたのか?」を考察する記事がとても面白いのでオススメです。こちら

スライド

書籍や、ブログだけでなく勉強会でのプレゼンスライドからも学ぶことができます。

トークンの概要と開発観点から見たICO / @yamarkz

speakerdeck.com

Learning Plasma from plasma-mvp / @y_matsuwitter

speakerdeck.com

Plasma を理解するための Ethereum Protocol のキホン / @amachino

speakerdeck.com

Segwit / @yuzushioh

speakerdeck.com

その他スライドなどは、Speakerdeck or slideshareなどで検索して調べましょう!

Youtube 動画

f:id:yamarkz:20180505104654p:plain:w400

動画で学ぶこともできます。主要なプロジェクトはカンファレンスを世界各地で開催しており、その中で技術的トピックの紹介もされます。 代表的なのがEthereumで、Ethereumは毎年DEVCONと呼ばれる大きなカンファレンスを開催しています。 そこではVitalikやJoseph Poonなど主要な開発者が技術についてkeynoteを行います。このkeynoteの内容はYoutubeに上がっており、誰でも見ることができます。

以下、いくつかオススメの動画。

www.youtube.com

www.youtube.com

BitcoinではScaling Bitcoinというカンファレンスがあります。

www.youtube.com

サロン

サロンに入ることもオススメします。

f:id:yamarkz:20180504110638p:plain:w400

月額7,560円と学生などからするとちょっと高いかもしれませんが、日本でトップクラスのブロックチェーン技術に精通するBitcoinerの方々から良質な情報を得ることができます。

学校に通う

学校というものも存在します。

blockchaindaigakko.jp

Twitter

SNSは最新の情報を得ることができます、普段からブロックチェーン技術情報に触れる機会を多く持つことで学びを得る機会を増やせます。 特に、暗号通貨界隈はSNSでの個人の影響力が強いので、主要な方は欠かさずフォローすることをオススメします。

下記にフォローをおすすめする方々のTwitterを紹介しておきます。

随時更新して行きます。

コミュニティへの参加

2017年後半からブロックチェーン技術に関連したコミュニティも生まれてきました。 コミュニティに参加することで、カジュアルに技術的な質問ができたり、技術に対するディスカッションも行えるので積極的に参加することをオススメします。

blockchain-tokyo.connpass.com

qiita.com

理論を理解するための主要なインプット材料を手広く紹介しました。 これでもまだ紹介できていない材料もあるため、気になる方は直接聞いてください。

実践し、理解を深める

次に、実践です。インプットする材料は上記で紹介してきました。 これらのインプットから、具体的にどういったアクションをとって理解を深めて行くのか紹介します。

人に説明する

最も効率良く理解するためのアウトプットの手段が「説明」で、もっと端的に言うと「話す」ということです。人にわかりやすく技術の仕組みを説明することで自身の理解の整理に繋がります。説明する中で、話の表現に疑問を感じたり、端的に話せていないということは、何かしらの理解が足りていないということです。また、話を聞いている相手が理解できなかった内容は、実は自分自身も理解できていない場合が多いです。なので、人に説明することで自身が理解できているかの判断をすることができます。もし、上手く話せないのであれば再度学びなおせば良いだけなのでネガティブにならず、何度も人に説明することにトライしましょう。

ブログを書く

人に説明したいが、話す相手がなかなか見つからないという人はブログを書きましょう。ただ、ブログは文章にまとめるという作業に時間がかかるので効率は良くないです。執筆速度などは記事を書くごとに上がって行くので、徐々に慣れていきましょう。文章を書いている中で文章表現に疑問を感じた場合、自分自身の理解が足りていない場合が多いです、こちらも再度学びなおすという作業を行うことで理解を深めていけます。

Twitterで発信する

Twitterは140文字という制約があるので、その範囲で表現するのは難しいですが活用できます。小さなアウトプットでも人は記憶しやすくなるため、日々の学びであったり、気になったニュースに対する引用で自身の意見や考えを述べるなどして理解を加速させましょう。

Dapps開発

開発は実際に手を動かして見ないとわからないことがたくさんあります。ここで重要なのが自身の期待値コントロールです。いきなりオークションシステムをつくる!などというと難易度が高く挫折する可能性大です。確かに、オークンションのシステムだったり、トークン支払いシステムなどは夢がありやってみたいと思うのが普通です。しかし、挫折し途中で投げ出してしまうと勿体ないです。なるべく最初は簡単なプロダクト開発からスタートしましょう。例として、SoldiityでCRUDを表現する、ERC20トークン作ってみる。などです。

f:id:yamarkz:20180505105359p:plain:w400

実践的な学習ツールだと、LoomNetworkのCryptoZombiesがオススメです。

また、Udemyでオンラインの授業もあるようです。参考

プロトコル開発

実際にブロックチェーンを用いたプロトコル開発の部分です。ブロックチェーン技術者としての王道であり、最終的に目指すべき開発領域であると思っています。 残念ながら自分はまだコアなプロトコル開発に関わった経験がありません。理論では仕組みを理解しているものの、実際にコードベースで改善や機能追加に参画できていない状況です。今後目指して生きたい領域ではあるので、日々自身の技術力を向上させ精進あるのみだと思っています。

開発しながら学ぶという切り口から見ると、いきなり実際に動いているプロダクトのコア開発にJOINするのは難易度がかなり高いと思っています。 なので、まずは現在動いているプロダクトのソースコードを自分の得意な開発言語を用いて再発明してみるなどのアプローチが良いのかなぁと個人的には思っています。(bitcoinの特定の処理を他の言語で表現してみるなど。)

なにかオススメの方法があれば教えてください ><

理解を加速させるテクニック

最後に学びを加速させるテクニックです。ここの内容については以前LTで紹介した資料を参考にします。

speakerdeck.com

個人で学ぶよりも、3~4人でスクラムを組んで学ぶ方が、教え合うことができるので圧倒的に効率が良いです。 同僚、知人を巻き込んで一緒に学びを深めていきましょう。

最後に

ゴールデンウィークということで、勢いで本記事を書きました。。。!

ブロックチェーン/暗号通貨は投資として盛り上がっていますが、純粋な技術としても面白い仕組みがたくさんあります。

本記事を読んで、新たにブロックチェーン技術に関わるエンジニアの方が増えることを期待しています!!

宣伝

Gunosyではブロックチェーンを始めとしてスマートスピーカー、VR/ARと言った新規領域での研究・開発を進めており、メンバーを募集しています。

少し話を聞いてみたい!という方も歓迎していますので、下記のリンクからの応募お待ちしております。

www.wantedly.com

また弊社Gunosyでは、blockchain.tokyo を主催するなど、ブロックチェーンや仮想通貨に関する調査を行っています。

次回は来月に開催する予定です。イベントグループへメンバー登録をしていただくとイベント参加者募集の通知が来るので、こちらもぜひ登録してみてください。

blockchain-tokyo.connpass.com