Ir para o conteúdo
SaferICO SaferICOSegurança de contratos inteligentes
Aberto — sem assinatura, sem taxa

Leia a transação antes de assinar.

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.

Sem assinaturaO código não sai do seu navegadorAPIs públicasNão acusa ninguém
//Sete ferramentas

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.

Decifre os dados da transação

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ó.

Leia o motivo do erro

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.

O que há de original neste contrato?

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.

Compare dois contratos

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.

De onde veio este dinheiro?

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.

O caminho mais curto entre dois endereços

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.

Escaneie um repositório público

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.

A disciplina que o distingue

É fácil uma ferramenta de rastreamento virar uma máquina de acusação. Esta foi construída para recusar isso.

⚖️ Proximidade não é crime

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.

01Diz o que mediu, não o que supôs

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.

02«Não encontrado» e «não existe» não são a mesma coisa

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.

03Semelhança não é roubo

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ê.

//Perguntas

Sobre o laboratório

Preciso de assinatura?
Não. O Laboratório de análise é aberto, gratuito e sem conta; além disso, todas as ferramentas são oferecidas como endpoints públicos de API para que você possa chamá-las do seu próprio código.
O código do meu repositório é enviado para vocês?
Não. Nós apenas resolvemos a lista de arquivos; quem busca cada arquivo no GitHub e o analisa localmente é o seu navegador. O código não passa pelos nossos servidores em nenhuma etapa, e repositórios privados nem são suportados, justamente porque não enviamos nenhuma chave de autorização.
Por que a decodificação devolve mais de um resultado?
Porque o seletor de função tem apenas quatro bytes, e mais de uma assinatura pode gerar o mesmo seletor — às vezes por acaso, às vezes por desenho. Esconder as outras possibilidades e mostrar uma com ar de certeza é exatamente o que o atacante explora.
Se um endereço aparece no rastreio, ele está envolvido?
Não, e a ferramenta não diz isso. Ela mostra as transações que ligam os endereços e, se houver, a fonte que o rotulou. A conclusão é decisão sua; proximidade, sozinha, não é prova.

Escaneie o contrato antes de mandar dinheiro

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.