Ataque de envenenamiento de direcciones: cómo funciona y cómo detenerlo
Por Al Jobson · Lectura de 10 minutos · Septiembre de 2026
El 3 de mayo de 2024, una cartera de Ethereum envió 1.155 WBTC, valorados entonces en 68 millones de dólares, a un atacante en un caso clásico de envenenamiento de direcciones[1]. La víctima acababa de mover esos mismos fondos entre dos de sus propias carteras. El atacante observó la operación, generó una dirección personalizada cuyos seis primeros y seis últimos caracteres coincidían con los del destinatario previsto, hizo un envío de 0 dólares para que apareciera en el historial y esperó. En el siguiente envío se copió la dirección equivocada desde el historial. Los fondos se perdieron con un solo clic. Así funciona el ataque, por qué la interfaz lo facilita y qué medidas ayudan realmente en 2026.
El mecanismo, en una página
Una dirección de Ethereum tiene 42 caracteres: 0x más 40 caracteres hexadecimales. Ninguna interfaz muestra los 40. MetaMask, Trust Wallet, Rabby, Etherscan y los exploradores móviles suelen truncarla como 0xABCD…1234. Ese truncamiento es la vulnerabilidad. Si un atacante genera una clave privada cuya dirección coincide con los primeros y últimos 4 a 8 caracteres hexadecimales del objetivo, ambas direcciones parecen idénticas en las interfaces de los monederos actuales[2].
Generar una dirección personalizada que coincida en un prefijo de 8 caracteres hexadecimales y un sufijo de 8 requiere aproximadamente 264 generaciones de pares de claves de curva elíptica. Es inviable en un portátil, pero trivial en un conjunto de GPU. Halborn situó el coste de una coincidencia 8+8 en cientos de dólares; las herramientas comunes de estilo Profanity producen coincidencias 6+6 en minutos[3]. La economía compensa porque un solo acierto puede pagar toda la infraestructura.
Cuando ya tiene la dirección personalizada, el atacante introduce una operación en el historial de la víctima. Hay tres variantes:
- Transferencia nativa de ETH de valor cero. La variante más antigua: una operación de 0 ETH desde la dirección parecida a la víctima. Aparece en la pestaña de transacciones de Etherscan. Los monederos modernos empezaron a filtrarla, aunque muchas interfaces derivadas de Etherscan todavía la muestran.
transferFromERC-20 de valor cero. En algunos tokens no conformes, cualquier dirección puede emitir un eventoTransferdesde otra mediante una llamadatransferFromde valor cero. El historial de tokens muestra entonces a la víctima enviando 0 tokens a la dirección parecida, como si fuera un destinatario ya conocido[4]. Esta variante eludió incluso el filtrado de MetaMask durante meses.- Airdrop de token falso. El atacante despliega un token con el mismo símbolo y 18 decimales que USDT o USDC, envía 1.000 unidades a la víctima y lo usa para el evento de valor cero. El historial parece mostrar una operación de “USDT” con la dirección parecida, que resulta fácil de copiar.
Escala, de 2023 a 2025
El envenenamiento de direcciones opera a gran volumen y con una tasa de éxito baja. Bitrace y PeckShield indexaron más de 270.000 remitentes únicos de envenenamiento solo en Tron al cierre de 2024[5]. Cyvers estimó pérdidas acumuladas en redes EVM de 83 millones de dólares entre 2022 y 2024: una larga cola de víctimas individuales con pérdidas de entre 1.000 y 5.000 dólares y un pequeño número de casos muy grandes[6].
| Fecha | Red | Importe | Notas |
|---|---|---|---|
| Mayo de 2024 | Ethereum | 1.155 WBTC ≈ 68 M USD | El atacante devolvió los fondos tras negociar[1] |
| Enero de 2024 | Arbitrum | 4,7 M USD | USDC enviado a una dirección parecida; alerta de PeckShield[7] |
| Diciembre de 2023 | Ethereum | 1,7 M USD | Cronología de Chainalysis[8] |
| Septiembre de 2024 | Ethereum | 32 M USD | Víctima institucional; variante ERC-20 de valor cero |
| 1.er trimestre de 2025 | Tron | 1,8 M USD/mes de media | Informe trimestral de Bitrace[5] |
Los datos muestran dos patrones. Primero, el ataque no depende de una red concreta: EVM, Tron y Solana tienen variantes propias porque todas usan interfaces que acortan las direcciones. Segundo, la pérdida por víctima minorista suele ser pequeña y el rendimiento por atacante alto, justo el perfil que sostiene operaciones industrializadas.
Por qué la interfaz es la vulnerabilidad
El problema no es la primitiva técnica, una dirección de 40 caracteres hexadecimales, sino cómo la presentan los monederos. Tres atajos de UX, razonables por separado, forman esta clase de ataque:
- Visualización truncada. Los usuarios revisan los primeros y últimos caracteres, no el centro. Una dirección personalizada vence esa comprobación de prefijo y sufijo, no una comparación completa.
- Historial usado como libreta de direcciones. Muchas personas eligen un destinatario desplazándose por el historial y tocándolo. Ese historial incluye todo lo que llega a la cadena, no solo lo que eligió el usuario.
- Eventos de valor cero tratados como operaciones normales. Exploradores y monederos muestran cada evento
Transfersin distinguir entre valor transferido y evento emitido. Así, una operación hostil puede parecer una transferencia histórica legítima.
La solución está en la aplicación cliente. Cada mitigación siguiente cierra uno de esos atajos.
Defensas que sí funcionan
| Defensa | Qué corrige | Esfuerzo |
|---|---|---|
| Libreta de direcciones | Evita copiar desde el historial | Disciplina del usuario; guardar una vez |
| Nombres ENS / SNS | Destinatario legible | Ambas partes deben usarlo[9] |
| Confirmación de dirección completa | Truncamiento | El monedero muestra los 42 caracteres al enviar |
| Filtro de operaciones de valor cero | Historial envenenado | Oculta entradas de valor cero |
| Filtro de tokens spam | Variante falsa de USDT/USDC | Lista de tokens verificados |
| Advertencia de dirección parecida | Destinatario similar a uno previo | Comprobación Levenshtein y de prefijo/sufijo |
| Marca de primer destinatario | Dirección nueva del atacante | Bloquear o advertir |
| Simulación de transacciones | Muestra la transferencia y el destinatario reales | Blockaid, Rabby, Wallet Guard[10] |
Monedero por monedero: mitigaciones disponibles
| Monedero | Libreta | Filtro de valor 0 | Aviso de parecida | Marca inicial |
|---|---|---|---|---|
| MetaMask | Sí (contactos) | Parcial (actualización de 2024)[11] | Sin función nativa | No |
| Rabby | Sí (lista blanca) | Sí | Sí | Sí[12] |
| Trust Wallet | Sí | Parcial | No | Banner de advertencia |
| Phantom | Sí | Sí (filtro de spam de Solana)[13] | No | Advertencia |
| Ledger Live | Sí | No | No | No |
| Coinbase Wallet | Sí | Sí | Sí | Sí |
| VEYRNOX | Sí | Sí (predeterminado) | Sí (Levenshtein y prefijo/sufijo) | Advertencia estricta para un destinatario desconocido |
El patrón es claro. Los monederos que tratan la pantalla de envío como una superficie de seguridad, como Rabby, Coinbase Wallet y VEYRNOX, incorporan defensas reales. Los que heredan la vista de historial de un explorador de cadena heredan también la superficie de ataque.
Guía práctica para usuarios
- No copies nunca una dirección de recepción desde el historial. Ni una vez, ni siquiera para alguien a quien enviaste ayer. Guárdala una vez en los contactos o la libreta del monedero, verifícala de extremo a extremo y usa esa entrada.
- Para importes relevantes, verifica el centro de la dirección. Cópiala en un editor de texto y compara los 40 caracteres hexadecimales con la dirección prevista. Toma unos 20 segundos y detiene el ataque en todos los casos documentados.
- Usa ENS o SNS cuando ambas partes lo admitan. Un nombre legible que resuelve a la dirección actual no se puede envenenar. Vigila los nombres ENS caducados que un atacante pueda volver a registrar.
- Activa la simulación de transacciones. Blockaid, Wallet Guard, la verificación integrada de Rabby u otro monedero que la incluya calculan el cambio de estado real y lo muestran antes de firmar.
- Envía primero 1 dólar. En un primer envío grande, manda una cantidad de prueba y confirma por un canal independiente que llegó antes de realizar el envío principal.
- Reconoce la señal específica. Si una operación reciente muestra una transferencia de 0 dólares desde tu propia dirección a un lugar al que nunca enviaste, probablemente eres objetivo de este ataque. Detente, cierra la aplicación y verifica las direcciones por un canal independiente antes de la próxima operación.
Lo que la industria aún debe corregir
Los exploradores deberían dejar de representar los eventos de valor cero como si fueran transferencias reales. El filtrado de Etherscan de 2024 ayudó, pero no cerró la variante del evento ERC-20. Los monederos deberían ocultar por defecto las entradas de valor cero, no convertirlo en una opción. Toda pantalla de envío debería mostrar la dirección completa y marcar destinatarios nuevos por encima de un umbral de valor. No es difícil técnicamente: los equipos que desarrollan SDK de monederos conocen el ataque al menos desde la variante de SafeMoon de 2022[14].
Se han propuesto soluciones de nivel cadena, como las direcciones específicas de red de EIP-3770, las URI de solicitud de pago y la abstracción de cuenta con listas de permitidos del lado del firmante[15], pero su adopción es lenta. La defensa fiable en 2026 sigue estando en el cliente: usa un monedero que incorpore estas mitigaciones y no confíes en una dirección copiada de una pantalla sin leer todos sus caracteres.
Conclusión
El envenenamiento de direcciones no es un fallo criptográfico. Es un fallo de UX que la industria conoce desde hace cuatro años y para el que ha aplicado mitigaciones de manera desigual. Una transferencia de 0 dólares, una vista truncada y una dirección copiada bastan para provocar una pérdida total. La solución es sencilla: libreta de direcciones, verificación completa, advertencia para destinatarios nuevos y simulación de transacciones. Todas esas medidas existen hoy en monederos de producción. Usa uno que las incorpore y deja de copiar direcciones desde el historial.
Seguridad de direcciones en VEYRNOX
VEYRNOX filtra por defecto eventos entrantes de valor cero, marca destinatarios cuyo prefijo o sufijo coincide con una dirección usada previamente y exige una confirmación adicional para destinatarios nuevos por encima de un umbral configurado por el usuario. Descargar o consultar el modelo de seguridad.
Fuentes
- CertiK, “Autopsia del envenenamiento de direcciones de WBTC por 68 millones de dólares”. certik.com
- Chainalysis, “Explicación del envenenamiento de direcciones”. chainalysis.com
- Halborn, “Coste de generar direcciones personalizadas”. halborn.com
- SlowMist, “Técnica de envenenamiento con
transferFromde valor cero”. slowmist.medium.com - Bitrace, “Informe de envenenamiento en Tron de 2024”. bitrace.io
- Cyvers, “Retrospectiva del envenenamiento de direcciones, 2022-2024”. cyvers.ai
- Flujo de alertas de PeckShield, Twitter/X. x.com/peckshieldalert
- Chainalysis, “Cronología de delitos cripto de 2024”. chainalysis.com
- Documentación de ENS. docs.ens.domains
- Blockaid, simulación de transacciones. blockaid.io
- MetaMask, “Mitigaciones contra el envenenamiento de direcciones”. support.metamask.io
- Rabby, lista blanca y advertencias para primeros destinatarios. rabby.io
- Phantom, “Filtrado de tokens spam de Solana”. phantom.com
- Elliptic, “Variante de envenenamiento de direcciones de SafeMoon”. elliptic.co
- EIP-3770, direcciones específicas de red. eips.ethereum.org
- Etherscan, “Política de visualización de transferencias de valor cero”. info.etherscan.com
- Coinbase Wallet, funciones de seguridad. help.coinbase.com
- Trail of Bits, “Modelo de amenazas del envenenamiento de direcciones”. blog.trailofbits.com
- Trust Wallet, documentación de verificación de direcciones. community.trustwallet.com
- Cointelegraph, cobertura del caso de WBTC por 68 millones de dólares. cointelegraph.com
- ScamSniffer, rastreador de envenenamiento de direcciones. x.com/realScamSniffer
- Web3 Antivirus, puntuación de riesgo de monederos. web3antivirus.io
Al Socrates Jobson, cofundador y CTO de Veyrnox LTD · ← Volver al blog