J'ai rechargé la même attestation et les données avaient changé.
Même `dataLocation`.
Contenu différent.
Je l'ai vérifié à nouveau.
Même pointeur.
Toujours différent.
Alors j'ai extrait le timestamp.
`attestTimestamp`
Plus ancien que ce que je voyais maintenant.
Je pensais que j'avais mélangé quelque chose.
Alors j'ai essayé un autre.
Attestation différente.
Même modèle.
Même emplacement.
Nouvelles données.
C'est à ce moment-là que cela a commencé à ne plus ressembler à une erreur.
L'attestation a été vérifiée.
Propre.
Rien n'a échoué.
Rien n'a été signalé.
Mais ce à quoi cela s'est résolu n'était pas ce qui était là quand cela a été émis.
J'ai continué.
Plus d'attestations utilisant `dataLocation` hors chaîne.
Même comportement.
La référence reste fixe.
Le contenu derrière lui change.
Et le système le considère comme la même chose.
Je reviens toujours à cela.
Dérive du pointeur.
Le système ancre l'emplacement…
pas l'état des données à `attestTimestamp`.
Donc ça vérifie toujours.
Juste pas par rapport à ce que l'émetteur a réellement vu.
C'est la rupture.
La certification passe…
mais elle ne prouve plus ce contre quoi elle a été émise.
$SIGN n’a d’importance ici que si un système qui vérifie contre un `dataLocation` au lieu de l'état à `attestTimestamp` est encore suffisant une fois que ces deux commencent à diverger à grande échelle.
Parce qu'une fois qu'ils s'éloignent...
rien ne casse.
Rien n'échoue.
Rien ne se met à jour.
Ça vérifie toujours.
Donc la vraie question devient celle-ci.
Quand le pointeur reste stable mais que les données changent…
J'ai essayé de révoquer une attestation plus tôt et cela n'a pas fonctionné.
Pas d'erreur.
Juste pas de chemin.
Je l'ai vérifiée à nouveau.
Toujours valide.
Alors je suis monté d'un cran.
Schéma.
`revocable = false`
J'en ai exécuté une autre sous le même schéma.
Attestation différente.
Même résultat.
Deux credentials.
Aucun n'a pu être révoqué.
C'est là que cela a changé.
Ce n'était pas une révocation échouée.
Il n'y avait rien à exécuter.
Le credential n'était pas verrouillé après émission.
Il a été émis de cette façon.
J'ai continué.
Plus d'attestations.
Même schéma.
Même comportement.
Chacune d'elles pouvait être émise.
Aucune d'elles ne pouvait être reprise.
Et rien dans l'attestation ne vous le dit.
Vous ne le voyez que lorsque vous essayez de révoquer...
et rien ne se passe.
Je reviens toujours à cela.
Un verrou de révocation.
Pas un retard.
Pas une restriction.
Juste une absence.
La capacité d'émettre existe.
La capacité de corriger n'existe pas.
Et cette décision n'est pas prise lorsque le credential est créé.
Elle a déjà été prise avant même qu'il n'existe.
$SIGN n'a d'importance ici que si un système où `revocable = false` supprime complètement la révocation au niveau du schéma reste suffisant une fois que les conditions autour de ces credentials commencent à changer.
Parce qu'une fois que vous atteignez cette limite...
rien ne casse.
Rien ne échoue.
Rien ne se met à jour.
Cela reste simplement.
Alors la vraie question devient celle-ci.
Si la révocation n'a jamais existé au départ...
à quoi s'attend exactement le système pour s'adapter plus tard ?
J'ai vérifié la confirmation du validateur à minuit juste après qu'un lot de preuves ait été validé plus tôt et quelque chose à propos de ce qu'il contenait m'a arrêté.
Il a renvoyé un résultat valide.
Pas de drapeaux.
Mais il n'y avait rien qui me disait ce qui avait réellement été vérifié.
J'ai fait défiler à nouveau en m'attendant à ce que le contexte apparaisse quelque part.
Une référence. Quelque chose.
Il n'y avait rien de plus à trouver.
La confirmation tenait.
Le sens ne tenait pas.
Je devais vérifier cela deux fois.
Je m'attendais à ce que la vérification me dise quelque chose sur l'état sous-jacent.
Elle ne l'a pas fait.
C'est à ce moment-là que cela a commencé à sembler comme des données manquantes.
Et a commencé à sembler structurel.
Le validateur ne confirme pas ce qui s'est passé.
Il confirme que quelque chose de valide s'est produit.
Sans jamais avoir besoin de le comprendre.
Je reviens toujours à cela comme un écart de compréhension.
Où la vérification reste intacte.
Mais la compréhension n'arrive jamais.
Deux états sous-jacents complètement différents peuvent passer la même confirmation.
Et rien dans la sortie ne les sépare. Cela tient tant que le volume est bas.
Cela devient plus difficile à raisonner lorsque les preuves commencent à s'accumuler.
$NIGHT n'a d'importance ici que si cette couche de vérification peut encore séparer ce qui reste valide de ce qui reste significatif une fois que les confirmations commencent à s'accumuler.
Parce qu'un système qui peut vérifier tout sans rien comprendre ne se casse pas immédiatement.
Il compresse les différences dans le même résultat. Ainsi, le véritable test devient ceci.
Lorsque les confirmations commencent à se chevaucher sous charge, de quoi le réseau est-il exactement certain ?
Au début, cela ressemblait à un problème de timing.
Comme si la révocation intervenait juste après l'émission.
Ce n'était pas le cas.
Il n'y avait pas de "après".
Les enregistrements SIGN des deux événements de manière indépendante.
Ils se sont simplement résolus au même moment.
Ce qui signifie que cette attestation n'a jamais eu d'état valide.
Pas brièvement.
Pas même pour un bloc.
Ce qui signifie qu'il n'y a jamais eu d'état pour qu'un système puisse le lire.
C'est là que cela a changé.
Ce n'était pas une attestation révoquée.
C'était une qui a complètement sauté la validité.
Annulation instantanée.
Une attestation qui existe dans la structure, mais n'a jamais existé dans le temps.
J'ai suivi comment le système le traite.
Il se résout.
Le schéma se charge.
L'émetteur est vérifié.
Tout passe à la surface.
Sauf qu'il n'y a jamais eu de point où il pouvait réellement être utilisé.
Cela ne se montre que si vous lisez les horodatages directement.
C'est ici que $SIGN commence à avoir de l'importance.
$SIGN n'a d'importance que si le protocole peut faire la distinction entre une attestation où `attestTimestamp == revokeTimestamp` et une qui est devenue invalide plus tard.
Parce qu'en ce moment, les deux se résolvent de la même manière, même si une seule a jamais été valide.
Alors la question devient celle-ci.
Si l'émission peut produire quelque chose qui n'a jamais été valide même pendant une seconde, que signifie exactement "émis" à l'intérieur du système ?