A carregar preços…

Como ler um explorador de blocos: guia passo a passo

Uma transação real em Ethereum tem dezenas de campos. Veja o que cada um significa, porque importa e dois padrões de burla que já pode identificar sozinho.

Como ler um explorador de blocos: guia passo a passo

O que é um explorador de blocos e porque lhe dizem sempre para consultar um

Sempre que algo corre mal com uma transação cripto, seja um levantamento que ficou preso, um swap que não chegou ou um amigo que afirma que lhe pagou, o conselho habitual é “consultar o explorador”. Para um principiante, essa frase é frustrante, porque o explorador parece uma parede de cadeias hexadecimais e jargão técnico, e ninguém explica o que significam os campos.

Um explorador de blocos é, essencialmente, um motor de pesquisa para uma blockchain. Blockchains como Ethereum, Base, BNB Smart Chain, Polygon e Solana são registos públicos, o que significa que todas as transações ficam registadas para sempre e qualquer pessoa as pode consultar. A função do explorador é pegar nesses dados brutos do registo e apresentá-los num formato que os humanos consigam ler. O Etherscan é o explorador da mainnet Ethereum, o BaseScan cobre a rede Base, o BscScan cobre a BNB Smart Chain, o PolygonScan cobre a Polygon e o Solscan cobre a Solana. A competência que desenvolve num deles transfere-se diretamente para os outros, porque os conceitos subjacentes são os mesmos.

Saber ler um explorador é importante porque as blockchains minimizam a necessidade de confiança. Não há uma linha de apoio ao cliente para ligar quando fundos desaparecem. Se não conseguir verificar por si próprio o que aconteceu on-chain, tem de aceitar a palavra de outra pessoa, e é exatamente dessa situação que os burlões dependem. Assim que souber ler uma página de transação, pode responder a perguntas como: este pagamento foi mesmo enviado, chegou, foi uma transferência de token ou uma aprovação de contrato, e é seguro interagir novamente com este endereço?

Riscos e limites do que um explorador pode e não pode dizer

Antes de analisar uma transação real, é útil saber onde o explorador termina e onde não termina. O explorador mostra o que a blockchain registou, não o que foi prometido numa janela de chat, numa DM do Discord ou num site apelativo. Se um burlão o convenceu a enviar 1 ETH para “verificar a sua carteira”, o explorador confirmará prontamente que a transferência foi concluída, mas não lhe pode dizer que a proposta por trás disso era mentira.

Também existem modos de falha reais. As transações podem ficar presas na mempool, a zona de espera para transações não confirmadas, se a taxa de gas tiver sido definida demasiado baixa. Podem ser substituídas ou alvo de front-run por um bot que copiou uma operação lucrativa. Os contratos podem ser atualizados depois de os ter aprovado, transformando uma aprovação de token que antes era segura num mecanismo de drenagem. As perdas mais devastadoras dos últimos anos, incluindo o hack da ponte Ronin, o exploit Wormhole e inúmeros esvaziamentos de carteiras individuais, deixaram todos registos de transações perfeitamente legíveis. Os dados estavam lá, mas as vítimas não souberam lê-los a tempo.

Os exploradores também não são oráculos perfeitos de segurança. Um contrato pode ter sido auditado, ser amplamente utilizado e ainda assim conter uma backdoor escondida. Um token pode ter milhares de detentores e ainda assim ser um honeypot concebido para permitir comprar, mas nunca vender. Encare o explorador como uma ferramenta forense, não como um motor de recomendações. A informação está na página, mas a interpretação é sua responsabilidade.

A estrutura de uma página de transação, campo a campo

Abra qualquer hash de transação no Etherscan e verá uma página dividida em secções. No topo há um resumo numa só linha, no meio está o núcleo da transação com os campos principais, e no fundo há separadores para registos, transações internas, transferências de tokens e comentários. Vamos percorrer cada campo usando uma transferência típica de token ERC-20 como exemplo, porque as transferências de tokens são aquilo que a maioria dos principiantes realmente precisa de saber ler.

Hash da transação, estado e bloco

O Hash da transação é a impressão digital única da transação, uma longa sequência de letras e números que começa por 0x. É a informação mais útil, porque, se a tiver, pode encontrar a transação exata em qualquer explorador compatível. O campo Estado mostra um visto verde em caso de sucesso ou uma cruz vermelha em caso de falha. Uma transação falhada continua a consumir gas, por isso ver uma cruz vermelha não significa que o utilizador recebeu automaticamente o seu ETH de volta, normalmente significa que a lógica do contrato reverteu.

O campo Bloco mostra em que bloco a transação foi incluída e quantas "confirmações" tem. As confirmações são o número de blocos minerados por cima daquele que contém a sua transação. Quanto mais confirmações houver, mais difícil é revertê-la. A maioria dos serviços considera 12 confirmações em Ethereum muito seguras, embora as exchanges muitas vezes exijam mais para depósitos de grande valor.

