レビュー
ブロックチェーンに興味が湧いたら手を動かすべし。CryptoZombiesでEthereumのDAppsを学ぼう!
8歳児でもSolidityを習得できる(?)ほど簡単な無料のDApps学習キット
2019年2月20日 13:32
ブロックチェーンに興味を持った人は最初に何をするだろうか?多くの人はインターネットを駆使して、仮想通貨とは何か、どういうメリットがあるのか、何に利用されているのか、といったことを調べ、何らかの納得を得たことだろう。ブロックチェーンをある程度理解した初学者が、その次に取り組むべきこととして、実際に手を動かしてブロックチェーンに触れてみることを挙げたい。
Ethereumでは、DApps開発者への学習支援の取り組みとして、学習者のレベルに応じたさまざまな学習キットが無償で提供されている。今回紹介するのは、Loom Network社が開発する「CryptoZombies」というWebベースのEthereumのDApps学習キット。プログラミングを全く触ったことがない初心者をも対象としており、テキストは日本語を含む9言語に対応している。
Ethereumは、ワールドコンピュータとも呼ばれるように、スマートコントラクトという仕組みを介してさまざまな用途に利用することが可能だ。ブロックチェーン上に仮想マシンEVM(Ethereum Virtual Machine)というプログラム実行環境を有し、ここに命令を与えることで任意のルールに従ったシステムを実現している。
では、どのようにEVMに命令を与えるのか。現在Ethereumのスマートコントラクト開発に利用されている主なプログラミング言語は「Solidity」だ。Solidityで書いたコードをコンパイルすることで、EVMが扱う機械言語として命令を与えることができる。SolidityはJavaScriptに似た構文の形式を取るため、プログラミングの初学者にも習得しやすいという特長を持つ。
CryptoZombiesでは、Solidityの構文の書き方を一から習得できる。現在公開されているDApps学習キットの中では、おそらく最も入門者向けではないだろうか。同社のリリース内では8歳児がプログラミング入門としてCryptoZombiesのレッスンを進める様子が紹介されている。レッスンはステップ形式で、レッスンごとに数行のコードを実際に書いて進めていくこととなる。初心者向けのコースは、お約束のHelloWorldからスタートし、状態変数や構造体と配列、関数の書き方といった、多くのプログラミングに共通する基礎的な部分を学んでいく。
インターフェースについて簡単に説明すると、まずは左のペインに目を通し、各ステップで学ぶことを理解する。文末までスクロールすると、「テストの実行」という項に課題が記されているはずだ。右ペインには緑色のコメントアウトで、コードを書き込むべき場所が指示されているので、指示された仕様どおりにコードを考えて書き込む。作業を終えて「答え合わせ」を押せば、間違いがある場合には該当箇所が赤く表示されるので、適宜修正を行っていく。どうしても分からなければ解答を表示することも可能だ。
初級編冒頭のレッスンはプログラミングの経験がない人向けのものとなっており、他の言語を学んだ人であれば課題だけを見てすいすい解き進めていくことができるだろう。2つ目のレッスンではJavaScriptに共通するオブジェクト指向的なところを抑えながら、ブロックチェーンならではの要素も絡めていく。
初級編では5つのレッスンで、Solidityの概要を理解することができる。少し発展的な内容として、HTMLとJavaScript、JQueryの習得者向けにDAppsを活用したフロントエンドの作り方を学ぶレッスンも追加されている。さらには、ゲーム開発への応用編、ERC721xのマルチファンジブルトークンを学ぶ中級編といった発展的なコースも導入部が公開されており、随時展開を進めていくとのこと。DAppsのサイドチェーンへのデプロイ方法や、Plasmaの使い方といったカリキュラムも計画としているという。
実際にレッスンを進めてみた感想としては、非常に分かりやすく簡単でありながらも、受講者が適度に達成感を味わいながら理解を進められるよう、工夫が凝らされていると感じた。ブロックチェーン入門としてはもちろん、初めてのプログラミング教材としても適している。また、ベースは英語版となるが、日本語訳も完璧と言っていいだろう。独特の言い回しで綴られているが、一般的なプログラミング教材と比較しても遜色ないレベルで分かりやすく仕上げられているのは正直驚いた。