En el sistema de Dusk, las reglas no son algo que se escriba de una vez por todas, sino que son restricciones de un sistema que se actualizará. Pero hay un requisito riguroso para los activos regulados: las reglas pueden cambiar, pero las nuevas reglas no pueden negar el estado histórico que ya ha ocurrido de manera legal. Esto plantea una pregunta muy concreta: cuando las reglas se actualizan, ¿cómo maneja el sistema de prueba la frontera entre el 'estado antiguo' y las 'nuevas transacciones'?
En la ruta de transacciones de Dusk, la prueba se centra únicamente en la 'transferencia de estado inminente', y no vuelve a interpretar la historia. Esto significa que la actualización de reglas no requerirá regenerar pruebas para los estados de activos que ya existen, ni hará que las transacciones legalmente válidas en el pasado se conviertan en ilegales bajo las nuevas reglas. El sistema solo requiere: a partir del momento en que la actualización de reglas entra en vigor, todas las transacciones posteriores deben cumplir con las nuevas restricciones de prueba.
Este punto es crucial en la implementación. La actualización de reglas debe ser un evento reconocible en la cadena, que define desde qué altura de bloque o punto en el tiempo las nuevas reglas entran en vigor. Al generar pruebas, se hará referencia explícita a la versión de reglas vigente, y no de manera vaga 'bajo las últimas reglas'. Siempre que la versión de reglas referenciada en la prueba no coincida con la versión actual en la cadena, la verificación no será válida.
El resultado directo de esto es que las pruebas llevan intrínsecamente la semántica de la versión de reglas. La legitimidad de una transacción no solo depende de su contenido, sino también de bajo qué versión de reglas fue probada y validada. Esto permite al sistema distinguir claramente tres cosas: qué transacción ocurrió legalmente bajo las reglas antiguas, qué transacción está permitida bajo las nuevas reglas y qué transacciones fueron rechazadas por no cumplir con las nuevas reglas.
Si no hubiera esta distinción, el sistema enfrentaría dos problemas extremos: o bien, después de la actualización de reglas, tendría que revertir o reinterpretar el estado histórico, o bien la actualización de reglas sería irrelevante, ya que el sistema no podría distinguir el 'ámbito de aplicación de las nuevas y viejas reglas'. Dusk elige vincular directamente la versión de reglas en la ruta de prueba, lo que equivale a convertir el 'límite de efectividad de las reglas' en un hecho verificable en la cadena, y no en un acuerdo operativo.
#Dusk $DUSK

