El jueves por la noche, la blockchain de Ethereum se encontró con un problema que impidió temporalmente que los bloques se validaran correctamente. Aunque todo ha vuelto a la normalidad, esto es lo que sabemos de este episodio por ahora
Los bloques han dejado de finalizarse temporalmente en Ethereum
En el momento de escribir este artículo, aún no se había comunicado la causa exacta, pero durante unos treinta minutos la blockchain de Ethereum (ETH) se encontró con un problema que impedía finalizar los bloques.
La cadena de balizas dejó de finalizar hace unos treinta minutos. Todavía no sé por qué, pero en general la cadena está diseñada para ser resistente contra esto, las transacciones continuarán como de costumbre y la finalización se pondrá en marcha cuando se resuelva el problema. pic.twitter.com/utAS0uAWpG
– superphiz.eth ️ (@superphiz) 11 de mayo de 2023
Es importante señalar que la blockchain no se ha detenido. Sin embargo, durante 3 épocas, la capa de consenso sufrió un fallo similar a lo que se conoce como «fuga de inactividad».
En términos más sencillos, la blockchain se comportó como si muchos validadores estuvieran desconectados.
Este no fue el caso, pero el hecho es que durante este periodo, los validadores emitieron un número limitado de certificados:

Figura 1 – Épocas en las que se produjo un fallo de consenso en Ethereum
Un problema con un software que se está utilizando
Para funcionar, la blockchain de Ethereum se divide en 2 pilares: la capa de ejecución, que permite que se realicen las transacciones, y la capa de consenso, que garantiza la coherencia de los bloques. Para estos dos pilares, los validadores pueden utilizar distintos programas informáticos denominados clientes.
La Fundación Ethereum anima a los validadores a diversificar los clientes que utilizan, de modo que si se produce un error, la blockchain siga funcionando con normalidad.
En la siguiente ilustración, podemos ver que el software utilizado para la capa de consenso está correctamente diversificado, mientras que para la capa de ejecución, el cliente Geth está demasiado representado:

Figura 2 – Diversidad de clientes utilizados por los validadores en Ethereum
Dado que ningún cliente de la capa de consenso es utilizado por más del 50% de los validadores, el fallo de anoche no podría haber causado un cierre o bifurcación de la cadena de bloques. Eso suponiendo que el problema se originara en uno de los paquetes de software utilizados.
En esta eventualidad, el desarrollador del núcleo Superphiz señala que este problema de fuga de inactividad podría incluso haberse evitado si ningún software representara más del 33% de los validadores:
Si un cliente de la capa de consenso causara la pérdida de finalidad:
* Evitamos una bifurcación al no tener un cliente supermayoritario.
* Podríamos haber evitado la pérdida de la finalidad por completo si ningún cliente tuviera más del 33%.
Estoy orgulloso de nuestro trabajo sobre la diversidad, pero no hemos terminado. https://t.co/TUtXnQu5hD
– superphiz.eth ️ (@superphiz) 11 de mayo de 2023
Por su parte, Terence Tsao ha indicado que se ha identificado un problema con el cliente Prysm, aunque por el momento no podemos decir si éste es el origen de la paralización de la validación de bloques :
Actualización de Prysm. Hemos identificado áreas en las que se podría mejorar la caché de estado. Con la caché mejorada, el nodo debería rendir mejor durante un tiempo degradado como antes.
Dado que la cadena se ha estabilizado, como staker / operador de nodo, no hay acción requerida momento.
– terence.eth (@terencechain) 11 de mayo de 2023
Lo más importante en este momento es que todo volvió rápidamente a la normalidad, y ningún validador fue acuchillado durante este episodio. De hecho, el slashing se utiliza para desviar parte del ETH almacenado cuando los validadores no hacen bien su trabajo.
El equipo de desarrollo proporcionará en breve un informe detallado sobre lo sucedido, y podremos volver sobre esta información en ese momento.