
この記事では、Solidityの基礎は学んだけどこれからどうやって理解を深めていこうと悩んでいる人にオススメの、楽しみながらスマートコントラクト開発を学べるサービスを紹介します。

注意:この記事で紹介するサービスはイーサリアムのスマートコントラクト開発の経験がある方を対象としています。
皆さんはイーサリアムのスマートコントラクトの開発をどのように学んでいますか?
CryptoZombiesをやったり本を読んだりしてSolidityをざっくり学び、RemixでERC20のサンプルコードをデプロイしてみるなどした人は、これからどんな方法でスマートコントラクト開発の理解を深めていこうかと考えていると思います。
そこで今回はパズルを解いたりゲームをプレイする感覚で楽しみながらスマートコントラクトの開発やセキュリティ問題を学ぶことができる無料のサービスをいくつか紹介します。
URL:https://capturetheether.com/
Capture the Etherは、全部で20のチャレンジが用意されており、各チャレンジをクリアするごとにポイントを獲得していきます。
各チャレンジでは用意されたスマートコントラクトをデプロイし、与えられた課題を解くという形式になっています。どのレベルにおいても、用意されたスマートコントラクトにisComplete()という関数があり、trueが返ってくればチャレンジクリアです。
チャレンジを一つ例として紹介します。
pragma solidity ^0.4.21; contract AccountTakeoverChallenge { address owner = 0x6B477781b0e68031109f21887e6B5afEAaEB002b; bool public isComplete; function authenticate() public { require(msg.sender == owner); isComplete = true; } }
このチャレンジは、イーサリアムのアカウントに関する理解を深めるカテゴリーの最終問題で、ownerのアカウントからトランザクションを送信できればクリアになります。ちなみにこのチャレンジは1500ポイントで、全チャレンジの中でも難易度の高い問題です。ぜひ実際にやってみてください。
URL:https://ethernaut.openzeppelin.com/
Ethernautはスマートコントラクトのライブラリで有名なOpenZeppelinのチームが提供しているサービスです。
こちらはCapture the Etherと比べてより多くの項目に関するチャレンジがあり、最も有名なスマートコントラクトの脆弱性であるリエントランシーに関する項目もあります。
EthernautはCapture the Etherとは異なり、Remixを使うのではなくブラウザの開発者ツールのコンソールを使ってプレイします。
URL:https://blockchain-ctf.securityinnovation.com/
このサービスも上記の2つと同様にチャレンジを進めていく形式の学習ゲームです。
各チャレンジのスマートコントラクトには脆弱性があり、プレイヤーはその脆弱性を突いてETHを盗むことがゴールです。
このサービスの特徴は、現実にありがちなスマートコントラクトのユースケースと開発者がやってしまいがちな脆弱性をカバーしているところで、攻撃者の視点に立ってセキュアなスマートコントラクト開発を学ぶことができるでしょう。
上記の4つのサービスをプレイする上でいくつか注意点があります。
まず、このサービスは全て英語で書かれています。英語を読むのが得意でない人はGoogle翻訳のブラウザ拡張機能などで翻訳しながら解くことをお勧めします。
次に各チャレンジを解くためにRopstenテストネット用のETHが必要です。Faucetなどで入手してから挑みましょう。
全てのサービスがRopstenテストネットを利用しています。Ropstenはテストネットなので基本的には承認待ち時間はほとんどありませんが、ネットワークの状況によってはトランザクションを発生させるたびに数十秒から数分待つ必要がある場合があります。プレイしていて進まなくなったと思ったら、トランザクションがきちんと承認されているかどうかウォレットやEtherscanなどで確認してみてください。
各サービスやチャレンジによっても異なりますが、基本的にIDEなどの開発者ツールやWeb3に対応したウォレットが必要になります。以下にいくつか必要な例を紹介します。
皆さんはどのサービスが気になりましたか?
攻撃者の視点に立ってハッキングをする感覚で楽しみながらスマートコントラクト開発を学ぶという方法はモチベーションにも繋がります。
これからどんな方法で勉強していこうと考えていた人はぜひ試してみてはいかがでしょうか。
また、これを読んでやってみたいと思ったけどまだSolidityの基礎もよくわからないという人はCryptoZombiesなどで基礎を学ぶことをオススメします。
ちなみに弊社はスマートコントラクトを含むブロックチェーンアプリケーションの開発を学べるプログラミングスクールも運営していますので以下↓も読んでみて受講を検討してみてください。
元記事はこちら↓
合わせて他の記事を読まれたい方はこちら↓
未経験からブロックチェーンエンジニアへ-BLOCKCHAIN Code Campとは↓
サプライチェーンにおけるブロックチェーンの活用事例9選↓
保険業界も注目?!スマートコントラクトのユースケースまとめ↓










