Una billetera de Binance firmó un permiso el jueves que permitió a un contrato controlado por un atacante operarla. Menos de cuatro minutos después, aproximadamente 2.500 millones de dólares en ether y tokens desaparecieron.
Eso fue solo una parte de los aproximadamente 6,300 millones de dólares que Binance afirma fueron robados a través de varias blockchains. En Ethereum, el atacante utilizó una función llamada EIP-7702, nombrada por su número de Propuesta de Mejora de Ethereum. Entró en vigor en mayo de 2025 como parte de la actualización Pectra.
Para entender por qué fue importante el jueves, comencemos con lo que es una cartera ordinaria de Ethereum.
Cartera se vuelve rebelde
La mayoría de las carteras de Ethereum, desde la cartera de navegador de un usuario minorista hasta la cartera caliente de un exchange, son controladas por una clave privada. La clave firma las transacciones y la cartera las envía. Una cartera común no puede seguir reglas propias, como un límite diario de gasto o una lista de destinatarios aprobados.
Las billeteras que pueden seguir reglas son contratos inteligentes, un tipo de cuenta separado que ejecuta código.
EIP-7702 permite que una cartera ordinaria tome prestado ese código. La cartera firma un mensaje corto, llamado autorización, que apunta a un contrato inteligente. Una vez que la autorización es aceptada, la cartera ejecuta el código de ese contrato como si fuera propio.
Cualquier persona puede enviar la autorización firmada a la red, la cual permanece hasta que se registre una sustitución o cancelación en la cadena de bloques.
La función estaba diseñada para permitir que las billeteras cotidianas agrupen pagos y que otra persona pague sus tarifas. A pocas semanas del lanzamiento, el creador de mercado Wintermute encontrado que la mayoría de las delegaciones EIP-7702 apuntaban a scripts de "barrido" copiados y pegados. Esos scripts reenvían automáticamente los fondos de una cartera a un ladrón una vez que su clave ha sido filtrada.
El atacante el jueves utilizó esta misma función para hacer que una billetera de Binance que contiene miles de millones ejecutara un extractor propio.
Camino de la cadena de bloques
La billetera principal del atacante, 0x7C86…5CA0, fue financiado a través del servicio de mezcla Tornado Cash mediante pequeños retiros que comenzaron el miércoles, según un reconstrucción de la red.
El jueves por la tarde UTC, el atacante ensayó el ataque en sus propias billeteras. Alrededor de las 16:00 UTC, desplegaron un contrato barrendero, 0x63e8…6fAe, cuyo código solo permite que la billetera del atacante lo opere.
coindesk.com





