This repo contains the code for our WWW'24 paper "Characterizing Ethereum Upgradable Smart Contracts and Their Security Implications".
-
bytecode_collector: collects bytecode of a list address of smart contracts
More detail in this guide
-
logic_contract_collector: collects logic contracts of smart contracts that contain DELEGATECALL
More detail in this guide
-
call_trace_collector: collects call trace of smart contracts that contain SELFDESTRUCT
More detail in this guide
-
etherscan_crawler: collects "Old Contracts" that are labeled by etherscan
More detail in this guide
-
pattern_detector: detects smart contract upgrade patterns by using collected information
More detail in this guide
-
transaction_analyzer: extracts values of function parameters in the tranctions
More detail in this guide
-
upgrade_chain_constructor: constructs the upgrade chains by using the information extracted in transaction_analyzer
More detail in this guide
If you use USCDetector in your research, please cite our paper:
@inproceedings{li2024characterizing,
title={Characterizing Ethereum Upgradable Smart Contracts and Their Security Implications},
author={Li, Xiaofan and Yang, Jin and Chen, Jiaqi and Tang, Yuzhe and Gao, Xing},
booktitle={Proceedings of the ACM on Web Conference 2024},
pages={1847--1858},
year={2024}
}