Blockchain e tecnologia Guia 6 de 6

Como checar um smart contract antes de interagir

Verificações práticas que quem não é desenvolvedor pode fazer antes de aprovar uma transação — status de verificação, funções privilegiadas, escopo de aprovação e revogação.

Illustration for: How to check a smart contract before you interact

Você não precisa saber ler código para evitar a maioria dos desastres com contratos. A maior parte das perdas vem de um pequeno número de condições que podem ser checadas.

1. O contrato está verificado?

Um contrato verificado tem o código-fonte publicado, que um block explorer confirmou compilar exatamente para o bytecode implantado. Não verificado significa que ninguém fora de quem implantou o contrato sabe o que ele faz.

Trate um contrato não verificado como hostil. Não existe motivo legítimo para um projeto que pede seu dinheiro esconder o código-fonte. Essa única checagem já elimina muita coisa.

2. O que o proprietário pode fazer?

Mesmo em código verificado, quem não é desenvolvedor consegue buscar as funções que importam. Procure por:

  • mint — o proprietário pode criar novos tokens sem limite? Isso dilui você a zero, quando ele quiser.
  • pause / blacklist — ele pode impedir você de vender, ou bloquear seu endereço específico? Tokens do tipo honeypot funcionam exatamente assim: você consegue comprar e depois não consegue vender.
  • setFee / setTax — a taxa de transferência pode ser alterada depois que você compra? Uma taxa elevada a 99% é uma armadilha.
  • onlyOwner — quantas funções são restritas a um único endereço, e esse endereço é uma chave única ou uma multisig?

Muitos explorers já mostram essas informações automaticamente. Se o proprietário pode emitir, pausar ou taxar quando quiser, as regras do token são o que ele decidir amanhã.

3. Entenda o que você está aprovando

É aqui que a maioria dos esvaziamentos de carteira acontece. Para deixar um contrato movimentar seus tokens, você concede um allowance (permissão). Duas coisas surpreendem as pessoas:

  • As permissões costumam ser ilimitadas. Muitas interfaces já vêm configuradas por padrão para aprovar o valor máximo possível, então o contrato pode movimentar cada token daquele tipo que você tem — agora e qualquer um que você venha a adquirir depois.
  • Elas permanecem indefinidamente. A aprovação continua valendo depois que você termina, até que você a revogue. Um protocolo comprometido um ano depois ainda pode agir sobre uma permissão que você concedeu hoje.

Leia a tela de aprovação. Sua carteira mostra qual contrato e qual valor. Se estiver marcado como ilimitado e você estiver fazendo uma troca pontual, defina um valor específico em vez disso.

4. Reconheça um pedido de assinatura malicioso

Nem toda assinatura é uma transação. Alguns pedidos pedem para você assinar uma mensagem que concede permissões fora da rede (off-chain) — uma técnica muito usada em sites falsos de mint e airdrop.

Sinais de alerta: um pedido de assinatura que você não iniciou; um pedido que aparece logo depois de clicar em um link de mensagem direta ou anúncio; um pedido cujo conteúdo sua carteira não consegue decodificar em algo legível; ou qualquer prompt em um site acessado a partir de uma fonte não solicitada. Na dúvida, recuse. Uma ação legítima sempre pode ser repetida.

5. Revogue aprovações antigas

Transforme isso em hábito. Use uma ferramenta de revogação confiável — acessada digitando o endereço diretamente, já que existem sites falsos de revogação, e esse é exatamente o tipo de armadilha que pega usuários preocupados com segurança — e limpe as permissões que você não precisa mais, especialmente as ilimitadas e as de protocolos que você não usa mais.

6. Trate “auditado” com cuidado

Uma auditoria é uma revisão feita em um momento específico, por pessoas falíveis, muitas vezes de uma versão que depois mudou. Muitos protocolos auditados já foram explorados.

Perguntas úteis: quem fez a auditoria, o relatório é público, quais problemas de gravidade foram encontrados, eles foram corrigidos, e o contrato foi modificado desde então? “Auditado por” sem um relatório linkado é marketing.

7. Prefira contratos testados pelo tempo

O sinal mais forte disponível é a sobrevivência. Um protocolo que guarda um valor significativo por anos sem sofrer um ataque esteve sob ataque contínuo de adversários bem financiados e resistiu. Esse é um teste mais difícil do que qualquer auditoria.

Contratos novos são, por definição, não comprovados, não importa quão bom o código pareça.

Uma checklist de pré-voo

  • Contrato verificado em um block explorer
  • Sem funções de mint ilimitado, pause, blacklist ou taxa mutável — ou propriedade renunciada
  • Escopo da aprovação entendido, e limitado quando possível
  • Pedido de assinatura iniciado por mim, em um site que eu acessei diretamente
  • Protocolo tem histórico operacional relevante e valor real em jogo
  • Usando uma carteira que guarda apenas o que eu posso perder

O que ler a seguir

Você concluiu a trilha de Ganhos & DeFi — e as quatro trilhas. O glossário cobre qualquer termo que você queira revisitar, e o hub de aprendizado mostra seu progresso.

Participe da discussão

Tem uma pergunta ou encontrou um erro?

Os comentários estão abertos a membros e são moderados antes de aparecer. Perguntas e correções são sempre bem-vindas; promoção e previsões de preço não são.

  • Grátis — um endereço de e-mail e uma senha, nada mais
  • Salve guias e acompanhe seu progresso
  • Ler nunca exige uma conta

Cadastre-se Entrar