This repository contains data of the evaluations in our paper, including the evaluation of the attack mining algorithm, the evaluation of the vulnerability localization approach, and the evaluation of state-of-the-art vulnerability detection tools.
-
Manual Check.xlsx contains the manual check results among three authors to check whether the attacks found by our mining algorithm are true front-running attacks or not. The manual check is conducted on a sample of attacks
$\mathbb{D}^S$ .
- displacement.evaluate.output.txt, insertion.evaluate.output.txt give the results that our mining algorithm tries to identify displacement attacks and insertion attacks in the baseline dataset.
- The baseline dataset can be found at Frontrunner-Jones.
- There are three columns in the output file. The first column is the attack id in the baseline dataset. The second column marks whether our attack model can identify each attack. The third column marks whether our vulnerability localization approach can localize vulnerable code from the attack.
- baseline_attack_missing_check.txt gives our manual investigation result on the reasons why some attacks are missed by our attack model (sampling with 95% confidence level and 5% confidence interval).
- rq1-3_search.json shows the attack that our mining algorithm finds in the experiments for RQ1-3.
- The baseline dataset can be found at Frontrunner-Jones.
-
Manual Check.xlsx also contains the manual check results among three authors to check whether the underlying vulnerable contract logic is covered by extracted influence trace or not. The manual check is conducted on a sample of attacks
$\mathbb{D}^S$ . -
reduction.dat contains the total number of EVM instructions that are marked vulnerable by the naive approach (baseline) and by our approach in each attack of
$\mathbb{D}^S$ . Used in Fig.3. -
topNContracts.codehash.csv contains the code hashes of top-1200 contracts used to construct dataset
$\mathbb{D}^P$ . One can find the corresponding contract from its code hash from dataset$\mathbb{D}^A$ , there. -
saturation.dat contains the number of functions labeled as vulnerable by our approach when increasing the sampling percentage of dataset
$\mathbb{D}^P$ .
Analysis results of each tool on each contract of [dataset] analysis
folder of each contract.
Please refer to the documentation of each tool to learn how to interpret their detection results.