La comunidad EOS una vez más se queda buscando soluciones ahora que los desarrolladores han identificado un error de contrato inteligente que permite a los autores de contratos malintencionados consumir de manera efectiva los recursos de red propiedad de otros usuarios.

EOS Smart Exploit Exploit consume RAM

Para reducir el correo basura, EOS requiere que los usuarios compren un recurso escaso dentro de la red llamado “RAM” para implementar contratos inteligentes y ejecutar aplicaciones descentralizadas (dApps).

Recientemente, los desarrolladores descubrieron que los atacantes podían crear contratos inteligentes maliciosos que explotan la función de notificaciones del lenguaje de scripting, que permite que un contrato notifique a otros contratos sobre eventos específicos (por ejemplo, una transferencia de token entrante). Los contratos maliciosos usan esa característica para llenar la memoria RAM de otros usuarios con datos “basura”, congelando permanentemente la RAM e impidiendo que las víctimas la usen para propósitos válidos o vendiéndola a la red.

El exploit puede afectar tanto a los usuarios normales como a ciertos contratos inteligentes, pero, lo que es más importante, solo están en riesgo si transfieren los tokens al contrato malicioso.

Desarrolladores Buscar soluciones

Precio EOS RAM
Si bien el exploit no puede robar los fondos de los usuarios, puede bloquear permanentemente la memoria RAM, que debe comprarse con tokens EOS.

Dan Larimer, CTO del creador de EOS Block.one y el arquitecto en jefe de la criptomoneda, abordó el asunto en Medium , argumentando que debería caracterizarse como un abuso de una característica válida, lo llamó “vandalismo”, en lugar de un error.

Dijo que, debido a que el exploit “aprovecha una discrepancia entre la intención de los usuarios y el efecto real del código”, los productores de bloque de la red tienen la autoridad bajo la constitución de EOS para incluir en la lista negra el contrato malicioso mientras los usuarios afectados controlan disputa con el autor del contrato a través del proceso de arbitraje de la red. Como ha argumentado en el pasado, la “intención del código es la ley”. También señaló que muchas billeteras EOS advierten a los usuarios cuando una transacción puede consumir RAM.

Larimer propuso además una actualización del protocolo de solo bloque de productor que, si fuera adoptada por todos los productores de bloque activo, evitaría que el destinatario de las notificaciones de acción consumiera inesperadamente la RAM del remitente.

Token Proxy

Mientras tanto, un equipo de desarrollo que opera bajo el nombre de EOSEssentials ha creado una solución alternativa efectiva, aunque levemente complicada para los usuarios preocupados por perder su RAM almacenada.

Como se explica en el GitHub del grupo , los usuarios de EOS pueden enviar tokens a través de una cuenta de proxy que no contiene RAM, lo que evita que los contratos maliciosos consuman RAM de la cuenta real del usuario. Esa cuenta, ” safetransfer ” , está codificada para transferir automáticamente tokens recibidos a cualquier nombre de cuenta que aparezca como la primera palabra en la línea de memo de transacción.

Por ejemplo, si quisiera enviar algunos tokens a Block.one (solo tienen 100 millones de EOS disponibles, probablemente podrían usar algunos más), los enviaría directamente a “safetransfer” y luego escribiría “b1” (la firma nombre de la cuenta) como la primera palabra en la línea de memo. La nota podría verse más o menos así:

“B1 Aquí hay algunos tokens; ¡Espero que ayuden!

Este método proxy también es compatible con otros tipos de tokens, aunque requerirá alguna configuración manual.

Además, los desarrolladores dijeron que los usuarios no deberían intentar el método de token de proxy cuando interactúan con dApps , ya que las aplicaciones actuarán como si estuvieran interactuando con el contrato de proxy, no con el usuario real. Sin embargo, es poco probable que sea un gran problema, ya que casi nadie está usando EOS dApps (o Ethereum dApps, para el caso).

DEJA UNA RESPUESTA

Please enter your comment!
Please enter your name here