De, Para e Interagiu com

O campo De é o endereço remetente. O campo Para é o endereço recetor, mas é aqui que os principiantes costumam confundir-se. Numa transferência nativa de ETH, o "Para" é a carteira do destinatário. Numa transferência de token ERC-20, o "Para" é, na verdade, o contrato do token, e a página mostrará uma segunda secção intitulada Interagiu com que identifica o contrato do token. A razão é que os tokens não vivem nas carteiras da mesma forma que o ETH. Vivem dentro de um smart contract, e o saldo da sua carteira é apenas um número que o contrato associa ao seu endereço.

Clique no endereço "Para" ou "Interagiu com" para abrir a página do contrato. Nessa página verá o nome do contrato, o implementador, a data de criação e um separador para ler o código-fonte se este tiver sido verificado. Contratos verificados são muito mais seguros para interagir, porque qualquer pessoa pode ler o que o código realmente faz.

Valor, taxa de transação e preço do gas

O campo Valor mostra quanto ETH nativo foi movimentado nesta transação. Numa transferência ERC-20, isto é muitas vezes 0 ETH, porque o que se movimentou foi o token, não ETH. O montante do token é mostrado separadamente abaixo. A Taxa de transação é o custo total de gas, pago em ETH, calculado como gas utilizado multiplicado pelo preço do gas. O Preço do gas é o que o remetente estava disposto a pagar por unidade de gas, denominado em gwei, uma subunidade de ETH em que 1 gwei equivale a 0,000000001 ETH.

Gas é a unidade que mede o trabalho computacional que a rede realizou. Uma transferência simples de ETH usa 21 000 gas. Um swap complexo numa exchange descentralizada pode usar várias centenas de milhares. É por isso que algumas transações custam alguns cêntimos e outras custam dezenas de dólares, mesmo quando o valor de ETH movimentado é o mesmo.

Nonce e dados de entrada

O Nonce é um contador para o endereço remetente, que começa em 0 e aumenta em 1 por cada transação. É assim que a rede mantém por ordem as transações da mesma carteira. Se enviar duas transações com o mesmo nonce, apenas uma será confirmada, e a outra será substituída ou descartada. O campo Dados de entrada mostra os dados brutos enviados com a transação. Numa transferência simples de ETH, está vazio ou diz "0x". Numa transferência de token ou chamada de contrato, contém um seletor de função e parâmetros, as instruções codificadas que o contrato irá executar.

Ler dados de entrada brutos é difícil, mas o Etherscan ajuda. Se o contrato estiver verificado, a página mostra uma secção Dados de entrada descodificados que traduz o hexadecimal para nomes de funções e argumentos legíveis. Numa transferência ERC-20, verá uma função chamada "transfer" com dois argumentos: o endereço do destinatário e o montante. Num swap Uniswap, verá algo como "swapExactTokensForTokens" com o montante de entrada, o mínimo de saída e o caminho dos tokens a serem transacionados. Isto é o mais próximo de um recibo que uma blockchain lhe dá.

Pendente vs descartada: o que cada estado significa

Uma transação começa a sua vida como Pendente, o que significa que foi transmitida para a rede e está na mempool à espera que um validador a inclua num bloco. Torna-se Bem-sucedida ou Falhada quando um bloco a inclui e a execução do contrato termina. Um estado separado, por vezes chamado Descartada ou Substituída, ocorre quando uma transação nunca é minerada, seja porque o preço do gas era demasiado baixo para os validadores lhe darem prioridade, seja porque o utilizador enviou uma transação de substituição com o mesmo nonce e uma taxa de gas mais alta.

Para acelerar uma transação bloqueada, a maioria das carteiras oferece um botão "acelerar" que retransmite a mesma transação com o mesmo nonce, mas com um preço de gas mais alto. Para a cancelar, a carteira envia uma transação de valor 0 para o seu próprio endereço com o mesmo nonce e um gas mais alto, tornando efetivamente a transação original inválida. Ambas as abordagens só funcionam enquanto a original ainda estiver pendente. Assim que uma transação é confirmada, nunca pode ser cancelada nem revertida, por isso é tão importante verificar duas vezes o endereço do destinatário antes de assinar.

Transações internas e transferências de tokens, e porque não são a mesma coisa

Desça na página da transação e verá separadores intitulados Registos, Transações internas e Transferências de tokens ERC-20. Os principiantes confundem-nos frequentemente, mas significam coisas diferentes. Transferências de tokens são eventos emitidos por um contrato de token quando alguém chama a sua função de transferência. Fazem parte da transação normal e são armazenadas on-chain como registos de eventos.

