Ich dachte, das rote Status-Tag müsste spät sein.
Zuerst Cache. Dann Indexer-Verzögerung. Dann vielleicht habe ich die falsche Bestätigung ganz angesehen, weil sie spät war und meine Augen zwischen den Tabs hässlich sprangen. Ich öffnete den Datensatz immer wieder, als könnte es sich beruhigen und wieder grün werden.
Tat es nicht.
Widerrufen.
Der schlechte Teil war nicht der Widerruf selbst. Sign ist für diese Art von Statusänderung gebaut. Die Verifizierung bei Sign soll den Widerruf, das Ablaufdatum, die Ablösung und den Streitstatus überprüfen, und die Dokumente sind ziemlich direkt, dass Bestätigungen nur angehängt werden können: man schreibt die Geschichte nicht um, man widerruft oder ersetzt sie.
Was meine Hand auf dem Trackpad stoppen ließ, war das andere Fenster.
Die Verteilung war bereits erfolgt.
Diese Reihenfolge ist auch keine seltsame Randfantasie. Im eigenen Ablauf von Sign kann Nachweis der Berechtigung über das Sign-Protokoll verankert werden, dann erstellt TokenTable die Zuteilungstabelle, dann werden Mittel verteilt, dann werden Zuteilungs- und Ausführungsnachweise veröffentlicht. TokenTable behandelt Zuteilungslogik, Anspruchsbedingungen, Widerrufs- und Rückforderungsregeln sowie Abrechnungsnachweise; seine Zuteilungstabellen sind versioniert und unveränderlich, sobald sie finalisiert sind.
Also änderte sich der Status der Berechtigung genau dort, wo er sich ändern sollte.
Nur später als das Geld.
Und da beginnt „verifizierbar“ dünner zu wirken, als die Leute denken. Die Nachweisschicht kann jetzt die neue Wahrheit widerspiegeln. Die Prüfspur kann zeigen, dass die Bestätigung widerrufen wurde. Vielleicht gibt es eine ersetzende Bestätigung. Vielleicht gibt es eine Rückforderungsregel flussabwärts. Aber die ursprüngliche Verteilung basierte bereits auf dem alten Status, und der Abrechnungsnachweis ist bereits Teil des Datensatzes.
Was eine unangenehme Timing-Frage unter all der sauberen Sign-Sprache über den Widerruf von Berechtigungen, den Status von Bestätigungen und deterministische Verteilung aufwirft:
Wenn das Protokoll die Wahrheit nach der Ausführung aktualisiert… welcher Wahrheit soll das Geld gehorchen?
$SIGN @SignOfficial $SIREN $BANANAS31 #SignDigitalSovereignInfra