Los desarrolladores de Ethereum enfrentaron desafíos significativos durante la actualización de Pectra en la red de prueba Sepolia. Un error de codificación en el contrato de depósito desencadenó el tipo incorrecto de transacción, lo que llevó a la producción de bloques vacíos. La situación se complicó más cuando una cuenta que ejecutaba transferencias de cero tokens, cumpliendo con el estándar ERC-20, explotó el sistema. El equipo logró estabilizar la red con un mecanismo especial de filtrado implementado rápidamente.
Fuente del Error Técnico y Sus Impactos
Lanzada en la mañana del 5 de marzo, la actualización de Pectra reveló inesperadamente un error debido a que el contrato de depósito desencadenó un evento de “depósito” en lugar de una transferencia. Esta inconsistencia causó discrepancias en los grupos de transacciones y resultó en nodos produciendo bloques vacíos. El desarrollador Marius van der Wijden señaló que las investigaciones iniciales sugerían que el error provenía de validadores confiables, pero la fuente real era una nueva cuenta.
A medida que el sistema continuaba procesando transacciones defectuosas, la sincronización entre nodos se deterioró. El aumento de bloques vacíos afectó negativamente los tiempos de confirmación de transacciones. El equipo recordó que se habían experimentado problemas similares anteriormente en la red de prueba Holesky, anunciando una revisión de los procesos de prueba antes de futuras actualizaciones.
Explotación Desencadenada por Transferencias de Cero Tokens
La complejidad del error se exacerbó por la permisividad del estándar ERC-20 para transferencias de cero tokens. Un usuario explotó esta vulnerabilidad enviando numerosas transacciones que interactuaban con el contrato de depósito. Los desarrolladores identificaron que el atacante probablemente utilizó una cuenta financiada por faucets en la red de prueba. Marius van der Wijden sugirió que el atacante podría haber monitoreado canales de comunicación.
Para resolver el problema, el equipo lanzó una solución que filtraba automáticamente las transacciones que interactuaban con el contrato de depósito. La mayoría de los nodos fueron actualizados para las 14:00, restaurando las operaciones normales de la red. El equipo de Ethereum enfatizó que endurecerían los procesos de prueba para prevenir problemas similares en la red principal.