SODA is a novel generic online detection framework for smart contracts on blockchains that support Ethereum virtual machine (EVM). We released the 8 detection apps and the source code of the framework here.
We developed the framework SODA based on go-ethereum v1.9.0 (https://github.com/ethereum/go-ethereum/tree/v1.9.0) in Ubuntu 16.06.
The source code of 8 detection apps is under the path SODA_code/plugin/plugin
.
- Use
go env
to check your paths ofGOPATH
andGOROOT
in your Ubuntu. - Copy the file
collector.go
in the pathSODA_code/collector
to the pathGOROOT/src/github.com/Ethereum/collector
(if a directory does not exist, create it). - Copy the folder
json-iterator
andmodern-go
in the pathSODA_code/go-ethereum/vendor/github.com
to the pathGOPATH/src/github.com
(if a directory does not exist, create it). - Enter the folder
SODA_code/go-ethereum
, usemake geth
to compile the framework, and then you can getgeth
from the pathSODA_code/go-ethereum/build/bin
. - Enter the path
SODA_code/plugin/plugin/P1
, and then usego build –buildmode=plugin P1.go
to getP1.so
. - Make two new directories
plugin
where to put theP1.so
andpublic
where to store sync data in the same directory asgeth
. - In the directory where
geth
is, use./geth –syncmode full –datadir public
to start syncing. - Finally, you will find the result of each app in the folder
plugin_log
.
P1 is an app for detecting a malicious re-entrancy aiming at stealing ETH. The result of P1 is listed in the table P1_result.xlsx
.
We have listed all 8 apps' results at https://drive.google.com/drive/folders/1gHAlmivO1zntSaAoZjoSymG0sQS8lv32?usp=sharing.
You can find our paper about the design, implementation, and experimental results of SODA at https://www.ndss-symposium.org/wp-content/uploads/2020/02/24449.pdf.
Welcome to cite our paper: Ting Chen, Rong Cao, Ting Li, Xiapu Luo, Guofei Gu, Yufei Zhang, Zhou Liao, Hang Zhu, Gang Chen, Zheyuan He, Yuxing Tang, Xiaodong Lin, Xiaosong Zhang. SODA: A Generic Online Detection Framework for Smart Contracts. In NDSS 2020.
If you have any problems in using our tool, please send emails to chenting19870201@163.com and 1797258848@qq.com.