9月15日,Zeppelinのロードマップ案が公開された。Zeppelinはセキュアなスマートコントラクトの構築を目的とした,MITライセンスのオープンソースフレームワークである。これが時宜を得たものであることは,スマートコントラクトの形式検証(formal verification)に関わるDevCon2での講演や議論の数が証明している。
Smart Contract Solutionsの創立者であるDemian Brener氏とManuel Aráoz氏は,ともにZeppelinの開発に尽力した先駆者たちだ。Zeppelinは,試験と監査の実施されたセキュアなスマートコントラクトコードの開発を可能にすることを目標とした,コミュニティの努力の成果である。今年初めには,これまで最大のスマートコントラクトアプリケーションである“The DAO”が,スマートコントラクトの抜け穴を利用してハッキングされ,6,000万ドルの被害を受けている。この事実がコミュニティにおける多くの懸念を正当化し,形式検証が最前線の話題になる原因となった。
最もポピュラーなスマートコントラクト開発プラットフォームであるEthereumが存在することから,Zeppelinでは当面,Solidity用のツール開発に的を絞ることを予定している。発表の中でBrener氏は,次のようなモジュールがSolidityで実装される予定だと述べている。
- プルペイメント・ヘルパ: (
send
によるプッシュペイメントと対照的な)プルペイメント戦略を用いることで,(悪名高いThe DAOハックを含む)さまざまなセキュリティ上の問題を阻止することが可能になります。基本的なPullPaymentCapable.solコントラクトはすでに存在しますが,より包括的なツールとドキュメント,そしてサンプルが必要です。- コントラクト・ライフサイクルツール: 現行のコントラクトの大部分は,将来的に何が起こるのかを深く考慮することなく,ブロックチェーンにデプロイされているのです。コントラクトの破棄方法やオーナシップ移行,一時停止と再起動,アップグレード性などを,現在よりもうまく管理できるツールを開発したいと思っています。
- フォールトトレランスと自動バグバウンティ:障害の自動検出,および一貫性のない状態から回復するためのツール。コントラクトによって管理される資金量を制限するシンプルなツールです。同時に,私たちのコントラクトの不変性を破ることのできるセキュリティ研究者に対して,自動的に支払を行なえるように,バグバウンティのコントラクトを改善する作業にも取り組んでいます。
- 再利用可能な基本コンポーネント: 新たなプロジェクトごとにスクラッチから再実装しなければならない共通モジュールが,まだたくさんあります。トークンの発行やクラウドファンディング,投票,賭け,支払処理,収益分配などの標準的なコントラクトの開発を検討中です。
- 形式検証に関するアイデアの探求 コントラクトの形式検証は活発な研究領域のひとつです。この作業をZeppelinに統合することで,コントラクトに興味深いセキュリティ保証を提供することが可能になります。形式検証とは,コントラクトのコードを静的に解析して,その正確性および/または問題点を証明するものです。
- Oracleインターフェースの改善: スマートコントラクト開発で重要な点のひとつとして,ブロックチェーン以外のデータソースとの接続方法があります。現在検討中の面白いアイデアとして,コントロールの反転があります。これは,(真実(truth)の外部とコミュニケーションする)共通インターフェースメソッドを通じてOracleからコントラクトを呼び出し可能にし,任意のロジック – 信頼される専門家,クローズド投票,オープン投票,APIラッパなどを実装可能にするものです。Oracleからのデータ要求のコントラクトの代わりに,データ更新のコントラクトをOracleに通知するのです。
- コード再利用ツールの改善: 現在のSolidityコードの再利用はコピー&ペーストや,リポジトリからの既存コードのダウンロードが基本です。成熟したエコシステムには,NodeJSのnpmやRubyのgemsのように,優れたコードリポジトリ管理システムが存在します。Ethereumの興味深い変更のひとつが,ブロックチェーンにデプロイ済のコードが再利用可能であることです。デプロイ済のライブラリに対して,コントラクトを簡単にリンクできるようなツールを現在計画中です。
これらはコントラクトの共通セキュリティパターンに基づくものだ。Zeppelinは,Ethereum開発者が使用する主要フレームワークであるTruffleを統合している。アーリアダプタは,Zeppelin Slackチャネルで質問や進捗状況の確認や,あるいはBlockPartyプロジェクトで使用方法を学ぶことができる。Zeppelinベースの実際のDAOを伴った最初のパブリックリリースが11月に予定されている。
将来的にはBitcoinやTendemint,Bloq Oraなど,他のブロックチェーンプラットフォームもサポートする予定である。
この記事を評価
- 編集者評
- 編集長アクション