Gaudiy Tech Blog

Gaudiyの技術、開発組織、カルチャーについてお伝えするブログです

未経験から1年でキャッチアップしたブロックチェーンの学習法をまとめてみた

f:id:gaudiy:20210902104804p:plain

こんにちは。エンタメ業界のDXを進めるブロックチェーンスタートアップ、Gaudiyで主にバックエンドを担当しているkei(@kei32bit)です。

自分がブロックチェーン技術をキャッチアップし始めたのは1年ほど前です。最初の半年間くらいは趣味として、その後はブロックチェーン企業に入って仕事でもブロックチェーンに触れるようになりました。

もちろん全部を理解しているわけではないですが、次に来そうなブロックチェーン技術を予測したり、自分なりにテーマ課題を立てて調べたりできるようになりました。

(以前投稿した記事) techblog.gaudiy.com

本記事では、この1年間で自分がどういう情報ソースを元にブロックチェーンを勉強したかを紹介したいと思います。

今からブロックチェーン技術をキャッチアップするエンジニアの方々にとって、自分のキャッチアップの方法がご参考になれば幸いです。

1. 良質なインプットで理論を固める

「ガベージイン・ガベージアウト」というシステム用語がありますが、キャッチアップが早くても吸収する情報の質が良くなければ、何も得られません。以下に載せた内容は比較的、中立的な資料を選んで挙げているのでぜひ一読してみてください。

1-1. 先駆者の考え方をトレースする

自分がブロックチェーンを学ぶ上で参考にした方は、Matsuo Shin'ichiro先生(@ShaneMatsuo)です。

米国の大学でクリプトの研究を進めていらっしゃる方です。とても中立的な立場から、ブロックチェーンが現代社会に必要な背景を説明されています。自分はまず、この方がパブリッシュしてる資料をとにかく読みました。数年前の記事でも示唆が溢れているので現在でも読む価値が高いです。

ブログ

連載記事

レポート

この辺りを一通り読み終わると、ブロックチェーン技術に対する意見がぼんやり言えるようになってくるかと思います。

1-2. 各研究機関が出してる資料を読み漁る

ブロックチェーン技術をキャッチアップするときは、背景知識も必要です。なぜブロックチェーンが有用なのかを理解するためにも、国や研究所が出すような包括的にリサーチされているドキュメントにふれるのが自分には合っていました。

DXからスマートシティ、セキュリティのtopicまで様々なジャンルを挙げてますが、根底にあるブロックチェーン技術の思想としては同じものです。異なる視点から見ると理解が深まるはずです。 ※比較的新しい2019年以降の資料を選んでいます。

1-3. ホワイトペーパーを読む

ホワイトペーパーとは企画書のようなものです。暗号資産は各々ホワイトペーパーを持っており、そこでは使用するプロトコルなどが明記されています。この企画書を読むことで、各々の暗号資産が生まれた背景や解決するための思想について学び取ることができます。

ブロックチェーンを理解する上で、ビットコインとイーサリアムのホワイトペーパーはマストで読んだほうが良いと思います。

・ビットコインのホワイトペーパー

https://bitcoin.org/bitcoin.pdf

・イーサリアムのホワイトペーパー

https://ethereum.org/en/whitepaper/

1-4. 書籍で勉強する

以下は自分が読んだ中でおすすめの書籍です。ブロックチェーン理論と実践だけでなく貨幣の歴史についても学ぶと、多くのトークンが生まれる理由についても分かるようになります

ただし、基本的にコントラクト周りの開発をする際はあまり書籍を参考にしないほうが良いです。(古い情報になるのでコードが動かないケースが多い。)後述しますが、手を動かしたい場合は、直接GitHubのtutorialを実施するのが良いです。

・ビットコインスタンダード

https://www.amazon.co.jp/dp/4623090299/www.amazon.co.jp

ビットコインがなぜデジタルキャッシュになれたかの理由を「貨幣の健全性」という定義に照らし合わせて解説した書籍です。 現在流通してる貨幣が不健全な理由についても触れています。既存貨幣が後続の貨幣に駆逐された歴史背景を学ぶと、なぜビットコインがデジタル・ゴールドと言われ、デジタルキャッシュとしての地位を築けたかが理解できると思います。

