Publication
Solidity code security analysis with generative AI
| datacite.subject.fos | Engenharia e Tecnologia | |
| datacite.subject.sdg | 09:Indústria, Inovação e Infraestruturas | |
| dc.contributor.advisor | Azevedo, Isabel de Fátima Silva | |
| dc.contributor.author | SILVA, FRANCISCO JOSÉ DE SOUSA FERREIRA DA | |
| dc.date.accessioned | 2025-11-14T11:31:01Z | |
| dc.date.available | 2025-11-14T11:31:01Z | |
| dc.date.issued | 2025-09-24 | |
| dc.description.abstract | Blockchain technology has revolutionised how businesses are conducted, and smart contracts are at the forefront of this change. Smart contracts are digital programs that run on a blockchain when specific conditions are met, replicating the terms of real-world agreements with greater efficiency and lower costs. The Ethereum platform is the most popular for developing smart contracts, owing to its decentralised Turing-complete machine, known as the Ethereum Virtual Machine (EVM), which can execute scripts across a global network of public compute nodes. Despite this being a powerful tool, smart contracts can still be vulnerable to hacking. This study delves into the current state of security vulnerability detection for Solidity code, which is the main programming language for Ethereum smart contracts. This thesis aims to understand and evaluate whether the LLM can detect security vulnerabilities and if they are more effective than static analysis tools. The analysis is focused mainly on two of the vulnerabilities that generated the largest monetary losses in 2024: Access Control ($953.2M) and Reentrancy($35.7M). The comparative analysis was carried out on 150 smart contracts using Slither, a static analysis tool widely used, able to detect up to 100 vulnerabilities and optimisations, and an LLM modelcodellama, an open-source model pre-trained with Solidity, which is specialised in code generation and discussion. The analysis shows that Slither is currently more mature and reliable than Codellama, achieving an accuracy of 0.95%, which means that the tool was able to identify all vulnerabilities correctly. Furthermore, when comparing Slither to Codellama, it can be concluded that Slither is much faster at performing the analysis, with an average time of 2.17 seconds per Solidity file. Although Slither is rated as more effective than Codellama, the analysis also confirms the potential of large language model-based approaches in detecting security vulnerabilities in Solidity code. | eng |
| dc.description.abstract | A tecnologia blockchain revolucionou a forma como os negócios são conduzidos, e os contratos inteligentes estão na vanguarda dessa mudança. Os contratos inteligentes são programas digitais que são executados numa blockchain quando determinadas condições são cumpridas, replicando os termos dos contratos do mundo real com maior eficiência e menores custos. A plataforma Ethereum é a mais popular para o desenvolvimento de contratos inteligentes, devido à sua máquina descentralizada Turing complete, conhecida como Ethereum Virtual Machine (EVM), que pode executar scripts numa rede global de nodes de computação públicos. Apesar de esta ser uma ferramenta poderosa, os contratos inteligentes ainda podem ser vulneráveis a hackers. O presente estudo pretende investigar o atual estado da deteção de vulnerabilidades de segurança para o código Solidity, que é a principal linguagem de programação para contratos inteligentes em Ethereum. Esta tese tem como objetivo compreender e avaliar se o LLM pode detetar vulnerabilidades de segurança e se estas são mais eficazes do que as ferramentas de análise estática. A análise centra-se principalmente em duas das vulnerabilidades que geraram as maiores perdas monetárias em 2024: controlo de acessos (953,2 milhões de dólares) e reentrância (35,7 milhões de dólares). A análise comparativa foi realizada em 150 contratos inteligentes usando o Slither, uma ferramenta de análise estática amplamente utilizada, capaz de detetar até 100 vulnerabilidades e otimizações, e um modelo LLM - Codellama, modelo de código aberto pré-treinado com Solidity, especializado em geração e discussão de código. A análise mostra que o Slither é atualmente mais maduro e confiável do que o Codellama, alcançando uma precisão de 0,95%, o que significa que a ferramenta foi capaz de identificar todas as vulnerabilidades corretamente. Além disso, ao comparar o Slither com o Codellama, foi possível concluir que o Slither é muito mais rápido na realização da análise, com um tempo médio de 2,17 segundos por ficheiro Solidity. Embora o Slither seja classificado como mais eficaz do que o Codellama, a análise também confirma o potencial das abordagens baseadas em modelos de linguagem de grande porte na deteção de vulnerabilidades de segurança no código Solidity. | por |
| dc.identifier.tid | 204033365 | |
| dc.identifier.uri | http://hdl.handle.net/10400.22/30895 | |
| dc.language.iso | eng | |
| dc.rights.uri | N/A | |
| dc.subject | Smart Contracts | |
| dc.subject | LLM | |
| dc.subject | security | |
| dc.subject | vulnerabilities | |
| dc.subject | Solidity | |
| dc.subject | Contratos inteligentes | |
| dc.subject | Segurança | |
| dc.subject | Vulnerabilidades | |
| dc.title | Solidity code security analysis with generative AI | eng |
| dc.type | master thesis | |
| dspace.entity.type | Publication | |
| thesis.degree.name | Mestrado em Engenharia Informática |
