위키득계정 ↗
기술

Medusa 계약 퍼저

Medusa 계약 퍼저기술
분류
스마트 계약 퍼저
기반
go-ethereum
입력 탐색
커버리지 유도 시퀀스 변형
인터페이스
명령행과 Go API
Medusa는 go-ethereum을 기반으로 스마트 계약을 병렬 퍼징하는 도구다. 여러 작업자가 호출 시퀀스를 탐색하며 속성과 단언문을 검사한다.

작업자별 실행과 입력 모음

여러 작업자가 테스트를 진행하고 커버리지를 늘린 호출 시퀀스를 입력 모음에 저장한다. 저장한 시퀀스를 다시 변형해 다음 탐색에 사용한다. 입력값 생성에는 컴파일 과정과 실행 과정에서 얻은 값도 활용한다.

속성 테스트와 확장

Solidity 속성 테스트와 단언문 테스트를 지원한다. 더 세밀한 검사 방법이 필요하면 이벤트와 훅을 제공하는 저수준 API를 활용할 수 있다. 고수준 확장 API와 같은 수준으로 모든 사용자 정의 검사가 완성되어 있다고 가정해서는 안 된다.

환경과 API 변화

Go 수준의 테스트 API는 개발 중이며 호환되지 않는 변경이 있을 수 있다고 안내된다. 사용자 정의 검사 코드를 유지한다면 버전과 이벤트 연결 방식을 함께 관리한다. 여러 작업자가 실행했다는 사실과 모든 호출 조합을 확인했다는 주장은 구별해야 한다.

관련 문서

Echidna 계약 퍼저 / Halmos / Manticore 기호 실행 / FuzzTest