Ethereumスマートコントラクト開発向けのRust製ツールキット。Forge、Cast、Anvil、ChiselでEVMチェーンの構築、テスト、操作を支援します。
crytic/echidna
Echidnaは、ユーザー定義の不変条件やSolidityのアサーションを破る呼び出しシーケンスを試して、EthereumスマートコントラクトをテストするHaskell製ファザーです。
- スター
- 3,189
- フォーク
- 437
- 未解決の Issue
- 107
- 最終コミット
- 19 時間前
これは何?
Echidnaは、Ethereumスマートコントラクト向けのファジングおよびプロパティベーステストツールです。コントラクトのABIから文法ベースの呼び出しシーケンスを生成し、ユーザー定義の不変条件(echidna_で始まりboolを返す関数)やSolidityのassert()文を検証します。プロパティを偽にするシーケンスが見つかると、そのシーケンスを報告し、トリアージしやすいようにテストケースを最小化することもできます。
property、assertion、Foundry形式のテスト、単一トランザクションの形式的検証、整数オーバーフロー検出、int256の戻り値の最適化、カバレッジのみの探索など、複数のテストモードに対応しています。crytic-compileを介してFoundry、Hardhat、Truffleでビルドされたコントラクトを扱い、ファジングの前にSlitherを使って情報を抽出します。結果は対話型ターミナルUI、プレーンテキスト、JSONで表示でき、カバレッジを最大化するコーパスを保存してソースコードに注釈を付けることもできます。
主な機能
- 01コントラクトのABIとソースコードに合わせた呼び出しシーケンスを生成します。
- 02echidna_で始まるbool型の不変条件とSolidityのアサーションを検証します。
- 03トリアージを迅速化するため、失敗したテストケースを最小化します。
- 04ソースコードへの注釈付きで行カバレッジを報告します。
- 05テキスト、JSON、対話型ターミナル出力に対応しています。
- 06crytic-compileを介してFoundry、Hardhat、Truffleのプロジェクトと連携します。
ユースケース
- デプロイ前にDeFiプロトコルのコントラクトで不変条件違反を見つける。
- トークンコントラクトの残高やオーバーフローに関するバグをチェックする。
- GitHub Actionsのワークフローでスマートコントラクトのプロパティテストを実行する。
- Solidityコントラクトを使ってファジング研究の事例を再現する。
クイックスタート
- 1
HomebrewでEchidnaをインストールする(macOS / Linux)
brew install echidna - 2
READMEにあるサンプルコントラクトでEchidnaを実行する
echidna tests/solidity/basic/flags.sol
使う前に知っておきたいこと
- Vyperのサポートは限定的です。
- テスト用のライブラリサポートは一部に限られています。
- EchidnaのインストールにはSlitherが必要で、追加の依存関係としてセットアップする必要があります。
- コンテナイメージをビルドできるのは現在、x86システムのみです。
収録されている特集
トピック
よくある質問
- echidna とは?
- Echidnaは、ユーザー定義の不変条件やSolidityのアサーションを破る呼び出しシーケンスを試して、EthereumスマートコントラクトをテストするHaskell製ファザーです。 Echidnaは、Ethereumスマートコントラクト向けのファジングおよびプロパティベーステストツールです。コントラクトのABIから文法ベースの呼び出しシーケンスを生成し、ユーザー定義の不変条件(echidna_で始まりboolを返す関数)やSolidityのassert()文を検証します。プロパティを偽にするシーケンスが見つかると、そのシーケンスを報告し、トリアージしやすいようにテストケースを最小化することもできます。
- echidna は無料で使えますか?ライセンスは?
- echidna は AGPL-3.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- echidna は今もメンテナンスされていますか?
- 活発にメンテナンス中。echidna の最終コミットは 2026年11月5日 です。
- echidna は何に使えますか?
- デプロイ前にDeFiプロトコルのコントラクトで不変条件違反を見つける。 トークンコントラクトの残高やオーバーフローに関するバグをチェックする。 GitHub Actionsのワークフローでスマートコントラクトのプロパティテストを実行する。 Solidityコントラクトを使ってファジング研究の事例を再現する。
- echidna のインストール方法は?
- HomebrewでEchidnaをインストールする(macOS / Linux): brew install echidna READMEにあるサンプルコントラクトでEchidnaを実行する: echidna tests/solidity/basic/flags.sol
- echidna はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/crytic/echidna
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
スマートコントラクトやdappのコンパイル、デプロイ、テスト、デバッグに使えるEthereum開発環境。
Ethereum実行レイヤーのGo実装。フルノードまたはアーカイブノードとして稼働し、JSON-RPC APIや開発者向けツールを提供します。
Solidityは、Ethereumプラットフォーム上のスマートコントラクトを記述するための、静的型付けのコントラクト指向プログラミング言語です。
Ethereumの開発、スマートコントラクト、基盤技術を解説する書籍『Mastering Ethereum』の第2版。
スマートコントラクトに現実世界のデータやオフチェーン計算を提供する分散型オラクルネットワーク、Chainlinkのコアノードとコントラクト。