La hot wallet de Binance fue hackeada por 6.28 mil millones USD; el rastreo on-chain revela cómo el atacante utilizó la autorización EIP-7702 para tomar el control de la wallet y mover los fondos antes de que Tether y otros emisores pudieran congelarlos, proporcionando una reconstrucción completa de este mayor incidente de seguridad.
Autor: Dickson (@DicksonWuML)
Recopilado por: Shenchao TechFlow
Introducción de Shenchao: El robo de los monederos calientes de Binance es el mayor acontecimiento del mercado cripto hoy. Dickson, ingeniero de CertiK y miembro de SEAL, rastreó los registros on-chain transacción por transacción, reconstruyendo todo el proceso del atacante preparando fondos mediante retiros de Tornado Cash, usando la autorización EIP-7702 para tomar el control de los monederos calientes de Ethereum de Binance, y compitiendo contra Tether, Circle y otros emisores para congelar fondos. Los montos y horas en este artículo son estadísticas on-chain hasta el momento de publicación del autor (alrededor de las 8 AM hora de Pekín del 30 de octubre), con horas en UTC (+8 horas equivale a hora de Pekín), y aún no han sido confirmados oficialmente por Binance.
Los monederos calientes de Binance perdieron aproximadamente $6.28 mil millones en 8 cadenas hoy. De eso, $6.07 mil millones fueron transferidos en los primeros 55 minutos, tras lo cual el atacante barrió repetidamente uno de los monederos de Ethereum durante más de dos horas.
Desde entonces, Tether, Circle, Ripple, Paxos, World Liberty y Binance han congelado aproximadamente $2.80 mil millones. Aún se pueden mover libremente unos $3.27 mil millones, principalmente BTC y ETH.
Rastreé todo el incidente on-chain, incluyendo cómo el atacante movió fondos antes de las congelaciones 🧵
Desglose de los $6.28 mil millones (precios a las 20:24 UTC):
• Ethereum $3.74 mil millones
• Bitcoin 18,270.2 BTC, $1.47 mil millones
• Tron $612.7 millones USDT + 46.4 millones TRX, $627.5 millones
• XRP 233.5 millones XRP, $296.5 millones
• Solana 970,522 SOL, $96.1 millones
• Arbitrum 8,426 ETH + 74.6 millones ARB, $31.8 millones
• Avalanche 1.81 millones AVAX + 8.41 millones USDt, $24.3 millones
• Optimism 44.2 millones OP, $4.8 millones
Los $3.74 mil millones en Ethereum salieron en cinco lotes:
• 20:24:23, un único sweep() en Binance 14: 167,464.25 ETH, $1.615 mil millones USDT y otros 61 tokens, totalizando $2.53 mil millones
• 20:41 y 20:59, 780 millones + 43 millones USDC transferidos desde un monedero inteligente de Binance que confiaba en Binance 14, totalizando $822.6 millones
• 20:24:47, Binance 16 firmó 9 transferencias enviadas directamente al atacante: 28,005.6 ETH, 55.7 millones USDT, 25.9 millones RLUSD, 84.5 WBTC, 820,000 UNI, 1,199 XAUt, 18.8 millones ENA, 304,600 LINK, 583.6 mil millones PEPE, totalizando $174.2 millones
• 21:04 y 21:44, dos barridos adicionales de Binance 14: 2,070 ETH y 204.3 millones USDT, totalizando $209.6 millones
• 22:39, un barrido final a un nuevo monedero: 128.5 ETH y 122 tokens de pequeña capitalización, alrededor de $500,000
Por activo: $1.87 mil millones USDT, $823 millones USDC, $457 millones ETH (197,668 ETH), $88.5 millones RLUSD, $76.8 millones wBETH, $50.5 millones XAUt, $49.6 millones UNI, $44.7 millones ENA, $40.1 millones PEPE, $29.6 millones LINK, $27.8 millones USD1, más unos 50 tokens más pequeños.La preparación comenzó el día anterior. El 28 de octubre a las 07:39 UTC, la billetera principal del atacante 0x7c8601d4645b93cea45f71e118a729332e6b5ca0 retiró primero 0,1 ETH de Tornado Cash, luego retiró dos veces más. Una segunda billetera retiró después 1 ETH de Tornado y lo transfirió a la billetera principal el 29 de octubre a las 18:20.
El 29 de octubre a las 02:28, desplegaron un contrato sweeper. De 13:51 a 16:47, ensayaron con sus propias billeteras: usando delegación EIP-7702, barrieron USDT y USDC de prueba, y luego retiraron. A las 15:59, desplegaron una versión v2 con una función de llamada genérica, y fue esta función la que después movió los $823 millones en USDC.
A las 20:04:52 UTC, el primer paso falló. La billetera XRP de Binance envió 42.750.000,1 RLUSD al atacante, pero la cuenta XRP del atacante aún no existía, por lo que la transferencia fue devuelta.
Ocho segundos después, se transfirieron con éxito 185.017.485,5 XRP, creando así la cuenta. Para las 20:09, otras cuatro billeteras XRP de Binance también habían sido vaciadas.
Siguió una reacción en cadena:
20:10 Solana, 965.455,1 SOL movidos en una sola transacción
20:18 Optimism, 44,2 millones de OP
20:20 Bitcoin, 18.270,2 BTC movidos en 11 transacciones y divididos en bloques de 1.000 BTC dentro del mismo bloque
20:20 a 20:22 Tron, $612,7 millones en USDT + 46,4 millones de TRX
20:30 a 20:35 Arbitrum y Avalanche
Ethereum reveló el método del ataque. A las 20:20:59, el atacante envió una transacción que contenía 50 autorizaciones EIP-7702, todas firmadas con la clave privada de Binance 14, correspondientes a los nonces 18.914.775 hasta 18.914.824.
Binance 14 misma acababa de usar el 18.914.775 a las 20:17:47, lo que indica que estas autorizaciones fueron firmadas solo minutos antes de su uso.
La autorización con nonce 18.914.809 coincidió. La propia transacción de Binance 14 en el mismo bloque usó el 18.914.808, y desde ese momento, Binance 14 estuvo ejecutando el código del atacante.
A las 20:24:23, un único sweep() movió 167.464 ETH y $1.615 millones en USDT fuera de ella. Veinticuatro segundos después, Binance 16 firmó 9 transferencias enviadas directamente al atacante. A las 20:41 y 20:59, el atacante usó Binance 14 para transferir $823 millones en USDC fuera de una billetera inteligente de Binance que confiaba en ella.
Luego vino la carrera contra los congelamientos. El atacante dividió rápidamente el USDT:
• A las 20:30, $500 millones en USDT fueron transferidos a 0x9749…c762. Para las 20:59, $325 millones de ellos habían sido convertidos en ETH a través de creadores de mercado RFQ, y los $175 millones restantes fueron transferidos más adelante
• A las 20:33, $200 millones en USDT fueron transferidos a 0x0ddf…697e. Unos $10 millones se vendieron en DEXs, y $190 millones fueron transferidos a 0x8d53…639a, que depositó $60 millones en Aave y tomó prestado ETH contra ellos
El primer lote de inclusiones en la lista negra de Tether surtió efecto a las 21:01:35: 0x5227, que aún tenía $971 millones en USDT; y 0x9749, que ya había sido vaciada. Circle congeló los $823 millones en USDC a las 21:04:59.
Algunos fondos escaparon en los últimos segundos:• A las 21:01:59, 0x8d53 transfirió $130 millones en USDT a 0x77ed…c3eb. Cuarenta y ocho segundos después, a las 21:02:47, Tether congeló 0x8d53• De 21:04 a 21:06, 0x77ed vendió aproximadamente 50 millones de USDT en un DEX y transfirió 80 millones a 0x7aa4…bfd1
• De 21:08 a 21:11, 0x7aa4 vendió otros aproximadamente 50 millones y movió los últimos 30 millones. Para cuando Tether congeló 0x7aa4 a las 21:12:35, ya había sido vaciada
• 21:16:11, 0xccbe…a263 transfirió los 30 millones. 36 segundos después Tether congeló 0xccbe, y a las 21:18:59 interceptó los 30 millones en 0xb171…c8c3
• Los 175 millones transferidos por 0x9749 permanecieron en 0xaa24…54a0 hasta que Tether los congeló a las 21:14:59
En total, de los 1.875 mil millones de USDT en Ethereum, aproximadamente 435 millones se vendieron antes de que la lista negra los alcanzara. 1.38 mil millones han sido congelados, y 60 millones están atrapados como colateral en Aave.
Acciones de otros emisores, en orden cronológico:
• 20:57:47 World Liberty incluyó en lista negra 48.5 millones de WLFI en 0x5227
• 21:07:55 Tether congeló 8.41 millones de USDt en Avalanche. El atacante intentó moverlos a las 21:40:47, y la transacción se revirtió
• De 21:09 a 21:21 Tether congeló 378.7 millones de USDT en tres billeteras en Tron. Previamente, 234 millones ya habían sido intercambiados por TRX vía SunSwap
• 21:11:23 Tether congeló 12,574 XAUt (aproximadamente 50 millones de USD)
• 22:00:59 Ripple congeló RLUSD. El atacante ya lo había movido a 0xe702…958d a las 21:33 y vendido 48 millones por ETH, con la última orden de venta y la congelación cayendo en el mismo bloque. 40.5 millones fueron interceptados
• 22:10:35 World Liberty congeló 27.8 millones de USD1
• 22:30:47 Paxos congeló 1,907 PAXG
• 22:48:35 Binance incluyó en lista negra 29,934 wBETH (aproximadamente 75 millones de USD); el atacante ya lo había movido a 0x7f9d…15e3 a las 21:52
Los 3.45 millones de FDUSD de First Digital siguen siendo transferibles.
Binance 14 permaneció delegado al contrato del atacante, lo que se convirtió en un tira y afloja:
• A las 21:04 y 21:44, el atacante barrió de nuevo: primero 1,700 ETH, luego 370 ETH y 200.4 millones de USDT. Este USDT aterrizó en 0x5227, que ya había sido congelado por Tether
• A las 22:06:23, Tether incluyó en lista negra a Binance 14 itself. Las transferencias de USDT propias de Binance desde esa dirección fallaron a las 22:15 y 23:01
• A las 22:39, el atacante barrió de nuevo, esta vez a una nueva billetera: 128.5 ETH y 122 tokens de pequeña capitalización
• De 22:55 a 23:07, Binance mismo vació Binance 14: 46 transferencias de tokens a Binance 8, aproximadamente una cada 12 segundos
• De 23:36 a 23:38, el atacante llamó a sweep() cuatro veces más, y las cuatro resultaron vacías
Fuera de Ethereum:
• Arbitrum, 21:35 a 21:38: los 8,426 ETH y 74.6 millones de ARB fueron movidos a una nueva billetera 7702 0x3e2b…32d5, que autorizó ARB para trading a las 21:41. A las 23:50 seguía allí
• Avalanche, 21:45:34: 1,813,999 AVAX fueron movidos a 0x8035…c397. Luego 200,005 AVAX fueron transferidos desde 0xc39e…9824, y a las 23:27:35 la misma dirección recibió 1,563,812.78 USDC en Ethereum vía el puente cross-chain CCTP de Circle. Cuatro minutos después, a las 23:31:59, Circle la incluyó en lista negra• Los fondos en Bitcoin, XRP, Solana y Optimism aún no se han movido. BTC está distribuido en 19 carteras, 17 de las cuales contienen exactamente 1.000 BTC cada una
Estado a las ~23:50 UTC:
Congelado, aproximadamente 2.800 millones USD
• 1.380 millones USDT en Ethereum, 378,7 millones en Tron, 8,41 millones en Avalanche (Tether)
• 824,6 millones USDC (Circle)
• 40,5 millones RLUSD (Ripple), 27,8 millones USD1 (World Liberty), 12.574 XAUt (Tether), 29.934 wBETH (Binance), 1.907 PAXG (Paxos), 48,5 millones WLFI
No congelado, aproximadamente 3.270 millones USD
• 18.270 BTC, 1.420 millones USD
• 458.770 ETH distribuidos en 9 carteras, 1.030 millones USD
• 233,5 millones XRP, 289 millones USD
• 684,6 millones TRX, 243 millones USD
• Aproximadamente 136 millones USD en otros tokens en Ethereum
• 970.500 SOL, 93 millones USD, más ARB, AVAX y OP, aproximadamente 48 millones USD
Otros 60 millones USDT están atrapados como colateral en Aave.
Nota: Las transferencias en BTC, XRP y Tron se vincularon mediante correlación temporal y huellas de transacción: la misma ventana de tiempo, direcciones receptoras completamente nuevas, y comisiones y formatos de transacción diferentes a los retiros propios de Binance. El monto robado se calcula a precios de las 20:24 UTC; las tenencias actuales se calculan a precios alrededor de las 23:50 UTC.
La evidencia on-chain de cada transacción y congelamiento está adjunta en la publicación a continuación. Si notas algo que pasé por alto, ¡avísame!