A sua carteira mostra «0xa9059cbb…» e fica esperando a aprovação. O laboratório traduz isso numa frase clara: qual função está sendo chamada, e com quais argumentos. Ao lado, mais seis ferramentas de análise que atacam perguntas difíceis de responder na mão.
Cada ferramenta aqui responde a uma única pergunta — e também diz o que ela não é capaz de responder.
Cole calldata, um seletor de quatro bytes ou o nome de uma função. Quatro bytes podem casar com mais de uma assinatura — às vezes de propósito — então mostramos todas, e não um resultado só.
Transações modernas devolvem um erro personalizado de quatro bytes que ninguém consegue ler. Traduzimos isso na mensagem real e chamamos o código de panic pelo nome, em vez de deixá-lo como um número hexadecimal.
A maioria dos ERC-20 é OpenZeppelin mais algumas dezenas de linhas. Primeiro removemos as impressões digitais das bibliotecas; o que sobra é o que o dono do projeto de fato escreveu — e é aí que as alterações se escondem.
Trocar nomes de variáveis e reformatar o arquivo não esconde nada — a comparação trabalha sobre a estrutura de tokens, não sobre o texto. Ela relata o tamanho da sobreposição; nunca diz quem copiou de quem.
Caminha para trás em até três passos, até quem financiou o endereço pela primeira vez, e mostra a transação que prova cada passo. Proximidade não é crime, e a página escreve isso com todas as letras.
Os dois endereços são trazidos por você; não há lista no meio, nem acusação. O limite é de três passos — «nenhum caminho encontrado dentro desses limites» é uma frase correta; «não existe caminho» é uma frase que esta ferramenta não pode construir.
Nós resolvemos a lista de arquivos, mas quem busca os arquivos no GitHub e os analisa localmente é o seu navegador — o código não passa pelos nossos servidores. Só repositórios públicos: nenhum cabeçalho de autorização é enviado.
As ferramentas em si (o scanner, os painéis, o espaço de trabalho da SAFI) funcionam por enquanto com a interface em inglês. Estas páginas explicam tudo em português antes de você entrar nelas.
É fácil uma ferramenta de rastreamento virar uma máquina de acusação. Esta foi construída para recusar isso.
Um único passo entre dois endereços descreve a rede, não as pessoas. Qualquer carteira que já sacou de uma corretora grande está a um passo de dezenas de milhares de endereços — e entre eles, inevitavelmente, há gente ruim.
Por isso a ferramenta mostra a transação que prova cada passo e deixa a conclusão para você. Ela não chama um endereço de «golpista», porque isso é uma inferência sobre intenção, e a chain não registra intenção.
O seletor de quatro bytes pode casar com mais de uma assinatura, e essa colisão às vezes é fabricada de propósito para enganar quem lê rápido. Por isso mostramos todas as correspondências; exibir uma só, com ar de certeza, é exatamente o erro que o atacante explora.
A busca de caminho é limitada a três passos e a um número determinado de consultas. Quando não encontramos nada, a frase correta é que não encontramos dentro daqueles limites.
A diferença entre as duas frases é a diferença entre uma ferramenta em que você pode confiar e uma ferramenta que diz o que você quer ouvir.
A nota bruta de semelhança entre dois ERC-20 mede, no fundo, o quanto o OpenZeppelin é comum. Removemos primeiro as impressões digitais das bibliotecas para que o resultado seja de fato sobre o código escrito para aquele projeto.
E mesmo assim a ferramenta relata apenas o tamanho da sobreposição. Qual dos dois copiou do outro não é uma pergunta que o código responde — quem responde são as datas, e quem as lê é você.
Cole o endereço do contrato e veja as permissões do proprietário, a liquidez e o resultado da simulação de venda antes de se expor. A pequena taxa por escaneamento aparece antes da assinatura — e em qualquer assinatura ela já vem incluída, sem limite.