安全なスマートコントラクト開発の手引きとなる「ソフトウェア開発ライフサイクル」とは|Hi-Con 2018注目内容取材
- Hi-Con 2018|テストツール「Mythril」とソフトウェア開発ライフサイクル
- コインポストは11月10日に開催された国内最大の大規模イーサリアム技術者会議「Hi-Con」を取材。そこで行われた注目登壇内容を登壇を数回に分けてお届けする。今回はConsenSys Diligenceの共同創始者Tom Lindeman氏が「Mythril & Security development lifecycle (SDLC)」をテーマにしたスピーチの内容です。
テストツール「Mythril」とセキュリティ開発ライフサイクル
▼登壇者情報
Tom Lindeman
Business Strategist、ConsenSys Diligence
Tom Lindeman氏はConsenSys Diligenceの共同創始者であり、Enterprise Ethereum Alliance Security Working Groupの共同会長でもある。近年は、セキュリティ、開発ツール、分散型プロダクトなどに主眼を置いたイーサリアム・ブロックチェーンを大きく前進させるべく、活動を行なっている。
マイクロソフト社などでサイバーセキュリティに関する仕事についた経験を、ブロックチェーン業界に活用している。
大学卒業後に、長野県に住んでいたことがあり、日本語を少しだけ話せる。
Consensys Diligenceとは
イーサリアムのスマートコントラクト監査を行なっているコンセンシス内部のチーム。
Mythril(ミスリル)とPanvala(パンバラ)というツールを開発・活用して、イーサリアム・ブロックチェーンに基づくエコシステムを安全、かつ、健康的な環境であり続けられるような取り組みを展開している。
Mythrilは、スマートコントラクトやDappsのコードが安全に組まれているか、想定通りの動きをするかをテストするためのツール。
Panvalaは、Mythrilやバグバウンティなどのコード監査が終わったスマートコントラクトとDappに対して、このシステムは安全です、と認証するためのアプリケーション。
(彼の言葉を借りれば)いわばレストランにミシュランの星をつけるような役割を担っているツールだ。
なぜコードの監査が重要なのか
コードに脆弱性が含まれたままだったり、動作が不安定なコードのままメインネットにリリースすると、そのDappがダウンするのは当然ながら、ネットワーク全体に悪影響が及んでしまう。
とはいえ、ウォーターフォール型の開発のように、一から十まできっちり設計して、その通りに進めるのも、変化の激しい現在の状況を考えると割りに合わない。
そのため、アジャイル的な作って、リリースして、改善点が見つかるたびに改善して、という開発手法に注目が集まった。
ただし、イーサリアム・ブロックチェーンについては、一度メインネットにデプロイしてしまうと、そう簡単に改善することができなくなるだけでなく、ネットワーク全体に悪影響を与えてしまいかねない。
そのため、問題を事前に見つけ、早い段階で改善することが非常に重要。
そこで、匂いを嗅いで食べ物が傷んでないのか確認するのと同様に、イーサリアムのスマートコントラクトやDappsのコードを監査することは重要なのだ。
SDLC:Software Development Life Cycle(ソフトウェア開発ライフサイクル)
この開発サイクルはConsenSys Dilligenceが提案、実行しているものだ。
これに沿って開発を進めることで、問題、あるいは問題になりうる箇所を事前に発見、早期対処できると説明している。
その開発サイクルは以下の通りとなっている。
- Design+Simulate
- Develop
- Test
- Deploy
- Audit
- Monitor
- Signal
それぞれ、簡単に紹介する。
Design + Simulate
実際にコーディングを始める前に、どのようなDappを作るのか、それのベストプラクティスを設計したり、開発ガイドラインを用意する段階。
Develop
実際にコードを叩く段階。開発ツールのTruffleなどを活用する。
一通り開発が済んだら、そのたびにこまめにテストを実施する。
Test
ここでMythrilが使われる。Mythrilを使うことで、コードのどこにミスや抜けがあるのかをいち早く検知、対処することができるようになる。
Deploy
一通りテストが終わったら、テストネット(テスト環境)などにDappsを展開する。
そこで実際の動きを確認し、改善点を洗い出していく。
大抵のDappsでは、この段階でバグバウンティ(賞金付きのバグ発見イベント)が実施される。
Audit
人の手と機械を使って、コードの監査を実施する。ここでは焦りは禁物で、問題をひとつひとつ確実に見つけ、潰していくことが重要になる。
Monitor
AlethioやMythrilを使い、実際に稼働しているスマートコントラクトが、もともとの想定通りに動いているか、アタックを受けていることを事前に感知できているか、などをチェックする。
Signal
Panvalaを使うことで、監査がモニタや監査が終わったことを開発コミュニティに知らせる役目を担う。
Panvalaを利用しているユーザーたちからの最終チェックが行われ、ここで問題なしと判断されると、Panvalaマークが贈呈される。
これはいわば「このスマートコントラクト/Dappsは安全」という証拠になる。
いわば、ミシュランの星のような存在になるマークだ。
先日、11月1日にMythrilトークン(MYTH)がテストネット(Ropsten)にデプロイされた。
メインネットには、来年1月15日にデプロイされる予定で、スケジュール通りに開発が進めば、来年3月1日にMythrilが広く使われるようになるだろう。
まとめ
ConsenSys Diligence は、イーサリアム・ネットワークが安全かつ健康的に使えるようにするのが役目。
スマートコントラクトの監査を通じて、ネットワークに貢献している。
今後、イーサリアム・ネットワークが拡大するにつれて、スマートコントラクトやDappsの安全性は非常に重要なテーマになるだろう。
なぜなら、粗悪なスマートコントラクトは、ネットワーク全体に悪影響を与えてしまうからだ。
現状ですら、ひとつの障害で大きな影響がでる。
本格的にイーサリアム・ブロックチェーン技術とスマートコントラクトが生活や仕事の一部となったら、なおさらだ。
今後の彼らの動き、開発進捗は常に注目していきたい。
画像はShutterstockのライセンス許諾により使用
「仮想通貨」とは「暗号資産」のことを指します