イノベーション エンジニアブログ


株式会社イノベーションのエンジニアたちの技術系ブログです。ITトレンド・List Finderの開発をベースに、業務外での技術研究などもブログとして発信していってます!


このエントリーをはてなブックマークに追加

CryptoZombiesで、イーサリアムのスマートコントラクト開発を学ぶ

こんにちは!
いやいやいや〜暑いですね〜
まだ4月なのに、溶けそうです。
矢ヶ崎です。

新しいことをちゃんと学ぼう!

以前、イーサリアムのスマートコントラクトを利用して、社内通貨の「いのコイン」を作ってみるという記事を書きました。
まだ、社内での運用をはじめられてはいないのですが、社内で自然に新しい技術に触れる機会をどんどん作って行こうと思います。

やはり新しい技術は、まだ一般的になっていない段階では非常に敷居が高く感じます。
日本語での情報量が少なかったり、日本語でもめっちゃ難しく書いてあったりで、ちょっと興味がある人ではなかなかとっつきにくい場合が多いかと思います。

そこで!

とっつきやすくするために、
・自然と触れる環境を作る
・わかりやすい言葉で説明する
などを社内では意識しているわけです。

素敵なサイトがあった!

とある筋でお聞きして、イーサリアムのスマートコントラクト開発が学びやすいサイトがあるとか。

で、見てみました!

それが、 CryptoZombies です!

CryptoZombiesとは?

正式な説明はサイトをみたいただくとして、今回のこのサイトを使わせていただく目的は、
・イーサリアムのスマートコントラクト開発の敷居を下げて学ぶ一歩を踏み出す!
なのですが、それにぴったりです!

DAppと呼ばれる、スマートコントラクトと連携したアプリケーションの開発方法を、やさしく学べるようになっています。

どうやって学んでいくのか?

CryptoZombiesという「ゾンビを掛け合わせて生み出していくゲーム」のようなものを作成していきます。
各レッスンで、ちょっとづつちょっとづつ、自分で実装していくのですが、
そこで、スマートコントラクトの特徴や、スマートコントラクトを実装するための言語のひとつであるSolidityを学んだりしながら、
問題を解いていく形式で実装して進めていきます。

ここ大事ポイントなのですが、日本語でも学べます!!!

CryptoZombiesLesson このような感じで、画面の半分が解説と問題、右半分がコードエディタで実際に書いていきます。

社内で勉強会をしてみました

自分がやってみたのはもちろんのことですが、
社内のエンジニアを集めて、「CryptoZombiesを使ったスマートコントラクト開発入門」という勉強会をやってみました。

1時間強という短い時間でしたが、Solidityをまったく知らない人たちでも、
ほとんどの人が、レッスン1をクリア出来ました!

スマートコントラクト開発の特徴の抜粋

CryptoZombiesを実際にやっていただくのがよいのですが、CryptoZombiesで学べるスマートコントラクト開発の特徴の抜粋をしたためておきます。
表現的に正確ではない書き方の部分もあるかもしれませんが、ニュアンスをお伝えするのを中心にお送りいたします。

状態変数に値を代入するだけで、ブロックチェーンに書かれる

一見ふつうのクラス変数に値を代入するだけで、もう二度と変更できない情報として、変数の値がブロックチェーンに書き込まれます。
当然、変数の値の変更は可能ですが、変わった記録がされていき、その記録は二度と変更できません!

一度デプロイしたプログラム(コントラクト)は、二度と変更できない

上記変数と同じく、プログラムも一度デプロイしたら二度と変更できません。
たとえ、重大なバグがあったとしても、二度と変更できません!漢らしい!
変更してデプロイしたプログラムは、別物として並行で動作するものになります。

プログラムを動作させるたびにお金がかかる

ブロックチェーンに書く動作など、自分のコンピュータリソースだけでは済まないコードを実行するときには、「実行者」のお金がかかります。
そのため、実行する人になるべく負担を与えないように、お金がかかりづらいコードを実装する意識をする必要があります。
メモリが少ない時代にプログラミングしていた方は、メモリをいかに節約するかというコードを書いていたかと思いますが、ちょっとその感覚に似て懐かしさを感じます!

お金をもらう関数が作れる!

さすがイーサリアム!お金(イーサ)をもらえる関数が作成できる!ドキドキ!

セキュリティ超大事

スマートコントラクトに限った話ではないですが、セキュリティを意識してコードを書くのが超大事です!
特に、上述のようにお金をもらったり、貯めたりできますし、プログラムは二度と変更できないので、
もし、セキュリティ的に深刻なバグなどを埋め込んでしまうと大変なことになります・・・

と、まだまだいろいろありますが、このくらいにしておきます。
ぜひ、CryptoZombiesをやってみていただければと思います。

学びやすさって、ほんと大事。

もはや、こんな簡単にこんなすごい物が学べちゃう世の中、そりゃプログラミングも簡単かつ複雑になってくるわけですね。

これからも、学び続ける!

こちらからは以上です。

以上