A necessidade de revisão e auditoria de contratos inteligentes para detecção de possíveis vulnerabilidades

Nessa era da “Internet do Valor”, da Web 3.0 (“Web Semântica”), e da expansão da blockchain; cada vez mais temos visto contratos inteligentes (smart contracts, em inglês) serem criados. Isso possibilita enormemente a evolução digital autônoma de tomada de decisões e funcionalidades no meio cibernético.

A demanda de confiança em terceiro para realização de transações, bem como para garantir a execução de contratos já se encontra temerária. A adoção em grande escala de projetos que visam afastar o intermediador é algo que merece a atenção, uma vez que gera o denominado “Efeito de Rede” de forma positiva para esse ecossistema e, por conseguinte, coloca em risco os sistemas que não aderem a esse novo modelo. Contudo, há de se ter cautela na utilização dos contratos inteligentes, tendo em vista vulnerabilidades que existem e devem ser sanadas.

Contratos inteligentes são programas que se autoexecutam e se autoresolvem de acordo com as instruções aplicadas e podem ter diversas funcionalidades, mas todas geram custos, gastos que são realizados para a aplicação das funcionalidades; tudo graças à tecnologia blockchain e a chegada da criptoeconomia, uma vez que atrelou ativos criptografados (que possuem valor econômico) aos contratos inteligentes (ou melhor, “contratos automatizados”).

Assim, por mais que os contratos gerem gastos e, de certa forma, intimidam o desenvolvimento aleatório e sem preocupação com erros; ainda há diversas vulnerabilidades na criação de um smart contract, principalmente considerando que as linguagens utilizadas são Turing Complete, ou seja, possibilitam a realização de qualquer tarefa com alto grau de complexidade e, assim, podem gerar diversos resultados não previstos pelos desenvolvedores.

Há algumas ferramentas capazes de detectar vulnerabilidades geradas durante o desenvolvimento de smart contracts, dentre elas, pode-se citar os frameworks Mythril e Slither. Mythril é uma ferramenta de análise de segurança para bytecode EVM (Ethereum Virtual Machine); suporta contratos inteligentes construídos para a rede Ethereum, Hedera, Quorum, Vechain, Roostock, Tron e outras blockchains compatíveis com EVM. Já o Slither é uma ferramenta de análise estática que permite que os desenvolvedores encontrem, em poucos segundos, vulnerabilidades em seu código de contratos inteligentes feitos na linguagem de programação solidity e também pode ser usado para otimização ou revisão do código.

Importante ainda se realizar uma auditoria em determinados projetos que se utilizam de contratos inteligentes para serem implementados, especialmente projetos de DAO's (Decentralized Autonomous Organizations) - ou DAC's (Decentralized Autonomous Corporations) -, haja vista o alto grau de complexidade das funcionalidades aplicadas, bem como a credibilidade e a disponibilidade da aplicação serem requisitos de existência de uma DAO. Assim, a contratação de um profissional ou de uma empresa terceirizada para a realização da auditoria do projeto é medida imprescindível para boa implementação do smart contract.

Dessa forma, faz-se necessário revisão e auditoria dos contratos inteligentes para evitar que situações não previstas pelos desenvolvedores se tornem vulnerabilidades fáceis de serem exploradas por agentes maliciosos e, com isso, acarretem enormes prejuízos econômicos aos idealizadores do projeto.


Leonardo Gomes dos Santos

Policial Civil de GO

Analista/investigador no Núcleo de Operações com Criptoativos (NOC), Ministério da Justiça e Segurança Pública do Brasil.

Colaborador no website Blocksherlock

E-mail: lgs.crypto@yandex.com

Doações para o endereço de ETH no ENS: lgscrypto.eth