Para verificar um endereço de carteira cripto antes de enviar, compare cada caractere com uma fonte fidedigna, confirme a totalidade do endereço e não apenas o início e o fim, e envie primeiro uma pequena transação de teste. Nas redes EVM, os caracteres finais de checksum têm de coincidir; nas carteiras hardware, o endereço apresentado no ecrã do dispositivo é o único que conta.
Pontos-chave
- Os ataques de envenenamento de endereços criam endereços semelhantes que coincidem com o seu endereço real no início e no fim, por isso verificar apenas esses caracteres não é suficiente.
- Cada endereço EVM tem um checksum integrado, o que significa que as letras maiúsculas e minúsculas codificam uma impressão digital que deteta a maioria dos erros de digitação.
- Enviar uma pequena transação de teste antes do montante total é o hábito isoladamente mais eficaz, porque força uma confirmação real on-chain com taxas reais.
- As carteiras hardware acrescentam um ecrã fidedigno, pelo que o endereço que confirma no ecrã do dispositivo é o endereço que a transação irá de facto utilizar.
Porque é que a verificação de endereços é o hábito com maior impacto em cripto
As transações em cripto são irreversíveis. Assim que uma transferência é assinada e transmitida, nenhuma equipa de apoio, exchange ou programador a pode reverter, porque não existe uma autoridade central com esse poder. A rede executará tudo o que a sua carteira assinou, mesmo que o endereço de destino tenha sido um erro de digitação, um esquema colado ou uma substituição maliciosa. Essa propriedade faz parte do que torna a blockchain útil, mas é também o que torna a verificação de endereços invulgarmente importante em comparação com, por exemplo, uma transferência bancária em que um departamento de fraude pode, por vezes, recuperar fundos.
A boa notícia é que os erros mais comuns são também os mais baratos de prevenir. Os ataques de envenenamento de endereços, malware de área de transferência e erros humanos de copiar e colar dependem todos de o utilizador olhar de relance para um endereço e aprová-lo. Uma rotina de verificação curta e repetível bloqueia a grande maioria das perdas no mundo real. O resto deste artigo explica como é essa rotina, porque é que cada passo funciona e onde ainda tem limites.
Se retirar apenas uma ideia, que seja esta: o endereço de destino é o único facto que determina quem recebe os seus fundos, e todas as outras salvaguardas em cripto, desde carteiras hardware a multi-sig, dependem, em última análise, de o ler corretamente. Tudo o que se segue está ao serviço desse momento.
Os riscos reais: envenenamento de endereços, malware de área de transferência e erros de copiar e colar
Antes de percorrer a lista de verificação, ajuda compreender os três modos de falha que a rotina foi concebida para derrotar. Não são teóricos e, juntos, são responsáveis por uma grande parte dos fundos perdidos por pessoas que julgavam estar a ser cuidadosas.
Envenenamento de endereços. Um atacante observa a blockchain pública, encontra um endereço que já utilizou e gera um novo endereço que partilha os mesmos primeiros seis e últimos quatro caracteres. Depois, envia-lhe uma pequena transação, frequentemente de valor zero ou de um token sem valor, a partir desse endereço semelhante. A ideia é que, quando mais tarde abrir o seu histórico ou copiar um endereço a partir dele, o preenchimento automático ou a memória muscular lhe entregue o endereço do atacante em vez do real. Como o início e o fim coincidem, olha de relance e aprova. Isto é envenenamento de endereços e custa às vítimas tudo o que enviam.
Malware de área de transferência. Alguns tipos de malware em execução no seu computador observam silenciosamente a sua área de transferência. No momento em que copia um endereço de carteira, o malware substitui-o por um pertencente ao atacante. A substituição é, normalmente, concebida para coincidir visualmente, para que o utilizador não repare. É por isso que verificar o endereço visualmente numa carteira hardware, onde a área de transferência não tem influência, é a defesa mais forte.
Erros de copiar e colar e humanos. Mesmo sem um atacante envolvido, os endereços são cadeias longas de letras e números com maiúsculas e minúsculas misturadas. Truncar, transpor um caractere ou colar a partir de uma área de transferência desatualizada no campo errado é fácil de acontecer. Nas redes EVM, a maioria desses erros é apanhada pelo checksum descrito abaixo. Na Bitcoin, a rede de segurança equivalente é o formato Base58Check, que incorpora um checksum na própria cadeia.
A forma honesta de enquadrar isto é que nenhum destes ataques é exótico. São rotineiros, são automatizados e visam especificamente utilizadores que julgam estar a ser cuidadosos. Um hábito de verificação é a diferença entre ser cuidadoso e estar protegido.
Como funcionam realmente os endereços de cripto e onde se escondem as redes de segurança
Os endereços de cripto parecem aleatórios, mas a maioria dos formatos de endereço modernos incorpora um sistema integrado de deteção de erros. Compreender, mesmo que de forma genérica, como isso funciona faz com que a lista de verificação pareça menos superstição e mais a leitura de um checksum, que é exatamente o que está a fazer.
Nas redes EVM, a família que inclui Ethereum, BNB Chain, Polygon, Arbitrum, Base e a maioria das chains compatíveis com EVM, os endereços são escritos como strings hexadecimais de 42 caracteres que começam por 0x. As letras nessas strings são deliberadamente combinadas entre maiúsculas e minúsculas, e essa combinação não é cosmética. A capitalização é um checksum, o que significa que as letras codificam um hash do endereço. Se um único carácter for mal digitado, o padrão de capitalização deixará de corresponder à nova string, e qualquer carteira bem construída assinalá-lo-á como inválido.
É por isso que a verificação de checksum em endereços EVM é a primeira linha técnica de defesa. As carteiras que respeitam a norma, incluindo MetaMask, Rabby, Frame e a maioria das interfaces de carteiras hardware, recusam enviar para um endereço cujo checksum não seja válido. Se a sua carteira aceitar qualquer variação de maiúsculas e minúsculas, isso é um sinal de alerta, não uma funcionalidade.
Os endereços Bitcoin utilizam um sistema semelhante chamado Base58Check. Cada endereço contém um checksum de quatro bytes derivado do hash da chave pública. A codificação é sensível a maiúsculas e minúsculas, o que significa que 1BitcoinAddress e 1bitcoinaddress não são intercambiáveis, e uma carteira que receba uma string mal digitada detetará a discrepância. Os endereços SegWit, que começam por bc1, utilizam um checksum diferente mas igualmente robusto chamado Bech32, concebido especificamente para ser legível e resistente a erros de digitação.
Os endereços Solana são mais curtos e utilizam Base58, mas incluem um checksum interno semelhante, e as carteiras主流 rejeitam strings malformadas. O mesmo princípio geral aplica-se em todas as redes: um endereço válido é uma string que passa um teste matemático incorporado, e um inválido é uma string que não passa. O seu papel, enquanto utilizador, é fornecer à carteira uma string que tenha alguma hipótese de passar esse teste, o que depende sobretudo de não permitir que nada a altere no caminho entre a fonte e o campo de destino.
A rotina de verificação de 30 segundos, passo a passo
Abaixo está uma rotina que demora cerca de 30 segundos para um endereço típico. Foi concebida para ser aborrecida, repetível e fácil de executar mesmo quando tem pressa, porque, na prática, as pessoas aprovam transações com pressa mais vezes do que o contrário.
Passo 1: Obtenha o endereço a partir de uma fonte confiável
A cadeia de verificação é tão forte quanto o seu elo mais fraco. Se receber o endereço através de um canal que um atacante consegue ler, não pode confiar nele. Sempre que possível, prefira fontes que sejam verificadas de ponta a ponta: um código QR lido presencialmente, um domínio que alcançou digitando-o você mesmo, uma página de levantamento de uma exchange onde iniciou sessão diretamente, ou uma mensagem assinada pela conta conhecida do destinatário. Trate como não confiáveis, por defeito, endereços enviados por DMs do Discord, Telegram, emails não solicitados ou formulários de contacto de websites.
Para empresas, prefira um endereço que tenha obtido a partir da sua própria conta, e não um que tenha surgido numa conversa de suporte. Para transferências peer-to-peer, peça à contraparte que envie o endereço por um segundo canal para que possa comparar, o que é lento, mas eficaz.
Passo 2: Leia a string completa, não apenas o início e o fim
Este é o passo que derrota o address poisoning. Os ataques com endereços semelhantes são concebidos para sobreviver a uma vista rápida que verifica apenas o primeiro e o último carácter, por isso resista a esse atalho. Leia o endereço completo, de preferência em voz alta ou tocando em cada segmento no ecrã de uma carteira hardware. Se estiver a ler num computador, cole-o num editor de texto simples com um tipo de letra monoespaçado para que cada carácter seja visualmente distinto. Esteja atento a substituições de 0 e O, 1 e l, e do I maiúsculo e do l minúsculo.
Não há vergonha em admitir que comparar duas strings de 42 caracteres é difícil. É exatamente esse o ponto. Trate-o como um ato deliberado de comparação, não como uma verificação periférica, e detetará a maioria dos ataques.
Passo 3: Confirme o checksum sempre que aplicável
Nas redes EVM, o checksum é implícito. Se digitar mal um carácter ou colar uma string com a capitalização errada, uma carteira respeitável avisará que o endereço é inválido. Não ignore esse aviso. Se pretender uma verificação mais profunda, ferramentas como o Etherscan aceitam um endereço e mostram se o checksum está correto, o que é uma forma rápida de validar uma string copiada de uma fonte pouco habitual.
No Bitcoin, aplica-se a mesma lógica, mas o aviso geralmente vem da própria carteira, já que a maioria das carteiras modernas recusa transmitir para um endereço que falhe a validação Base58Check ou Bech32. Mais uma vez, não ignore. Uma carteira que o deixa enviar para um endereço claramente malformado não é sua amiga.
Passo 4: Verifique no ecrã de uma carteira hardware
Uma carteira hardware como uma Ledger, Trezor, GridPlus ou Keystone é mais do que simples cold storage. É um ecrã confiável, o que significa que o endereço mostrado no ecrã do próprio dispositivo não pode ser adulterado por malware no computador anfitrião. Quando assina uma transação, o dispositivo mostra o endereço de destino no seu ecrã. É esse ecrã, e não o monitor do seu computador, que deve estar a ler.
O fluxo de trabalho é simples. Inicie a transação na sua carteira de software e, em seguida, observe o pedido do dispositivo hardware. Confirme que o endereço mostrado no dispositivo corresponde ao esperado, carácter a carácter. Só aprove a transação se corresponder. Este único passo derrota quase todos os ataques conhecidos de manipulação de clipboard e de ecrã, porque o atacante não consegue controlar o que aparece no ecrã seguro.
Passo 5: Envie primeiro uma pequena transação de teste
Antes de enviar o montante total, envie uma pequena transação de teste, de preferência o mínimo que a rede aceita, e espere pela confirmação. Isto tem um pequeno custo em taxas, mas força uma confirmação real on-chain de que o endereço está correto e acessível. Se o teste chegar onde espera, pode enviar o restante com confiança.
Para transferências de elevado valor, muitos utilizadores experientes enviam duas transações de teste: uma muito pequena para confirmar o endereço e, depois, uma segunda correspondente, por exemplo, a dez por cento do total, para confirmar que a infraestrutura do destinatário está a funcionar. Para transferências muito grandes, uma configuração multi-sig, em que várias carteiras hardware têm de co-assinar, acrescenta mais uma camada.
A transação de teste é a parte da rotina que a maioria dos iniciantes salta, e é a parte que apanha o maior número de erros do mundo real. As taxas parecem caras até as comparar com a alternativa de enviar o montante total para um endereço envenenado.
Peculiaridades específicas de cada rede que vale a pena conhecer
A rotina geral funciona em todas as chains, mas há alguns detalhes que apanham as pessoas desprevenidas. Conhecê-los com antecedência poupa tempo e reduz a hipótese de pânico durante uma transferência.
O mesmo endereço, redes diferentes
Muitas carteiras modernas utilizam o mesmo endereço público em várias redes, incluindo Ethereum mainnet, Arbitrum, Base, Optimism e Polygon. Isto é prático, mas também significa que um endereço válido numa rede pode ser válido noutra, e a carteira enviará alegremente qualquer ativo selecionado em qualquer rede que esteja ativa. Se pretende enviar USDC em Ethereum, mas a sua carteira está configurada para enviar numa outra chain, pode perder fundos ao enviar um token que o destinatário não controla nessa chain. Confirme sempre tanto o endereço como a rede antes de assinar.
Campos de memo, tag ou destination tag
Em chains como XRP, Stellar, Cosmos e em alguns depósitos em exchanges, o endereço de destino sozinho não chega. Tem também de incluir um memo, tag ou destination tag que indique ao destinatário a que cliente pertencem os fundos. Esquecer este campo significa geralmente que os fundos chegam à exchange, mas não podem ser creditados, e a recuperação exige um lento ticket de suporte. Trate o memo como parte do endereço para efeitos de verificação.
ENS, Unstoppable Domains e nomes legíveis
Alguns utilizadores preferem nomes legíveis como vitalik.eth a longas strings hexadecimais. Estes nomes resolvem para endereços através de registos on-chain, o que é prático, mas acrescenta uma camada de confiança. O nome resolve para o endereço que o registo indicar naquele momento. Se o registo for comprometido, ou se digitar mal o nome e este resolver para o endereço de um squatter, pode perder fundos. Verifique sempre para que endereço o nome resolve antes de enviar, e trate o endereço resolvido como a fonte de verdade.
Como isto se aplica na prática
Imagine que precisa de enviar 1 ETH a uma contraparte. A contraparte envia-lhe o endereço pelo Signal. Abre a sua carteira, cola o endereço no campo de destinatário e a carteira mostra-lhe a string. A rotina de 30 segundos, aplicada por ordem, é a seguinte.
Responde à contraparte no Signal pedindo-lhe que confirme o endereço por email, que é o seu segundo canal de verificação. Confirma que coincidem. Abre uma carteira hardware, cola o endereço no campo de destino da sua carteira de software e observa o pedido do dispositivo hardware. Lê o endereço completo no ecrã do dispositivo, e não no ecrã do computador, e confirma que corresponde ao do email. Vê que a sua carteira aceitou o checksum, que é implícito, mas vale a pena registar. Envia 0,001 ETH como teste, espera por uma confirmação e confirma com a contraparte que o teste chegou. Depois envia o montante restante.
Todo o processo demora cerca de meio minuto de atenção, além da espera pela confirmação. Parece lento da primeira vez. Na décima vez já parece invisível, porque se deixa de notar os passos extra. E, mais importante, torna estruturalmente impossíveis — ou pelo menos muito menos suscetíveis de ter sucesso — os modos de falha descritos acima.
Se estiver a enviar fundos a partir de uma exchange centralizada, aplicam-se os mesmos princípios, com uma nuance: as exchanges geralmente impõem a seleção de rede, verificações de formato de endereço e, por vezes, listas brancas para endereços conhecidos. As listas brancas, em que se regista um endereço na exchange e os levantamentos para um novo endereço exigem confirmação adicional, são uma proteção forte. Utilize-as, se a sua exchange as disponibilizar.
Como acompanhar a segurança de carteiras de forma inteligente
A segurança de carteiras evolui rapidamente, e o mesmo acontece com as notícias sobre novos padrões de ataque, atualizações de carteiras e campanhas de phishing. Acompanhar manualmente avisos sobre carteiras, divulgações de exploits e alterações de protocolos é uma batalha perdida, porque, quando uma história chega a uma publicação generalista de cripto, o atacante geralmente já seguiu em frente. A Zippfeed destaca notícias de segurança de carteiras com pontuação de sentimento — bullish, neutral ou bearish — e uma classificação de importância, para que perceba de imediato quais histórias merecem atenção e quais são apenas ruído.
Perguntas frequentes
É seguro copiar e colar um endereço de carteira?
Copiar e colar é aceitável em princípio, mas pressupõe que a sua área de transferência está limpa. Existe malware de clipboard que substitui endereços em silêncio, e é por isso que um ecrã de hardware wallet, ou no mínimo uma comparação completa da string com uma fonte confiável, é tão importante. Trate o copiar e colar como uma conveniência, nunca como verificação.
Como funciona o checksum dos endereços EVM?
Cada endereço EVM codifica um hash de si próprio no padrão de capitalização das suas letras. Uma carteira que suporte o standard recalcula o hash e recusa enviar se a capitalização não corresponder. É por isso que errar mesmo um único carácter geralmente dispara um aviso. Funciona como um detetor de erros tipográficos integrado, e não como uma proteção contra address poisoning, porque este último explora endereços reais que efetivamente passam o checksum.
Devo enviar uma transação de teste antes de cada transferência?
Para transferências acima do custo da taxa de rede, sim. Uma pequena transação de teste é o único passo que força uma confirmação real on-chain de que o endereço está correto e acessível. Para transferências muito pequenas, em que a taxa representaria uma percentagem significativa do valor, pondere o custo face ao risco, mas para qualquer montante não trivial, o teste vale a pena.
O que é address poisoning e como posso reconhecê-lo?
Address poisoning é um ataque em que alguém gera um endereço visualmente semelhante ao seu, combinando o início e o fim, e o induz a usá-lo através de autocomplete, histórico ou um token sem valor. A defesa consiste em comparar a string completa e confirmar o endereço no ecrã da hardware wallet, em vez de confiar apenas no primeiro e no último caracteres.