Transações internas, por vezes chamadas "traces", não são transações reais no sentido do consenso. São movimentos de ETH desencadeados pela execução de smart contracts. Quando um contrato chama outro contrato, ou envia ETH para um endereço como parte da sua lógica, esse movimento é registado como uma transação interna. Não aparecem nos blocos da mesma forma que as transações normais, mas o explorador mostra-as por conveniência. As transferências de tokens e as transações internas podem ser importantes ao auditar um ataque, porque os fundos roubados muitas vezes passam por vários contratos, e a única forma de seguir o rasto é ler estes separadores com atenção.

Dois sinais de alerta que agora consegue identificar sozinho

Com os campos acima em mente, dois padrões comuns de fraude tornam-se óbvios assim que souber o que procurar. O primeiro é um contrato a chamar setApprovalForAll em algo que não é um marketplace ERC-721 reconhecível. setApprovalForAll é uma função em contratos NFT que permite a um terceiro mover todos os NFT na sua carteira. A utilização legítima é rara fora de marketplaces conhecidos como OpenSea, Blur ou X2Y2. Se vir essa função chamada numa transação que não iniciou, ou com um endereço de operador que não seja um marketplace em que confia, a sua carteira foi comprometida e deve revogar a aprovação imediatamente usando uma ferramenta como o explorador Revoke.cash.

O segundo sinal de alerta é uma transferência nativa de ETH de valor 0 proveniente de um endereço que não reconhece. Os burlões usam uma tática chamada address poisoning, em que enviam uma transação de valor ínfimo ou zero a partir de um endereço parecido com um que já usou antes, esperando que mais tarde copie o endereço do seu histórico e envie fundos para eles por engano. A vista do explorador torna o padrão óbvio: o valor é 0, o "Para" é o seu endereço, e o "De" é um endereço aleatório sem histórico. Se vir uma destas na sua carteira, ignore-a e nunca confie num endereço do seu histórico de transações sem verificar manualmente os primeiros e os últimos caracteres.

Como acompanhar a atividade on-chain de forma inteligente

Os exploradores de blocos são poderosos, mas ler transações individuais manualmente não é escalável. Todos os dias, surgem milhares de novos lançamentos de tokens, aprovações e padrões de exploits em Ethereum, Base, BNB Smart Chain, Polygon e Solana, e a única forma de acompanhar tudo é seguir as notícias sobre a atividade que lhe interessa. O Zippfeed destaca manchetes de cripto com pontuação de sentimento, assinaladas como bullish, neutral ou bearish, e uma classificação de importância, para que possa ver que transações e anúncios realmente importam e ignorar o ruído. Combine isso com alguns minutos no Etherscan sempre que uma transação lhe parecer estranha, e terá o mesmo conjunto de ferramentas forenses que os profissionais usam.

Perguntas frequentes

É seguro colar o meu endereço num explorador de blocos?
Sim. Os exploradores de blocos são ferramentas apenas de leitura. Procurar um endereço ou um hash de transação não exige que ligue a sua wallet nem que assine nada, por isso não pode movimentar os seus fundos. O risco só começa se clicar numa ligação de uma fonte não verificada, por isso escreva sempre o URL do explorador diretamente no navegador ou use um marcador.
Como distingo uma transferência de ETH de uma transferência de tokens no Etherscan?
Uma transferência nativa de ETH mostra um valor diferente de zero no campo “Value” e um endereço “To” normal. Uma transferência de token ERC-20 mostra normalmente 0 no campo “Value”, aponta o campo “To” para um contrato de token e apresenta o montante real do token numa secção separada de “ERC-20 Token Transfers”. Ambas são transações normais, mas a rede interpreta-as de formas muito diferentes.
Devo acelerar ou cancelar uma transação bloqueada?
Se ainda quiser que a transação seja concluída, acelere-a reenviando-a com um preço de gas mais alto. Se a enviou por engano ou já não precisa dela, cancele-a enviando uma transação de valor 0 para o seu próprio endereço, com o mesmo nonce e um gas mais alto. Ambas as opções desaparecem assim que a transação for confirmada, por isso aja rapidamente. Isto é informação educativa geral, não aconselhamento financeiro, e os custos de gas são sempre pagos em ETH.
O que significa se um contrato que aprovei for explorado mais tarde?
Uma aprovação de token é uma instrução permanente que permite a um contrato específico movimentar uma quantidade específica de um token específico a partir da sua wallet. Se esse contrato for comprometido, o atacante pode usar a aprovação que já assinou para retirar o montante aprovado. Pode verificar e revogar aprovações ativas num site como Revoke.cash, e o hábito mais seguro é aprovar apenas o montante exato necessário e revogar as aprovações logo após a utilização.
Tokens relacionados
$ETH