Solidityで書かれたコントラクトを簡単に可視化できるツールが便利

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る
         

はじめに

実用的なスマートコントラクトを実装しようとすると、セキュリティーリスクが大きな課題です。

作成者の意図しないバグで取り返しのつかない大きな損害を引き起こしてしまう可能性もあります。

今回はSolidityで書かれたコントラクトを簡単に可視化して、脆弱性が無いかどうかを直感的に判断するのに役立つツールを紹介します。

solgraph

動作環境

  • macOS High Sierra 10.13.3
  • solgraph 0.2.6
  • graphviz version 2.40.1

solgraphとは

Solidityコントラクトの処理フローを、DOT言語と呼ばれるデータ記述言語で出力するツールです。
関数をノードとしてグラフ表示することができます。

また、ノードの色によって関数の定義が可視化され、各関数の潜在的な危険度が分かるようになっています。

  • Black
    パブリック関数
  • Gray
    インターナル関数
  • Red
    外部アドレスに送信する関数
  • Blue
    コンスタント関数

コントラクトを可視化

それではツールを使用して見ましょう。

solgraphをインストール

コントラクト(.sol)ファイルを準備

DOT形式で出力

Graphvizをインストール

Graphvizはグラフ作成用のツールで、DOTファイルを画像ファイルに変換することが出来ます。
MacだとHomebrewでインストール出来ます。

バージョン確認できればインストール成功

画像ファイルへ変換

pngファイルへ変換します。

コントラクトコードの潜在的な危険性を画像ファイルで確認することができます。

最後に

コントラクトコードの安全性はかなり重要な課題です。簡単に使えてかつ直感的にチェックすることができるので、コードの監査にかなり使えるんじゃないかと思います。

現在のバージョンでは複数ファイルにまたがるコントラクトの可視化には対応してないみたいですが、今後の開発に期待です。

参考

github/solgraph

スポンサーリンク

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。