プログラミング

ゲーム感覚で楽しみながらスマートコントラクト開発を学べるサービス3選

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

ゲーム感覚で楽しみながらスマートコントラクト開発を学べるサービス3選

arrow_drop_down 目次

はじめに

注意:この記事で紹介するサービスはイーサリアムのスマートコントラクト開発の経験がある方を対象としています。

皆さんはイーサリアムのスマートコントラクトの開発をどのように学んでいますか?

CryptoZombiesをやったり本を読んだりしてSolidityをざっくり学び、RemixでERC20のサンプルコードをデプロイしてみるなどした人は、これからどんな方法でスマートコントラクト開発の理解を深めていこうかと考えていると思います。

そこで今回はパズルを解いたりゲームをプレイする感覚で楽しみながらスマートコントラクトの開発やセキュリティ問題を学ぶことができる無料のサービスをいくつか紹介します。

Capture the Ether

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ポイントで、全チャレンジの中でも難易度の高い問題です。ぜひ実際にやってみてください。

Ethernaut

URL:https://ethernaut.openzeppelin.com/

Ethernautはスマートコントラクトのライブラリで有名なOpenZeppelinのチームが提供しているサービスです。

こちらはCapture the Etherと比べてより多くの項目に関するチャレンジがあり、最も有名なスマートコントラクトの脆弱性であるリエントランシーに関する項目もあります。

EthernautはCapture the Etherとは異なり、Remixを使うのではなくブラウザの開発者ツールのコンソールを使ってプレイします。

Security Innovation Blockchain CTF

URL:https://blockchain-ctf.securityinnovation.com/

このサービスも上記の2つと同様にチャレンジを進めていく形式の学習ゲームです。

各チャレンジのスマートコントラクトには脆弱性があり、プレイヤーはその脆弱性を突いてETHを盗むことがゴールです。

このサービスの特徴は、現実にありがちなスマートコントラクトのユースケースと開発者がやってしまいがちな脆弱性をカバーしているところで、攻撃者の視点に立ってセキュアなスマートコントラクト開発を学ぶことができるでしょう。

注意点

上記の4つのサービスをプレイする上でいくつか注意点があります。

1. 英語

まず、このサービスは全て英語で書かれています。英語を読むのが得意でない人はGoogle翻訳のブラウザ拡張機能などで翻訳しながら解くことをお勧めします。

2. Ropsten ETH

次に各チャレンジを解くためにRopstenテストネット用のETHが必要です。Faucetなどで入手してから挑みましょう。

3. 承認待ち時間

全てのサービスがRopstenテストネットを利用しています。Ropstenはテストネットなので基本的には承認待ち時間はほとんどありませんが、ネットワークの状況によってはトランザクションを発生させるたびに数十秒から数分待つ必要がある場合があります。プレイしていて進まなくなったと思ったら、トランザクションがきちんと承認されているかどうかウォレットやEtherscanなどで確認してみてください。

4. 開発ツールなど

各サービスやチャレンジによっても異なりますが、基本的にIDEなどの開発者ツールやWeb3に対応したウォレットが必要になります。以下にいくつか必要な例を紹介します。

まとめ

皆さんはどのサービスが気になりましたか?

攻撃者の視点に立ってハッキングをする感覚で楽しみながらスマートコントラクト開発を学ぶという方法はモチベーションにも繋がります。

これからどんな方法で勉強していこうと考えていた人はぜひ試してみてはいかがでしょうか。

また、これを読んでやってみたいと思ったけどまだSolidityの基礎もよくわからないという人はCryptoZombiesなどで基礎を学ぶことをオススメします。

ちなみに弊社はスマートコントラクトを含むブロックチェーンアプリケーションの開発を学べるプログラミングスクールも運営していますので以下↓も読んでみて受講を検討してみてください。

【PR】自身の力でブロックチェーンアプリケーションを作ってみませんか?

BLOCKCHAIN Code Campとは

プログラミンング初心者からでもブロックチェーンアプリケーションを作ることができるオンライン完結型のプログラミングスクールです。現役のブロックチェーンエンジニアが1対1でメンターとなって、最短3ヶ月で、ブロックチェーンの概念や、ブロックチェーンアプリケーションを作れるようになれます。

現在無料相談会も実施しております。 少しでもご興味ある方は、こちらのサイトよりお問い合わせください。