-
Los nodos de atestación de Prysm sufrieron un agotamiento de recursos.
-
Durante los periodos que duró el evento, los validadores no pudieron trabajar regularmente.
Desde Prysm, un cliente de consenso de Ethereum, revelaron en un análisis post-mortem (después del evento) las consecuencias de un incidente que tuvo lugar el 4 de diciembre. Esto sucedió un día después del despliegue de la actualización Fusaka. Una de dichas consecuencias fue la pérdida de 382 ETH de las recompensas a los validadores de Ethereum.
Según el informe de Prysm, «casi todos los nodos [del cliente, no de la red Ethereum en general] experimentaron un evento de agotamiento de recursos al intentar procesar ciertas atestaciones. Durante este tiempo, Prysm no pudo responder oportunamente a las solicitudes del validador, lo que resultó en la omisión de bloques y atestaciones».
Datos sobre el incidente de Prysm
El incidente con el cliente de Ethereum duró desde el período (epoch) 411439 al 411480, sumando en total 42 períodos.
El mismo informe indica que se perdieron un total de 248 bloques en el registro de los nodos de este cliente, los cuales no pudieron sincronizarse con los nodos restantes de la red en general.
El problema específico fue que la lógica de validación de atestaciones en Prysm requería computación intensiva (reprocesando bloques y transiciones de épocas pasadas). Esto ocasionó el agotamiento de recursos. Bajo estas condiciones, muchos nodos Prysm se quedaron rezagados o colapsaron, perdiendo la sincronización con el resto de la red.
Sin embargo, esto no afectó a todos los nodos de Ethereum, ya que otros clientes de consenso continuaron operando y mantuvieron la red en marcha.
Según datos, la participación de la red durante este evento fue tan baja como del 75%. Los validadores perdieron aproximadamente 382 ETH de recompensas de atestación al no poder operar de forma corriente durante el evento de agotamiento de recursos.
Un bug identificado en GitHub
Prysm da una explicación técnica más completa de lo sucedido a los validadores de Ethereum. Aclara que el bug se halló en el pull request 15965 del repositorio.
Los nodos de baliza de Prysm recibieron atestaciones de nodos que posiblemente no estaban sincronizados con la red. Estas atestaciones hacían referencia a la raíz de un bloque de la época anterior. Para validarlas, Prysm intentó recrear un estado de baliza compatible con la visión de la cadena del nodo desincronizado. Esto resultó en múltiples procesamientos de bloques de épocas anteriores y costosos recálculos de transición de época.
Analistas de seguridad de Prysm, cliente de consenso de Ethereum.
Ethereum se salvó gracias a la diversidad de clientes
También aclaró que la diversidad de clientes de validación de Ethereum redujo el impacto del incidente: «La diversidad de clientes evitó un impacto notable en los usuarios de Ethereum. Un cliente con más de un tercio de la red habría causado una pérdida temporal de la finalidad y más bloques perdidos. Un cliente con errores y más de dos tercios podría finalizar una cadena no válida», dijeron desde Prysm.
No obstante, aclaran que Lighthouse, otro cliente de atestaciones, podría representar más del 56% de la red, y que esto se acerca peligrosamente al umbral en el que un error del cliente podría finalizar (procesar definitivamente en la «blockchain») una cadena inválida.
Según la documentación del incidente, las versiones v7.0.1 y v7.1.0 del cliente contienen una solución a largo plazo para el bug que ocasionó la pérdida de las recompensas de los validadores.



