OC-Detector: Detecting Smart Contract Vulnerabilities Based on Clustering Opcode Instructions

Xiguo Gu,Liwei Zheng,Huiwen Yang,Shifan Liu,Zhanqi Cui
DOI: https://doi.org/10.1142/s0218194023410061
IF: 1.007
2023-11-20
International Journal of Software Engineering and Knowledge Engineering
Abstract:Smart contracts are programs running on blockchain. In recent years, due to the persistent occurrence of security-related accidents in smart contracts, the effective detection of vulnerabilities in smart contracts has received extensive attention from researchers and engineers. Machine learning-based vulnerability detection techniques have the advantage that they do not need expert rules for determining vulnerabilities. However, existing approaches cannot identify vulnerabilities when the versions of smart contract compilers are updated. In this paper, we propose OC-Detector (Opcode Clustering Detector), a smart contract vulnerability detection approach based on clustering opcode instructions. OC-Detector learns the characteristics of opcode instructions to cluster them and replaces opcode instructions belonging to the same cluster with the ID of the cluster. After that, the similarity between the contract under analysis and contracts in the vulnerability database is calculated to identify vulnerabilities. The experimental results demonstrate that OC-Detector improves the F 1 value of detecting vulnerabilities from 0.04 to 0.40 compared to DC-Hunter, Securify, SmartCheck and Osiris. Additionally, compared to DC-Hunter, the F 1 value is improved by 0.27 when detecting vulnerabilities in smart contracts compiled by different versions of compilers.
computer science, artificial intelligence,engineering, electrical & electronic, software engineering
What problem does this paper attempt to address?