Обнаружение уязвимостей в умных контрактах имеет большое значение для защиты цифровых активов. Сегодня многие исследования выявляют особенности кода контракта, используя глубокое обучение, но часто применяют единую форму представления кода. Это не позволяет полностью извлечь семантику и структуру кода для обнаружения различных уязвимостей. В статье предложена модель обнаружения уязвимостей на основе слияния синтаксических и семантических признаков. Используя инструмент TextCNN и графовые нейронные сети, можно извлечь синтаксическое и семантическое представление из абстрактного синтаксического дерева и графа управляющего потока контракта. Совмещая признаки, модель повышает точность обнаружения и коэффициент восстановления для пяти типов уязвимостей, достигая средней точности 95 % и коэффициента восстановления 91 %, что обеспечивает эффективное обнаружение уязвимостей умных контрактов.
Detection of vulnerabilities in smart contracts is of great importance for protection of digital assets. Today many researches reveal the features of the contract code using deep learning, but often use a single form of code representation. This does not allow extracting the semantics and structure of the code fully to detect various vulnerabilities. The article proposes vulnerability detection model based on fusion of syntactic and semantic features. Using TextCNN tool and graph neural networks, it is possible to extract syntactic and semantic representation from the abstract syntactic tree and the graph of the contract control flow. Combining the features the model increases the detection accuracy and recovery rate for five types of vulnerabilities reaching the average accuracy of 95% and the recovery rate of 91% that ensures effective detection of smart contract vulnerabilities.