Erinys: Efficient fuzzing by function invoke sequence generation for smart contracts

Smart contracts are automated programs that run on blockchain platforms and are a crucial component of blockchain technology. Due to their involvement in significant business logic and asset value, the security and reliability of smart contracts is critical. Fuzzing is an effective method for detecting vulnerabilities in smart contracts. However, most existing fuzzers face a common limitation in efficiently satisfying hard-to-cover branch constraints. To address this challenge, this paper introduces Erinys, a fuzzing tool based on sfuzz. We incorporate the definition and usage of state variables to define hard-to-cover branch constraints. Then we employ static analysis techniques to obtain the Define-Use relationships between functions and state variables in smart contracts. Additionally, we construct a graph, known as the State variables Define Use Graph, to describe the logical connections between functions based on state variables. Based on this graph, we design strategies to generate and optimize function invoke sequences. We implemented Erinys by integrating the proposed method into sfuzz. Experimental results conducted on a dataset containing 1970 contracts demonstrate that Erinys can effectively generate high-quality function invoke sequences, leading to improved branch coverage and vulnerability detection capabilities.

Authors

Institutions

Publication Details

Published
2024-09-14
DOI
https://doi.org/10.1145/3697355.3697394
Citations
1
Primary Topic
Auction Theory and Applications
Type
article
Field-Weighted Citation Impact
0.49

Funders

Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Erinys: Efficient fuzzing by function invoke sequence generation for smart contracts

Changtong Dong, Ying Shang, Hao Huang
1 citations
Auction Theory and Applications
0.49
article

Erinys: Efficient fuzzing by function invoke sequence generation for smart contracts

Changtong Dong, Ying Shang, Hao Huang
article en
1 citations

Abstract

Smart contracts are automated programs that run on blockchain platforms and are a crucial component of blockchain technology. Due to their involvement in significant business logic and asset value, the security and reliability of smart contracts is critical. Fuzzing is an effective method for detecting vulnerabilities in smart contracts. However, most existing fuzzers face a common limitation in efficiently satisfying hard-to-cover branch constraints. To address this challenge, this paper introduces Erinys, a fuzzing tool based on sfuzz. We incorporate the definition and usage of state variables to define hard-to-cover branch constraints. Then we employ static analysis techniques to obtain the Define-Use relationships between functions and state variables in smart contracts. Additionally, we construct a graph, known as the State variables Define Use Graph, to describe the logical connections between functions based on state variables. Based on this graph, we design strategies to generate and optimize function invoke sequences. We implemented Erinys by integrating the proposed method into sfuzz. Experimental results conducted on a dataset containing 1970 contracts demonstrate that Erinys can effectively generate high-quality function invoke sequences, leading to improved branch coverage and vulnerability detection capabilities.

Beijing University of Chemical Technology (CN)
National Natural Science Foundation of China
Openalex Percentile: Top 28%
Auction Theory and Applications
0.49
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.