Designing and evaluating DL-model for vulnerability detection in smart contracts - Shmatko, Oleksandr; Kolomiitsev, Oleksii; Rekova, Nataliia; Kuchuk, Nina; Matvieiev, Oleksandr (Національний технічний університет "Харківський політехнічний інститут", 2023)
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.

Особливості завдання. Смарт-контракти — це програми, які зберігаються в розподіленому реєстрі та виконують написаний у них код на відповідь на адресовані їм транзакції. Такі смарт-контракти написані на мові програмування Solidity, яка має специфічну структуру та синтаксис. Мова розроблена для платформи Ethereum. Маючи специфічну структуру, такі мови схильні до певних уразливостей, використання яких може призвести до великих фінансових втрат. Постановка завдання. У цій статті для виявлення вразливостей використовується модель глибокого навчання (DL). Використовуючи обраний підхід і правильно задану структуру вхідних даних, можна виявити складні залежності між різними програмними змінними, які містять вразливості та помилки. Результати дослідження. Використовуючи чітко визначені експерименти, цей підхід було досліджено, щоб краще зрозуміти модель і покращити її продуктивність. Розроблена модель класифікувала вразливості на рівні рядків, використовуючи як вхідні дані корпус смарт-контрактів Solidity. Застосування моделі DL дозволяє виявляти в смарт-контрактах уразливості різної складності. Висновки. Таким чином, розроблений підхід може фіксувати більше інформації про внутрішній код, ніж інші моделі. Інформація з програмних токенів, хоча семантично нездатна зафіксувати вразливі місця, підвищує точність моделей. Інтерпретативність моделі додана за рахунок використання механізму уваги.
Проектування та оцінка DL-моделі для виявлення вразливості в смарт-контрактах
Keywords: blockchain; smart-contract; computer system; secure; vulnerability; deep learning; блокчейн; смарт-контракт; комп'ютерна система; безпека; вразливість; глибоке навчання