Estaba revisando una credencial de nuevo esta mañana.
El mismo que había verificado hace unos días.
No esperaba nada diferente.
Había pasado limpiamente antes.
Lo saqué de nuevo.
El mismo attestador.
Los mismos datos.
La misma referencia.
Pero no se resolvió de la misma manera.
No roto.
Solo... diferente.
Esa parte no se sentía bien.
Así que saqué el resultado anterior uno al lado del otro.
Los comparé línea por línea.
Fue entonces cuando apareció.
La credencial no había cambiado.
Pero algo detrás de eso había.
Regresé al esquema.
Lo saqué directamente del registro.
Mismo schemaId.
Definición diferente.
Al principio pensé que tenía el incorrecto.
Revisado nuevamente.
Coincidido.
Todavía se sentía raro.
Luego revisé extracciones anteriores.
Registros anteriores.
No eran los mismos.
La estructura se había desplazado.
Sutilmente.
Orden de campos.
Reglas de validación.
Un campo resolviendo de manera diferente a antes.
Nada que fallaría la verificación.
Pero lo suficiente para cambiar lo que realmente significaba la credencial.
Ahí es cuando se redujo.
Ya no estaba leyendo la credencial de la misma manera.
La credencial solo lleva schemaId.

No hay versión.
No hay instantánea.
No hay ancla a lo que significaba cuando fue emitida.
Ahí es donde se vuelve incómodo.
Se supone que una credencial debe ser estable.
Algo que puedes verificar más tarde y obtener el mismo resultado.
Pero aquí...
el significado no está fijo.
Se mueve.
Depende de cómo se vea el esquema en el momento de la verificación.
No en el momento de la emisión.
Intenté encontrar dónde estaba bloqueada la versión.
Alguna referencia.
Alguna instantánea.
No pude encontrar uno.
Así que cuando el esquema cambia...
la interpretación cambia con ello.
Brecha de versión del esquema.
No es un desajuste.
No es un error.
Una brecha entre lo que significaba la credencial cuando fue emitida...
y lo que significa ahora.
Seguí probándolo.
Un sistema de acceso leyendo la credencial hoy...
lo evaluaría de manera diferente a como lo hizo hace unos días.
Misma credencial.
Resultado diferente.
Nada falla.
Nada señala el cambio.
Simplemente se desplaza silenciosamente.
Esa es la parte que estoy observando ahora.
Porque una vez que los esquemas comienzan a moverse así...
la verificación ya no está confirmando nada.
Está reescribiendo lo que significa la credencial.
$SIGN solo importa si una credencial se mantiene anclada a la versión del esquema contra la que fue emitida...
no solo el schemaId.
Porque una vez que el significado puede cambiar sin que la credencial cambie...
la verificación deja de ser confirmación.
Y se convierte en reinterpretación.
Así que la verdadera pregunta se convierte en esta.
Si una credencial depende de un esquema que puede evolucionar...
¿qué exactamente estás verificando cuando lo verificas más tarde?

