Abstract

Task features. Smart-contracts are programs that are stored in a distributed registry and execute code written in them in response to transactions addressed to them. Such smart- contracts are written in the Solidity programming language, which has a specific structure and syntax. The language was developed for the Ethereum platform. Having a specific structure, such languages are prone to certain vulnerabilities, the use of which can lead to large financial losses. Task statement. In this paper, a Deep Learning (DL) model is used to detect the vulnerabilities. Using the chosen approach and a properly specified input data structure, it is possible to detect complex dependencies between various program variables that contain vulnerabilities and bugs. Research results. Using well-defined experiments, this approach was investigated to better understand the model and improve its performance. The developed model classified vulnerabilities at the string level, using the Solidity corpus of smart-contracts as input data. The application of the DL model allows vulnerabilities of varying complexity to be identified in smart-contracts. Conclusions. Thus, the pipeline developed by us can capture more internal code information than other models. Information from software tokens, although semantically incapable of capturing vulnerabilities, increases the accuracy of models. The interpretability of the model has been added through the use of the attention mechanism. Operator accounting has shown significant performance improvements.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call