・ブロックチェーンの技術と革新

https://www.amazon.co.jp/dp/4315523852/www.amazon.co.jp

「信頼」をテーマに、その再定義と、実態のない対象に対してブロックチェーン技術がどう信頼を担保できるかを説明した書籍。 この本の中で度々引用されるコモンズ/ローレンス・レッシグ著という書籍も名著なのでこちらも一読の価値があります。 信頼の歴史を動画でキャッチアップしたい場合はTEDのこちらの動画がおすすめです。15分くらいで信頼の歴史がlocal=>international=>decentralizedに変化した背景が理解できます。

・SolidityとEthereumによる実践スマートコントラクト開発

https://www.amazon.co.jp/dp/4873119340www.amazon.co.jp

原著は2019年の出版ですが体系的によくまとまっています。実際に手を動かすパートについては、コードが若干古いので目を通すだけで良いと思います。(Truffleや周辺ツールの使い方を勉強する場合は、Webサイトに訪れてtutorialを見ながら手を動かして実践するのがベストです。)ただトランザクションの実行結果の各パラメータの見方や、トランザクション発行までの流れを言語化されているので、現在でも学べる部分は多いです。

参考: Truffleのチュートリアル

・マスタリングイーサリアム

https://www.amazon.co.jp/dp/4873118964/

ビットコインと比較しながらイーサリアムの特徴とその歴史について書かれた書籍です。イーサリアムの仕様だけでなく、なぜスマートコントラクトがすごいのかを理解するにあたって良書です。

・Token Economy: How the Web3 reinvents the Internet

https://www.amazon.co.jp/dp/B08BKSY3QZ

これだけ英語です。実はGithubにレポジトリが合ってそちらであれば無料で読めます。トークンエコノミーについて理解を深めたい場合はこの本が一番おすすめです。(翻訳かけて読むとかで全然OKです) Web2.0からWeb3.0へへ移行していく所から説明されてるのでブロックチェーンが必要になった背景理解が深まります。

github.com

1-5. より専門的な記事を読む

ここまで挙げた資料を読み込むと、たとえば「セキュアでノンカストディなウォレットを作るために必要な技術とは何か?」といった知識が必要な問いには答えられるようになります。

さらに「これからブロックチェーン技術がどう発展いくか?」といった未来を仮説付けるような問いを自ら立てるためには、専門家の記事が有用です。

この辺りの問題提起などの言語化には、以下のサイトが非常に勉強になったので紹介します。

・HashHub Research

https://hashhub-research.com/

プランはいくつかありますが、個人で入るなら9,990円/月のBasicプランがあります。 リサーチャーの方の所感や考えが記事に反映されており、新しい情報だけでなく示唆も得られます。

自分が気に入ってる記事のひとつに「論考・ロングタームで大局観を持ちながら、 暗号資産・ブロックチェーンに投資をする5つの原則」というものがあります。これは投資に興味がなくても、技術者として「アプリケーションとインフラ周りのサイクルがどう発展してきたか、ブロックチェーン業界に置き換えると現在はアプリケーション層が発展してるが今後インフラ層のプロダクトもきっと発展するだろう」という示唆が得られます。今後来るであろう技術を予測するという観点で非常に学びがありました。

hashhub-research.com

・Token Lab

https://blog.token-lab.org/

こちらも4980円/月の有料レポートですが、最新のブロックチェーン動向を追えます。ブロックチェーン系プロダクトの内容を詳細に記載するスタイルで読み応えがあるので、ある程度ブロックチェーン用語に慣れてから読み始めるのがおすすめです。

また、記事のコメント欄で有識者の方々が議論しているのでそれを見るのも学びがあります。

・イーサリアム創設者ヴィタリック氏のブログ

https://vitalik.ca/index.html

正直、結構難しいことを書いている(しかも英語で)ので、イーサリアムの知識がある程度ついてから、今後イーサリアムの開発はどうなっていくのか知りたくなったタイミングで読むのをおすすめします。詳細な数式モデルなどは分からなくてもイーサリアムのシステムの方向性は掴めると思います。

1-6. クリプト業界のレポートを読む

