Em DeFi, os depósitos, os empréstimos e as trocas são todos realizados automaticamente por contratos inteligentes. Não há revisão humana nem apoio ao cliente que possa recuperar o dinheiro enviado por engano. Se o contrato estiver bem escrito, é a regra mais fiável; se estiver mal escrito, as vulnerabilidades também serão «executadas» à risca.

Moeda mencionada no artigo: $ETH cotada a 2500.87 (+2.6% nas últimas 24 h).

O código é a regra — e as vulnerabilidades também:

Depois de implantados na blockchain, os contratos inteligentes são executados automaticamente de acordo com o código. Isto traz transparência e previsibilidade: qualquer pessoa pode ler o código e, nos contratos que não podem ser atualizados, as regras não mudam porque alguém mudou de ideias.

Por outro lado, quando alguém descobre e explora uma vulnerabilidade no código, os fundos podem ser transferidos em apenas algumas transações e ser muito difíceis de recuperar. O The DAO, em 2016, é um exemplo: o contrato foi atacado através de uma vulnerabilidade de reentrada e, em seguida, a Ethereum lidou com a situação através de um hard fork. A cadeia original, que não sofreu o fork, continuou como Ethereum Classic (ETC).

O que é que uma auditoria analisa, afinal?

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

Entre os aspetos habitualmente analisados estão as vulnerabilidades de reentrada, 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 detetar e reduzir este tipo de vulnerabilidades comuns, mas estão limitadas pelo tempo, pelos recursos humanos e pelo âmbito da análise.

Porque é que podem ocorrer problemas mesmo após uma auditoria?

Em primeiro lugar, a auditoria abrange apenas o código incluído no âmbito definido. Os contratos fora desse âmbito e as funcionalidades adicionadas posteriormente não são analisados. Se o código for alterado depois da auditoria, ou se a versão efetivamente implantada 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: podem ocorrer perdas se um oráculo ou outro protocolo de que o protocolo depende tiver problemas, se a chave de administrador com poderes de atualização for roubada ou se o front-end do site for adulterado para levar os utilizadores a assinar transações maliciosas.

O que podem fazer os utilizadores comuns?

Ao consultar um relatório de auditoria, preste atenção à data, ao âmbito e aos problemas ainda por corrigir. Não se limite a ler as palavras «auditado». Também pode verificar se o contrato pode ser atualizado unilateralmente e se os poderes de atualização são controlados por uma carteira multisig e por um bloqueio temporal.

Os protocolos que operam há mais tempo e já foram postos à prova por grandes quantidades de fundos costumam ser considerados mais fiáveis, mas isso não significa que não tenham vulnerabilidades. Por isso, em DeFi, só coloque fundos cuja perda consiga suportar, distribua os montantes elevados por diferentes protocolos e lembre-se de revogar as autorizações dos protocolos que já não utiliza.

Para terminar:

A auditoria é o ponto de partida da segurança, não o ponto de chegada. É mais sensato encarar o risco dos contratos inteligentes como um custo inerente à participação em DeFi do que confiar apenas nas palavras «auditado». Todos os ganhos implicam riscos correspondentes; pense bem no pior cenário e em quanto pode perder.

O que gostariam de ouvir a seguir? DeFi ou outro tema?

Isto não é aconselhamento de investimento. Não faça o mesmo.