We introduce SCooLS, our Smart Contract Learning (Semi-supervised) engine.
SCooLS uses neural networks to analyze Ethereum contract bytecode and
identifies specific vulnerable functions. SCooLS incorporates two key elements:
semi-supervised learning and graph neural networks (GNNs). Semi-supervised
learning produces more accurate models than unsupervised learning, while not
requiring the large oracle-labeled training set that supervised learning
requires. GNNs enable direct analysis of smart contract bytecode without any
manual feature engineering, predefined patterns, or expert rules.
SCooLS is the first application of semi-supervised learning to smart contract
vulnerability analysis, as well as the first deep learning-based vulnerability
analyzer to identify specific vulnerable functions. SCooLS's performance is
better than existing tools, with an accuracy level of 98.4%, an F1 score of
90.5%, and an exceptionally low false positive rate of only 0.8%. Furthermore,
SCooLS is fast, analyzing a typical function in 0.05 seconds.
We leverage SCooLS's ability to identify specific vulnerable functions to
build an exploit generator, which was successful in stealing Ether from 76.9%
of the true positives