自分は定期的にCryptTimesさんとCoinGeckoさんのレポートを読んでいます。技術だけでなくブロックチェーンの流行りを理解するのに最適です。直近1年間のレポートと、個人的に有用だと思う技術レポートを貼っておきます。これを読んでおくだけで最近のブロックチェーン動向については抑えられるかなと思います。

※ CryptoTimesさんのレポート一覧はこちら

1-7. YouTubeで学ぶ

イラストでブロックチェーンが学べるコンテンツです。英語ですがイラスト見るだけでも楽しいのでぜひ息抜きにでも!

・Finematics

https://www.youtube.com/channel/UCh1ob28ceGdqohUnR7vBACA

個人的にLayer2 Scalingの動画とか分かりやすくておすすめです。

www.youtube.com

1-8. 議論されてる場所に行く

現在進行系で今後のブロックチェーン開発をどうしていくか、といった議論がされてる場所があります。 Improvement Proposalsと呼ばれており、日本語でいうと改善提案を行う場所です。

全部の議論を把握する必要はないのですが、スマートコントラクト開発をしていて「こんな機能ないのかな〜」と思いものは大体議論されてることが多いので、該当するブロックチェーンのImprovement Proposalsをググると見つかるかもしれません。

ここではイーサリアムというブロックチェーンと、NEARというブロックチェーンのImprovement Proposalsを紹介します。

・EIPs(Ethereum Improvement Proposals)

https://eips.ethereum.org/

・NEPs(NEAR Improvement Proposals)

https://gov.near.org/

1-9. ブロックチェーン技術の全体像を掴む

技術の全体感を把握するのに良いなと思って拾ってたtweetや記事を貼っておきます。どの技術も関連性があるので、迷ったらこのようなマップにもどってくると理解が深まります。

・ブロックチェーン技術のコンセプトマップ

f:id:kei32bit:20210901155006p:plain
ブロックチェーン技術のコンセプトマップ

medium.com

・Bitcoin周りの技術ネットワーク図

1-10. (番外編)人から直接教えてもらう

自分でキャッチアップもしましたが、実際にブロックチェーン業界に入って周りの方々に教えてもらうことのほうが実りがあるものが多かったです。 最近Meetyが流行っていますが、「ブロックチェーン」というワードで検索をかけるとたくさんの面談が出てきます。興味のある業界や興味のあるアプリケーションがあったら、直接話を聞きに行くのが一番だと思います。もし今からブロックチェーンをキャッチアップするなら自分がやるだろうなという方法なので挙げました。

f:id:kei32bit:20210901155649p:plain
Meetyで「ブロックチェーン」というワードでの検索結果

2. 実践してみる

良質なインプットのあとは、実践です。ブロックチェーンの開発に着手する際は、できる限り新しく(直近1ヶ月にcommitがあるなど)、githubレポジトリにあるものを動かしながら学ぶのが良いと思います。

以下のような、最新のHow To Learn記事を参考にすると良いと思います。イーサリアムだとSolidityという言語を使いますが、基本的に普通のプログラミング言語と変わりません。

medium.com

また、イーサリアムとは別のブロックチェーンになりますが、Rustでスマートコントラクトを書きたい場合は、NEARというブロックチェーンもおすすめです。チュートリアルが充実しており、スマートコントラクトをデプロイするところまで実施できるドキュメントがあるのでこちらも紹介します。

learnnear.club

examples.near.org

3. おわりに

ブロックチェーン界隈は次々に新しいトレンドやプロダクトが生まれるので、追いかけ続けるのは正直言って困難だなと思います。

ただ、自分なりのキャッチアップの仕組みを整えておくと、1ヶ月ほどブロックチェーン業界から離れていても割とすぐにもどってこれます。必要なのはブロックチェーンの知識量ではなく、キャッチアップの速度をいかに早めるかです。

もし本記事を読んで少しでもブロックチェーンに興味を持っていただいた方は自分もmeetyやってるので声かけていただけると嬉しいです! 「ブロックチェーン技術を事業に結びつけてどうマネタイズするの?」など事業目線での疑問にもお答えします。

meety.net

また、Gaudiyではブロックチェーン以外の技術ももちろん使ってますので、こちらの記事をご参考ください!

techblog.gaudiy.com