Una de las razones por las que Ethereum ha sido un proyecto exitoso durante todos estos años es por su activa comunidad que contribuye al mejoramiento del proyecto.
El reciente programa de recompensas de errores vio lo mismo cuando el equipo de desarrollo recibió un informe sobre un fallo en el nuevo codificador experimental ABI (conocido como ABIEncoderV2) y dos errores de bajo impacto.
Ethereum lanza la versión 0.5.7 para corregir el error
Ethereum Foundation, el actor clave detrás del desarrollo de Ethereum. Publicó el 26 de marzo una entrada en su blog titulada «Solidity Optimizer and ABIEncoderV1 Bug». Que hablaba de un error descubierto en el codificador ABI y dos fallos encontrados en el optimizador.
En el blogpost, la Fundación declaró que habían recibido un informe sobre el «defecto» del «nuevo codificador experimental ABI». También conocido como ABIEncoderV2 a través del programa bug bounty. El equipo también reveló que se habían descubierto dos errores en Solidity Optimizer en las últimas dos semanas. Sin embargo, estos bichos tenían «bajo impacto».
Este fallo concierne a aquellos que han implementado contratos que utilizan el codificador experimental ABI V2. Entonces estos podrían verse afectados. Esto significa que sólo pueden verse comprometidos los contratos que utilizan la siguiente directiva dentro del código fuente:
pragma experimental ABIEncoderV2
La Fundación ha identificado que hay cerca de 2500 contratos en vivo en mainnet que utilizan el ABIEncoderV2 experimental. Pero no está claro cuántos de ellos contienen el error.
Cuándo se presenta el error en Ethereum
El error sólo se manifiesta cuando se cumplen todas las condiciones siguientes.
Los datos de almacenamiento que implican matrices o estructuras se envían directamente a una llamada de función externa, a abi.encode o a datos de evento sin una asignación previa a una variable local (memoria).
Hay una matriz que contiene elementos con un tamaño inferior a 32 bytes o una estructura que tiene elementos que comparten una ranura de almacenamiento o miembros de tipos de bytes inferiores a 32 bytes.
El post también menciona que «La mejor manera de protegerse contra este tipo de defectos es tener un riguroso conjunto de pruebas de extremo a extremo para tus contratos (verificando todas las rutas de código). Ya que los errores en un compilador muy probablemente no son «silenciosos» y en su lugar se manifiestan en datos no válidos».
Es increíble ver cómo el equipo de desarrollo de Ethereum trabaja para proteger el software y sus módulos auxiliares. El examen del problema y de su solución muestra exactamente por qué Ethereum es un proyecto de clase mundial.
Mientras los desarrolladores están ocupados arreglando este problema. El precio de Ethereum se mantuvo cerca de los 140 dólares. Con un aumento del 3,35%.
¿Será capaz Ethereum de salir de este lío tecnológico y volver de nuevo a sus días de gloria? Todos creemos que sí. Como sabemos la plataforma tiene un potencia increíble que puede explotarse de gran manera dentro del mundo de blockchain. Solo tenemos que esperar para saber lo que depara el futuro cercano.