プログラミング

【初心者向け】スマートコントラクトのセキュリティを高めるツールの紹介

スマートコントラクトを設計するときのセキュリティを高めるためのツールについてまとめてみました。

2019.09.13
【初心者向け】スマートコントラクトのセキュリティを高めるツールの紹介

arrow_drop_down 目次

はじめに 

スマートコントラクトを作成し何かサービス作りたいと思っている方は、セキュリティには気をつける必要があります。一度コードをデプロイすると、コード自体の変更が難しいため、本番環境へのデプロイ前には相当な準備が必要です。
 今回は、Openzeppelinと、Mythrilを使ったセキュリティを高めるライブラリを紹介していきます。雛形が用意させているので、利用できるものは可能な限り使用し万全な状態でデプロイしましょう。

Openzeppelin

Openzeppelinとは、スマートコントラクトのフォーマットを提供するライブラリ群です。Openzeppelinで公開されているコードは、コミュニティで精査されたコードであるため、それを用いることで安全なスマートコントラクトを作成することができます。


様々な実装をサポートするフレームワークが用意されており、充実した機能が付いているためインポートするたけで安全に使うことができます。

例えば、ERC20トークン、ERC721トークンだけでなく、ICOのクラウドセールや、返金、キャップ付きの機能などあります。

 スマートコントラクトはチューリング完全(理論上様々な設計をすることが可能)で自由度が高いです。しかし、自由度が高いということは、その分バグも起きる確率が高くなります。Openzeppelinは、フォーマットに沿って書くことで、不具合や抜け漏れなどの障害を抑えることが可能になります。

 詳しくご興味ある方は、openzeppelinのブログhttps://blog.openzeppelin.com/onward-with-ethereum-smart-contract-security-97a827e47702/で、セキュリティに関する具体的な設計方法が記載されているので、こちらを読んでみてください。

Mythril

Mythrilは、ConsenSysが提供するSolidity用のセキュリティ分析ツールです。コンパイル後のコードやSolidityのファイルから脆弱性を自動で検知してくれる画期的なツールとなっています。

Mythrilでできることは、

・Solidityのコード分析

・truffle などで build した compile 済みのスマートコントラクト (json 形式) の解析

・Ethereum に Deploy 済みのスマートコントラクトの解析

Mythrilの詳しいインストールとセットアップについては、次回の記事でご説明していきたいと思います。

まとめ

いかがでしたか?スマートコントラクトの開発には、相当なテストを実施し、攻撃が起き得るものと認識しましょう。openzeppelinとMythrilを活用しながら、セキュリティ的に穴がないか確認してみてはいかかでしょうか?

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

自身の手でブロックチェーンアプリケーションを作りたいと考えている方は、プログラミングスクールに通ってみてはいかかでしょうか?

  • ブロックチェーンを学んで、今までにない何か作ってみたい
  • 今のうちにブロックチェーンの概念を理解し、開発もできるようになっておきたい
  • プログラミング初心者だけどブロックチェーンアプリケーションを作ってみたい
  • 独学で本や記事を見ながら勉強したけど、途中で一度挫折してしまったためメンターをつけて学びたい

と感じてる方は、BLOCKCHAIN Code Campがおすすめです。

BLOCKCHAIN Code Campとは

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

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