Hechos clave:
-
Los productores de bloques generaron un error conocido como double baking
-
El protocolo no logró proceder ante el fallo técnico, causando que la red se detuviera
El pasado viernes la red de Tezos detuvo la producción de sus bloques durante más de una hora, debido a un fallo de seguridad que no pudo ser manejado correctamente.
Según explicaciones del equipo de Tezos y datos de TzScan, la producción de bloques se habría visto afectada a la altura 200703 y 200704, bloques que empezaron a presentar errores desde las cuatro de la tarde hora del este y que no fueron resueltos sino hasta las cinco de la tarde del mismo día.
Se calculó, que para la firma y producción de un nuevo bloque, la red tardó unos 90 minutos, cuando el tiempo promedio de Tezos para producir bloques es de 60 a 120 segundos por instancia.
El problema ocurrió en las instancias de producción de bloques, cuando uno de sus productores — también conocidos como bakers, encargados de confirmar y producir nuevos bloques— cometió un fallo de seguridad en el bloque 194934.
El fallo cometido se conoce como double-baking —traducidos como doble horneado o producido doblemente—, término que se refiere a un error de duplicación de bloques que ocurre al momento en que se firman dos bloques con la misma llave privada pero con dos identidades de nodo diferentes; teniendo como resultado dos bloques idénticos transmitidos a la red a niveles cercanos.
Luego, el productor pierde los depósitos de seguridad, la recompensa e incluso la comisión del bloque, como penalización que hace la red al descubrir esta situación. Este tipo de errores ha sido reportado en otras oportunidades por usuarios y desarrolladores de la red, siendo un fallo común en Tezos.
El productor duplicó el bloque en el momento en que lo iba a confirmar, un fallo que hace que pierda su comisión y los depósitos. De igual forma se deduce la recompensa de bloque y comisiones generadas a aquellos que luego confirmen esta transacción como válida, sin penalizarlos.
Por más que parezca catastrófico, la duplicación de bloques tiene su solución denunciando el fallo a los otros colaboradores. De esta manera, los otros productores de Tezos pueden detener la creación de los bloques en toda la red y reiniciar las instancias para evitar que falten depósitos o información luego de corregir el fallo.
Este mismo procedimiento se realizó el día viernes. No obstante, a diferencia de lo que normalmente ocurre, se detectó otra denuncia al momento en que se estaba realizando la corrección. El productor, que había cometido el primer error, había vuelto a cometer un fallo pero ahora mucho más grave.
Según la programación de la red Tezos, al detenerse la producción de bloques los productores debían enviar toda la información del bloque para iniciar nuevamente el ciclo. El productor que duplicó el bloque cerró los nodos de validación al corregir la falla, pero se le olvidó compartir el número nonce para cerrar el bloque de forma correcta.
La red de Tezos automáticamente redujo las tarifas de los depósitos y endosos que estaban en la red, una acción que no sería ejecutada si se hubiese compartido el número nonce. En este caso, el bloque se encontraba vacío, no había ninguna tarifa que reducir, por lo que la máquina de Tezos no supo cómo proceder y se detuvo.
De esta manera, la blockchain estuvo detenida por más de una hora, sin saber cómo cubrir el error de manera automática. Los otros productores decidieron deshabilitar al productor que cometió el fallo dos veces, así como solucionaron el problema insertando de forma manual el valor que faltaba.
El equipo de Tezos asegura que este error será corregido en las versiones futuras de Tezos. Sin embargo, algunos usuarios están preocupados de que este error no se vuelva un ataque común para congestionar la red.
El día de ayer Tezos informó sobre la inclusión en su código de parches para evitar el spam de creación de cuentas, el correcto manejo del error reciente (ausencia del nonce en el proceso de solucionar la duplicación de bloques); lo que fue informado en su repositorio de recursos al desarrollador.
An important patch addressing “dust account creation spam” and error handling is available. All bakers should patch as soon as possible. Patched nodes will activate automatically at block height 204762 (after Monday Nov 26 1730 UTC). Details: https://t.co/sfG5m3QNIq
— Tezos (@tezos) 24 de noviembre de 2018
Tezos no ha tenido una buena racha en el ecosistema. Lo que empezó siendo una de las Ofertas Iniciales de Monedas más exitosas del criptomundo, pasó a ser uno de los casos más dramáticos de demandas y denuncias entre desarrolladores, directivos y colaboradores de la iniciativa por un supuesto desvío de fondos.
Luego de que Gevers y Guido Schmitz-Krummacher —directivos de la fundación de Tezos— renunciaran a sus cargos debido a la presión y acusación de malversación de fondos, los desarrolladores empezaron a trabajar en la constitución de su red beta, la cual presentó una infinitud de retrasos y críticas por la aplicación de medidas KYC y AML antes de encontrarse activa en el mercado.
Recientemente, durante el mes de septiembre, el equipo logró lanzar su red principal, una noticia que alzó los precios del criptoactivo y le dio una segunda vida a la red. Sin embargo, la misma se encuentra bajo el ojo del ecosistema debido a sus constantes desavenencias.