Lendo uma blockchain com exploradores públicos · Aula 7 de 8
Tokens e contratos inteligentes em exploradores
7 min de leitura
Moedas e tokens são coisas diferentes
Toda rede tem uma moeda nativa: BTC no Bitcoin, ETH no Ethereum, SOL no Solana. A moeda nativa faz parte do protocolo e paga as taxas.
Um token é outra coisa. No Ethereum e em redes semelhantes, um token é um contrato inteligente que mantém seu próprio registro: uma tabela de endereços e a quantidade que cada um detém. Quando você "detém" 500 unidades de um token, seu endereço não as contém da mesma forma que contém ETH. O contrato do token registra que seu endereço tem direito a 500 unidades.
A maioria dos tokens segue padrões compartilhados, para que carteiras e exploradores saibam como exibi-los:
| Padrão | Tipo de token | Exemplos de uso |
|---|---|---|
| ERC-20 | Fungível: todas as unidades são idênticas | Stablecoins, tokens de governança |
| ERC-721 | Não fungível (NFT): cada token tem seu próprio ID | Colecionáveis, ingressos, certificados |
| ERC-1155 | Os dois tipos em um só contrato | Jogos, edições de itens |
Outras redes têm seus próprios equivalentes (por exemplo, tokens SPL na Solana e tokens TRC-20 na Tron), e os exploradores dessas redes os exibem de maneira semelhante.
Como é uma transferência de tokens
Uma transferência de tokens é uma transação que chama o contrato do token e solicita que ele atualize seu registro. Isso tem três consequências que confundem muitas pessoas na primeira vez:
- O campo To da transação mostra o contrato do token, não a pessoa que recebe os tokens.
- O campo Value geralmente é 0 ETH, porque nenhum ETH está sendo enviado.
- O destinatário e o valor reais estão nos dados de entrada, e o resultado é registrado como um evento Transfer nos logs.
Os exploradores leem esses eventos Transfer e os apresentam de maneira acessível, geralmente em uma seção chamada "Tokens transferidos" ou "Transferências de tokens ERC-20" na página da transação, e em uma aba separada "Transferências de tokens" na página de cada endereço. Se você estiver verificando se os tokens chegaram a um endereço, procure nessa aba, não na lista principal de transações.
Casas decimais: como ler o valor real
Os contratos armazenam os valores dos tokens como números inteiros. Cada token declara um número de casas decimais que indica às carteiras onde colocar a vírgula decimal.
- Muitos tokens usam 18 casas decimais, como o próprio ETH.
- As principais stablecoins atreladas ao dólar, USDC e USDT, usam 6 casas decimais no Ethereum.
Assim, um valor bruto de 1.500.000 em um contrato de USDC significa 1,5 USDC, enquanto o mesmo número bruto em um token com 18 casas decimais seria uma fração minúscula de uma unidade. Em geral, os exploradores fazem essa conversão para você, mas, se algum dia ler dados de entrada brutos ou exportar dados, aplique as casas decimais antes de tirar conclusões.
A página do token e o endereço do contrato
Cada token tem uma página que mostra seu nome, símbolo, casas decimais, oferta total, número de detentores, uma lista de transferências e, o mais importante, seu endereço de contrato.
O endereço do contrato é a identidade real do token. Nomes e símbolos não são exclusivos. Qualquer pessoa pode implantar em poucos minutos um contrato chamado "Tether USD" com o símbolo USDT. Esses tokens falsos são comuns e aparecem em carteiras e exploradores com uma aparência quase idêntica à dos verdadeiros.
Para verificar se um token é genuíno:
- Obtenha o endereço oficial do contrato no site ou na documentação oficial do emissor e compare o endereço completo.
- Confira o número de detentores, a idade e a atividade de transferências na página do token. Um token com um nome famoso, mas com poucos detentores e criado na semana passada, é um sinal de alerta.
- Lembre-se de que a mesma stablecoin existe como contratos separados em redes separadas. USDT no Ethereum e USDT na Tron são contratos diferentes em blockchains diferentes, assim como USDC no Ethereum e USDC na BNB Smart Chain. Como as redes EVM compartilham um mesmo formato de endereço, é fácil cometer o erro de enviar para o endereço certo na rede EVM errada, o que pode significar perder os fundos ou precisar de uma recuperação difícil.
Páginas de contratos: código verificado, leitura e escrita
A página de um endereço de contrato inteligente tem abas adicionais:
- Código: se o desenvolvedor tiver verificado o contrato, o explorador exibe o código-fonte e confirma que ele compila exatamente para o código implantado na blockchain. A verificação não significa que o contrato é seguro ou honesto; significa que qualquer pessoa pode ler o que ele faz.
- Ler contrato: permite consultar valores públicos, como o saldo de um endereço ou a oferta total, diretamente na blockchain.
- Escrever no contrato: permite enviar transações ao contrato a partir de uma carteira conectada. Tenha muito cuidado ao usar esse recurso.
- Proxy: muitos contratos são atualizáveis. Um contrato proxy encaminha chamadas a um contrato de implementação que seus administradores podem substituir. Os exploradores mostram os dois endereços. Ser atualizável significa que as regras podem mudar mais tarde.
Aprovações: permissão para gastar seus tokens
Aplicativos descentralizados geralmente precisam movimentar tokens em seu nome, por exemplo, para realizar uma troca. Eles fazem isso por meio de uma aprovação: você envia uma transação que chama a função approve do token, permitindo que um contrato gastador identificado movimente até uma quantidade determinada dos seus tokens.
Os exploradores mostram as aprovações como transações com o método "Approve", e muitos têm um verificador de aprovações de tokens que lista todos os gastadores que seu endereço autorizou. Vale conhecer dois riscos:
- As aprovações geralmente são ilimitadas por padrão, então o gastador pode movimentar todos os tokens daquele tipo, agora ou mais tarde.
- Um gastador malicioso ou comprometido pode retirar os tokens aprovados sem precisar de nenhuma outra assinatura sua.
Revisar e revogar aprovações antigas é um hábito básico de segurança, e o explorador é onde você pode consultá-las. Saiba que alguns tokens e aplicativos também aceitam assinaturas permit (por exemplo, EIP-2612 ou Permit2): você assina uma mensagem na sua carteira em vez de enviar uma transação Approve, então nenhuma aprovação aparece na blockchain até que o gastador a utilize. Leia as solicitações de assinatura com o mesmo cuidado que teria com as transações.
Golpes que você pode identificar em um explorador
Como a blockchain é pública e qualquer pessoa pode criar tokens e enviar transações, alguns golpes deixam rastros claros:
- Envenenamento de endereço. O golpista cria um endereço cujos primeiros e últimos caracteres correspondem aos de um endereço que você usa e, em seguida, envia uma transferência de valor muito pequeno ou zero (geralmente de um token falso) para que o endereço parecido apareça no seu histórico. A intenção é que você o copie por engano mais tarde. Sempre compare o endereço completo.
- Tokens de spam e phishing. Tokens desconhecidos aparecem no seu endereço com nomes que incluem um link para um site e convidam você a "resgatar" algo. Acessar o site e assinar o que ele solicitar pode esvaziar sua carteira. Muitos exploradores ocultam ou sinalizam esses tokens.
- Versões falsas de tokens reais, conforme descrito acima.
Nada disso pode, por si só, tomar seus fundos. Esses golpes só funcionam se você agir com base neles.
NFTs em exploradores
Para tokens ERC-721 e ERC-1155, os exploradores mostram o ID do token, o proprietário atual e o histórico de transferências. A imagem e a descrição geralmente vêm de um link de metadados armazenado pelo contrato. Esses metadados costumam ficar fora da blockchain, em um servidor web ou em uma rede de armazenamento descentralizada, então a imagem exibida não está necessariamente armazenada na própria blockchain.
Foco no exame: moedas nativas versus tokens mantidos no registro de um contrato; ERC-20, ERC-721 e ERC-1155; por que uma transferência de tokens mostra o contrato do token em To e 0 ETH em Value, com o destinatário no evento Transfer; casas decimais (18 é comum; USDC e USDT usam 6 no Ethereum); o endereço do contrato como identidade do token; o significado de contratos verificados e proxy; aprovações e seus riscos; e envenenamento de endereço.
Questões de prática
Verifique o que você aprendeu. Estas questões não contam para o exame.
Entre para salvar seu progresso e continuar de onde parou. É grátis. Entrar