1. Início
  2. Glossário
  3. Auditoria de contrato inteligente

Auditoria de contrato inteligente

Também conhecido como Auditoria de segurança · Auditoria de DeFi

Definição

Uma auditoria de contrato inteligente é uma revisão independente de segurança do código de um protocolo, que busca vulnerabilidades antes de ele entrar no ar ou logo depois. Ela reduz o risco dentro do escopo e da data informados, mas não é uma promessa de que o código está livre de bugs.

Contratos inteligentes são um software incomum. Eles guardam dinheiro diretamente, rodam em público, onde qualquer pessoa pode estudá-los, e depois de implantados são difíceis ou impossíveis de mudar. Uma linha esquecida pode permitir que um atacante esvazie um protocolo em uma só transação. A auditoria é a principal defesa antes do lançamento: especialistas leem o código antes dos atacantes.

O que os auditores procuram

  • Erros de lógica: código que faz o que diz, mas não o que se pretendia, como uma fórmula de recompensa que paga em dobro.
  • Controle de acesso: funções que qualquer pessoa pode chamar, mas que deveriam ser restritas a um administrador.
  • Reentrância: uma chamada externa que permite ao atacante reentrar em uma função antes de a primeira chamada terminar, o bug por trás do ataque à DAO em 2016.
  • Manipulação de preço: lógica que confia em um preço que pode ser movido dentro de uma transação, muitas vezes por meio de um oráculo frágil.
  • Desenho econômico: incentivos que um agente com muito capital poderia explorar, mesmo quando cada linha funciona como escrita.

Os auditores combinam revisão manual com ferramentas automatizadas e, cada vez mais, verificação formal, que prova matematicamente que o código atende a uma especificação escrita.

Dois modelos de auditoria

Em uma auditoria tradicional feita por uma empresa, uma equipe pequena de engenheiros de segurança estuda o código por um período definido e entrega um relatório. Em uma auditoria competitiva, muitos pesquisadores independentes revisam o mesmo código ao mesmo tempo e são pagos de acordo com os problemas que encontram. Os dois modelos tendem a pegar coisas diferentes, por isso os protocolos muitas vezes usam ambos.

Como ler um relatório de auditoria

Comece pelo escopo: quais contratos, qual versão do código e quais datas. Uma auditoria da versão um diz pouco sobre a versão dois. Depois, leia os achados por gravidade. Achados críticos e altos podem levar à perda de fundos; os médios em geral exigem condições específicas; os baixos e informativos tratam de boas práticas. Para cada achado, veja se está marcado como corrigido, reconhecido ou contestado, e se a correção foi revisada de novo.

Um exemplo simples

Um relatório lista um achado de gravidade alta: um erro de arredondamento permite que um usuário retire um pouco mais do que colocou, e repetir isso em milhares de transações poderia esvaziar um vault. A equipe corrige antes do lançamento e os auditores confirmam a correção. Ninguém de fora fica sabendo do bug. É a auditoria cumprindo seu papel, e é por isso que a seção de achados importa mais do que o logotipo na capa.

Riscos e limites

Uma auditoria é uma fotografia. O código muda depois da revisão, novos contratos interagem com ele e as técnicas de ataque evoluem. Alguns exploits caros em DeFi atingiram protocolos auditados, muitas vezes por meio de código fora do escopo ou da forma como vários protocolos interagiam. As auditorias também não conseguem avaliar as partes offchain de um sistema, como a gestão das chaves ou a composição das reservas. Por isso a auditoria é mais útil como uma camada entre várias: um bug bounty que continua recompensando pesquisadores depois do lançamento, monitoramento em tempo de execução que observa as transações ao vivo e prova de reservas para os próprios ativos.

Como a Tori Finance usa isso

Os contratos inteligentes da Tori Finance são auditados pela Sherlock e pela Nethermind. As auditorias são uma camada da sua segurança, ao lado do monitoramento em tempo de execução da Hypernative e da prova de reservas da Accountable.

Perguntas frequentes

Um protocolo auditado ainda pode ser hackeado?

Sim. Uma auditoria cobre um código específico em um momento específico. Mudanças posteriores, código fora do escopo, interações com outros protocolos e novas técnicas de ataque podem levar a perdas.

O que significam crítico, alto, médio e baixo em uma auditoria?

São classificações dos achados por impacto e probabilidade. Problemas críticos e altos podem levar à perda de fundos ou a um protocolo quebrado, os médios exigem condições específicas, e os baixos e informativos são menores ou dizem respeito à qualidade do código.

Quanto tempo leva uma auditoria de contrato inteligente?

Depende do tamanho e da complexidade do código. Um contrato pequeno pode levar dias; um protocolo grande pode levar várias semanas, em geral seguidas de uma revisão mais curta das correções.

Fontes

Escrito pela equipe da Tori Finance. Não é recomendação de investimento. Os rendimentos variam; o capital está sujeito a risco.