Please use this identifier to cite or link to this item:
https://scholarbank.nus.edu.sg/handle/10635/244466
DC Field | Value | |
---|---|---|
dc.title | Smart Learning to Find Dumb Contracts | |
dc.contributor.author | Tamer Abdelaziz | |
dc.contributor.author | Aquinas Hobor | |
dc.contributor.editor | Abdelaziz, Tamer | |
dc.date.accessioned | 2023-08-22T08:28:59Z | |
dc.date.available | 2023-08-22T08:28:59Z | |
dc.date.issued | 2023-08-09 | |
dc.identifier.citation | Tamer Abdelaziz, Aquinas Hobor (2023-08-09). Smart Learning to Find Dumb Contracts. 32nd USENIX Security Symposium (USENIX Security 23) : 1775-1792. ScholarBank@NUS Repository. | |
dc.identifier.isbn | 978-1-939133-37-3 | |
dc.identifier.uri | https://scholarbank.nus.edu.sg/handle/10635/244466 | |
dc.description.abstract | We introduce Deep Learning Vulnerability Analyzer (DLVA), a vulnerability detection tool for Ethereum smart contracts based on powerful deep learning techniques for sequential data adapted for bytecode. We train DLVA to judge bytecode even though the supervising oracle, Slither, can only judge source code. DLVA's training algorithm is general: we “extend” a source code analysis to bytecode without any manual feature engineering, predefined patterns, or expert rules. DLVA's training algorithm is also robust: it overcame a 1.25% error rate mislabeled contracts, and—the student surpassing the teacher—found vulnerable contracts that Slither mislabeled. In addition to extending a source code analyzer to bytecode, DLVA is much faster than conventional tools for smart contract vulnerability detection based on formal methods: DLVA checks contracts for 29 vulnerabilities in 0.2 seconds, a 10–1,000x speedup compared to traditional tools. DLVA has three key components. First, Smart Contract to Vector (SC2V) uses neural networks to map arbitrary smart contract bytecode to an high-dimensional floating-point vector. We benchmark SC2V against 4 state-of-the-art graph neural networks and show that it improves model differentiation by an average of 2.2%. Second, Sibling Detector (SD) classifies contracts when a target contract's vector is Euclidianclose to a labeled contract's vector in a training set; although only able to judge 55.7% of the contracts in our test set, it has an average Slither-predictive accuracy of 97.4% with a false positive rate of only 0.1%. Third, Core Classifier (CC) uses neural networks to infer vulnerable contracts regardless of vector distance. We benchmark DLVA's CC with 10 “offthe-shelf” machine learning techniques and show that the CC improves average accuracy by 11.3%. Overall, DLVA predicts Slither's labels with an overall accuracy of 92.7% and associated false positive rate of 7.2%. Lastly, we benchmark DLVA against nine well-known smart contract analysis tools. Despite using much less analysis time, DLVA completed every query, leading the pack with an average accuracy of 99.7%, pleasingly balancing high true positive rates with low false positive rates. | |
dc.description.uri | https://www.usenix.org/conference/usenixsecurity23/presentation/abdelaziz | |
dc.language.iso | en | |
dc.publisher | USENIX Association | |
dc.relation.ispartofseries | 291277 | |
dc.rights | Attribution 4.0 International | |
dc.rights.uri | http://creativecommons.org/licenses/by/4.0/ | |
dc.subject | Smart Contracts | |
dc.subject | Deep Learning | |
dc.subject | vulnerability detection | |
dc.type | Conference Paper | |
dc.contributor.department | DEAN'S OFFICE (YALE-NUS COLLEGE) | |
dc.contributor.department | DEPARTMENT OF COMPUTER SCIENCE | |
dc.description.sourcetitle | 32nd USENIX Security Symposium (USENIX Security 23) | |
dc.description.page | 1775-1792 | |
dc.published.state | Published | |
Appears in Collections: | Staff Publications Elements Students Publications |
Show simple item record
Files in This Item:
File | Description | Size | Format | Access Settings | Version | |
---|---|---|---|---|---|---|
usenixsecurity23-abdelaziz (1).pdf | 1.47 MB | Adobe PDF | OPEN | Published | View/Download |
This item is licensed under a Creative Commons License