Input your search keywords and press Enter.

El hard fork de Ethereum, Constantinople, se retrasa debido a un fallo de seguridad

La tan esperada actualización de Ethereum, Constantinople ha sido retrasado luego de que se descubriera una vulnerabilidad crítica en uno de los cambios planeados.

El hallazgo fue gracias a la compañia, ChainSecurity, una firma especializada en auditoria de contratos inteligentes que señaló el martes que la Propuesta de Mejora de Ethereum (EIP) 1283, podría proporcionar un medio para que los atacantes crearán un loophole en el código para de esta manera robar los fondos de los usuarios. Es por ello que los desarrolladores de Ethereum, así como los desarrolladores de clientes y otros proyectos que ejecutan la red, acordaron retrasar la bifurcación, al menos temporalmente, mientras evaluaban el problema y encontrarán una solución.

Los participantes incluyeron al creador de Ethereum, Vitalik Buterin, los desarrolladores Hudson Jameson, Nick Johnson y Evan Van Ness, y el gerente de lanzamiento de Parity, Afri Schoedon, entre otros. La nueva fecha de lanzamiento de Constantinople será decidida el este viernes.

Al analizar la vulnerabilidad en línea, los desarrolladores del proyecto llegaron a la conclusión de que llevaría demasiado tiempo corregir el error antes de la bifurcación, que se esperaba para este 17 de enero.

El ataque recibió el nombre de ataque de reentrada, una vulnerabilidad que esencialmente le permite a un atacante “reingresar” a la misma función varias veces sin actualizar al usuario sobre el estado de cosas. Bajo este escenario, un atacante podría estar esencialmente “retirando fondos para siempre”, dijo Joanes Espanol, CTO de la firma de análisis de blockchain Amberdata.

Espanol explica que:

Imagine que mi contrato tiene una función que realiza una llamada a otro contrato … Si soy un pirata informático y puedo activar la función en el momento que la función anterior aún estaba en ejecución, podría ser capaz de retirar fondos.

Esto es similar a una de las vulnerabilidades encontradas en el ahora infame ataque a DAO en 2016, en el cual el atacante, conocido como Mircea Popescu, pudo sustraer de forma indebida un total de 3,6 millones de ETH.

La publicación de ChainSecurity explicó que antes de Constantinople, las operaciones de almacenamiento en la red costarían 5.000 gas, excediendo los 2.300 que normalmente se usan al llamar a un contrato usando las funciones de “transferencia” o “envío”.

Sin embargo, si se implementara la actualización, las operaciones de almacenamiento “sucias” costarían 200 gas. Un “contrato atacante puede usar el estipendio de 2300 gas para manipular la variable del contrato vulnerable con éxito”.

También explican que deben cumplirse ciertas condiciones previas para que un contrato sea vulnerable, entre las cuales están:

  1. Debe haber una función A, en la que a una transferencia / envío le sigue una operación de cambio de estado. Esto puede ser a veces no obvio, por ejemplo. una segunda transferencia o una interacción con otro contrato inteligente.
  2. Tiene que haber una función B accesible desde el atacante que cambie de estado y cuyos cambios de estado entren en conflicto con los de la función A.
  3. La función B debe ser ejecutable con menos de 1600 gas (2300 estipendio de gas – 700 gas para la LLAMADA).

Este retraso sería el segundo que sufre la nueva actualización, luego de retrasarse al encontrarse problemas al lanzar las actualizaciones en el red de pruebas Ropsten.

 

Apasionado por el mundo de la tecnologías y el Software Libre. Activista en las comunidades de soporte y desarrollo de GNU/Linux (Debian, Ubuntu y Gentoo). Blogger y redactor de todo lo relacionado con tecnologías.