2020.06.17 [水]

Solidityとは?開発ツールの比較も含め分かりやすく解説

 

暗号資産イーサリアムで使われている、スマートコントラクト開発言語「Solidity」を学びたい人のために、学習方法を徹底解説!開発環境やツールも合わせて紹介するので参考にしてください。

スマートコントラクト開発言語Solidityとは

Solidityとは簡単に説明すると「イーサリアムがブロックチェーンで使うスマートコントラクトを構築するために、独自に作ったプログラミング言語」です。

スマートコントラクトとは、人が介入しなくてもプログラムが自動的に契約を実行してくれるシステムのことで、工程を減らした事によるスピードの向上や、手数料を抑えるなどのメリットがあります。

イーサリアムの作ったSolidityは、他の多くのスマートコントラクトの開発にも使われており、暗号資産関係のアプリなどを開発する際には押さえておかないといけない言語だと言えます。

 

Solidityを学習する際の開発環境

それでは早速、学習するのに必要な開発環境の説明から行っていきます。Solidityを学習する、つまりイーサリアムのブロックチェーンを利用するにはクライアントアプリケーションというのを利用しなくてはいけません。

クライアントアプリケーションとは、ユーザーが業務に合わせて作成するアプリケーションプログラムのことで、それをインストールすることにより、クライアントアプリケーションとは、ユーザーが業務に合わせて作成するアプリケーションプログラムのことで、それをインストールすることにより、Ethereumネットワークを使うことができます。

クライアントアプリケーションにもさまざまな種類があるのですが、今最もおすすめしたいのが「Geth」というGoogleが開発した言語「Go」を使って作られているアプリケーションです。

現在最も使われているクライアントで、信頼性と実績の高いものとなっています。

 

Solidityを学習する際に必要なツール

続いてSolidityでスマートコントラクトを開発する際に必要になるツールを3つ紹介します。

Remix

Remixにはエディタが含まれているので、ブラウザ上でSolidityの実装テストが簡単に行えるのが特徴です。コンパイルと仮想環境でのテストを一挙に行うことができるので、とても使いやすくおすすめです。

Truffle

スマートコントラクトのコードのコンパイル・リンク・デプロイ・バイナリ管理ができる、総合開発管理フレームワークです。スマートコントラクトに基づいてJavascriptプロジェクトをビルドするときにはTruffleを使用し、そのデバッグツールにはRemixを使用するのがおすすめの方法です。

OpenZepplin

Ethereum上で安全なスマートコントラクトを実装するためのフレームワークです。非常に多くの機能を備えており、中でもOwnableコントラクトという機能が最も使われています。
Ownableコントラクトを使うと、コントラクトを作った人にしか実行できない関数を作ることができるので、スマートコントラクトの管理が容易になります。

 

Solidityの学習方法を紹介

では開発環境とツールのことも知れたので、いよいよ具体的な学習方法を説明していきます。

公式ドキュメントなどの体系的なインプットと合わせて、具体的なアプリケーションを動かし、コードリーディングをすると理解が深まります。

簡単に説明すると以下の5ステップです。

  1. 一連の流れを把握する
  2. スマートコントラクトの基礎理解
  3. Dappsの作成
  4. オリジナルDappsの開発
  5. 実装

ではこの5ステップを具体的に解説していきます。

ステップ1 まずは一連の流れを理解する為に「CRYPTOZOMBIES」をやりましょう。
「CRYPTO ZOMBIES」はSolidityの基礎からDapps作成までを学べるサイトで、かなり実践的な内容となっていますが、完璧な理解を求めるのではなく、全体像の把握を目標に学習しましょう。
実際に開発するときも、わからない箇所があると「CRYPTOZOMBIES」に戻り再度学習し直す事で大体の問題は解決する事ができます。

ステップ2 「CRYPTOZOMBIES」は全体理解には適していますが、スマートコントラクトを理解するにはもう少し深掘りして学習しなくてはいけません。
「ブロックチェーンアプリケーション開発の教科書」という書籍が基礎理解には役に立ちます。イーサリアム上でスマートコントラクトを作成する上での基礎をイチから学ぶことができますので、本書を参考にしつつ手を動かして勉強しましょう。

ステップ3 ステップ1と2でスマートコントラクトの基礎は理解できたので、続いて実際にwebとスマートコントラクトを組み合わせてDappsを作成していきます。
そこで利用したいのが「Truffle」の「ETHEREUM PET SHOP」というチュートリアルです。
「ETHEREUM PET SHOP」は、スマートコントラクトの作成からWebとの連携を学習するためのチュートリアルです。スマートコントラクトの基礎ができていればスムーズに行う事ができると思います。

ステップ4 チュートリアルが終わったので、いよいよオリジナルのDappsを開発していきます。
すでにアイデアがある人は大丈夫ですが、いいアイデアが出ない方は既存のサービスとブロックチェーンとの組み合わせなどを考えてみましょう。

ステップ5 いよいよ実装していきます。先ほど紹介したツールを用いて実際に書き出し、実装していきましょう。

 

Solidityを学習してアプリケーション開発をしよう!

Solidityはスマートコントラクトの開発には欠かせない存在です。Solidityはスマートコントラクト開発に最も使われている言語です。Solidityをマスターすることで、広く応用を効かせることもできるので、ポイントを押さえて学習していきましょう。

 

この記事をシェア