Dissertação

{pt_PT=Análise Estática de Smart Contracts} {} EVALUATED

{pt=Com o avanço da tecnologia surgiu o Bitcoin e mais tarde o Ethereum. Com esta evolução, o conceito de moeda virtual tornou-se cada vez mais popular. Com o advento do Ethereum existe a possibilidade da criação de Smart Contracts que podem codificar quaisquer regras. Estes contratos podem armazenar milhões de euros em moedas virtuais. Uma vez que um contrato seja deployed é difícil de o corrigir, desta forma, se for descoberta uma vulnerabilidade num contrato deployed, um atacante vê uma grande oportunidade para atacar estes contratos de modo a extrair todas as suas moedas. Surge então a necessidade de poder realizar uma auditoria aos contratos para perceber se contêm alguma vulnerabilidade. Neste relatório de dissertação é apresentado o estado da arte da investigação nesta área assim como é feita a introdução da Conkas, uma ferramenta de análise estática modular, que analisa o bytecode do contrato executando-o simbolicamente. É estendida a ferramenta Rattle que dará suporte à representação intermédia usada pela Conkas. É também realizada uma comparação da Conkas com 10 ferramentas consideradas estado da arte. Esta comparação mostra que a Conkas tem uma performance melhor que a ferramenta Mythril e tem uma taxa de verdadeiros positivos melhor do que todas as ferramentas usadas na comparação., en=With the advance of technology, Bitcoin came up and later Ethereum. With this evolution, the concept of the virtual coin became even more popular. With the advent of Ethereum, there is the possibility to create Smart Contracts that can code any rules. These contracts can handle millions of euros in virtual coins. Once a contract is deployed it is hard to fix it, this way, if a vulnerability is found in a deployed contract, an attacker sees a great opportunity to exploit these contracts to steal all the coins. It comes up with the need to audit these contracts to understand if they have any vulnerability. In this dissertation, is shown the state of the art of research in this area and is introduced Conkas, a modular tool of static analysis that analyses the contract's bytecode executing it symbolically. The Rattle tool is extended to give support to the intermediate representation of Conkas. A comparison is also made against 10 tools which are considered state of the art. This comparison shows us that Conkas has a better performance compared to Mythril and has a better true positive rate than all other tools used in the comparison.}
{pt=Ethereum Virtual Machine, Blockchain, Smart Contracts, Análise Estática, Vulnerabilidades, Execução Simbólica, en=Ethereum Virtual Machine, Blockchain, Smart Contracts, Static Analysis, Vulnerabilities, Symbolic Execution}

Janeiro 28, 2021, 14:30

Orientação

ORIENTADOR

Pedro Miguel dos Santos Alves Madeira Adão

Departamento de Engenharia Informática (DEI)

Professor Associado