Ethereum 스마트 컨트랙트 개발을 위한 Rust 기반 툴킷으로, Forge, Cast, Anvil, Chisel을 통해 EVM 체인을 빌드, 테스트하고 상호작용할 수 있습니다.
crytic/echidna
Echidna는 사용자 정의 불변 조건이나 Solidity 어설션을 깨는 호출 시퀀스를 찾아 Ethereum 스마트 컨트랙트를 테스트하는 Haskell 기반 퍼저입니다.
- 스타
- 3,189
- 포크
- 437
- 열린 이슈
- 107
- 마지막 커밋
- 21시간 전
어떤 프로젝트인가요?
Echidna는 Ethereum 스마트 컨트랙트를 위한 퍼징 및 속성 기반 테스트 도구입니다. 컨트랙트의 ABI에서 문법 기반 호출 시퀀스를 생성하고, bool을 반환하는 echidna_ 접두사 함수인 사용자 정의 불변 조건이나 Solidity assert() 문을 검사합니다. 속성을 거짓으로 만드는 시퀀스를 찾으면 해당 시퀀스를 보고하고, 문제를 더 쉽게 분류할 수 있도록 테스트 케이스를 최소화할 수도 있습니다.
이 도구는 property, assertion, Foundry 스타일 테스트, 단일 트랜잭션의 formal 스타일 검증, 정수 오버플로 감지, 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에서 문법 기반 호출 시퀀스를 생성하고, bool을 반환하는 echidna_ 접두사 함수인 사용자 정의 불변 조건이나 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와 개발 도구를 제공하며 풀 노드 또는 아카이브 노드로 실행할 수 있습니다.
Solidity는 Ethereum 플랫폼에서 스마트 컨트랙트를 작성하기 위한 정적 타입의 컨트랙트 지향 프로그래밍 언어입니다.
Ethereum 개발, 스마트 컨트랙트, 네트워크의 기반 기술을 다루는 『Mastering Ethereum』 제2판입니다.
실세계 데이터와 오프체인 연산을 스마트 컨트랙트에 제공하는 탈중앙화 오라클 네트워크를 운영하기 위한 Chainlink 코어 노드와 컨트랙트입니다.