Vou contar um erro que cometi: no começo, eu não tinha entendido isso.

Na DeFi, depósitos, empréstimos e trocas são realizados automaticamente por contratos inteligentes, sem análise humana e sem atendimento ao cliente capaz de recuperar o dinheiro enviado por engano. Se o contrato estiver bem escrito, ele é a regra mais confiável; se houver um erro, a vulnerabilidade também será “executada” à risca.

$ETH Ethereum é uma das primeiras blockchains públicas a oferecer suporte a contratos inteligentes de uso geral. Atualmente, 2347.97 (24h +0.86%).

▍O código é a regra, e as vulnerabilidades também

Depois que um contrato inteligente é implantado na blockchain, ele é executado automaticamente de acordo com o código. Isso traz transparência e previsibilidade: qualquer pessoa pode ler o código, e as regras de um contrato que não pode ser atualizado não mudam porque alguém mudou de ideia.

Por outro lado, quando uma vulnerabilidade no código é descoberta e explorada, os fundos podem ser transferidos em poucas transações e ser muito difíceis de recuperar. The DAO, em 2016, é um exemplo: o contrato foi atacado devido a uma vulnerabilidade de reentrância. Em seguida, o Ethereum lidou com o problema por meio de um hard fork; a cadeia original, que não sofreu o fork, continuou como Ethereum Classic (ETC).

▍O que é exatamente auditado

Uma auditoria de segurança é uma análise realizada por uma equipa de segurança independente, num determinado momento, sobre uma versão específica do código. O relatório de auditoria geralmente lista os problemas encontrados, a gravidade de cada um e se o projeto já os corrigiu.

Entre os aspetos verificados com frequência estão a reentrância, erros no controlo de permissões, problemas de precisão nos cálculos e a possibilidade de manipulação de oráculos. As auditorias ajudam a identificar e reduzir vulnerabilidades comuns deste tipo, mas estão sujeitas a limitações de tempo, recursos humanos e âmbito.

▍Porque é que ainda acontecem problemas após uma auditoria

Em primeiro lugar, a auditoria abrange apenas o código incluído no âmbito definido; contratos fora desse âmbito e funcionalidades acrescentadas posteriormente não são analisados. Se o código for alterado depois da auditoria, ou se a versão efetivamente implementada for diferente da versão auditada, as conclusões não podem ser aplicadas diretamente.

Em segundo lugar, alguns riscos não estão no próprio código: problemas com os oráculos ou outros protocolos dos quais o protocolo depende, o roubo da chave de administrador que controla as atualizações ou a adulteração da interface do site para levar os utilizadores a assinar transações maliciosas podem causar prejuízos.

▍O que pode fazer um utilizador comum

Ao ler um relatório de auditoria, preste atenção à data, ao âmbito e aos problemas ainda não corrigidos. Não se limite a reparar nas palavras «auditado». Também pode verificar se o contrato pode ser atualizado unilateralmente e se as permissões de atualização são controladas por uma carteira multisig e por um bloqueio temporal.

Em geral, os protocolos com um longo histórico de funcionamento e que já movimentaram grandes volumes de fundos são considerados mais fiáveis, mas isso não significa que estejam livres de vulnerabilidades. Por isso, em DeFi, coloque apenas fundos cuja perda conseguiria suportar, distribua montantes elevados por diferentes protocolos e lembre-se de revogar as autorizações de protocolos que já não utiliza.

▍Para terminar

A auditoria é o ponto de partida da segurança, não o ponto de chegada. É mais realista encarar os riscos dos contratos inteligentes como um custo inevitável da participação em DeFi do que confiar apenas nas palavras «auditado». O conhecimento pode ajudar a evitar erros, mas não substitui a gestão de risco.

Que outros temas gostaria de conhecer? Conte-me nos comentários.