De traceerbaarheid van een procedure wordt aan twee dingen afgemeten: of alles wat gebeurt wordt vastgelegd, en of het vastgelegde later kan worden gewijzigd. Append-only logs met hash-ketening lossen beide dimensies elegant op: elke handeling wordt vastgelegd en elke latere wijziging veroorzaakt een wiskundige inconsistentie die onmiddellijk detecteerbaar is.
Append-only: vastleggingen die niet worden herschreven
Append-only betekent dat alleen toevoegen van entries is toegestaan, nooit wijzigen of verwijderen van bestaande. Was een entry fout, dan wordt zij gecorrigeerd met een nieuwe entry die de vorige vervangt, met behoud van de historie. Het is een eenvoudige architectuurkeuze met enorme bewijsgevolgen: de log weerspiegelt letterlijk wat gebeurde, zonder latere herinterpretaties.
Ketening via hashes
Elke entry bevat, naast haar inhoud, de hash van de vorige entry. Probeert iemand een oude entry te wijzigen, dan stemt de hash die de volgende entry bewaarde niet meer overeen en breekt de keten. De geschiedenis wijzigen zou alle latere hashes herberekenen vergen, een operatie die detecteerbaar is omdat eerdere kopieën van de log al gepubliceerd of geback-upt zijn.
Wat exact wordt vastgelegd
- Wie (gebruiker en rol) de handeling verrichtte.
- Wanneer (timestamp met tijdstempel).
- Welk type handeling (toevoeging van een goed, wijziging, sluiting van voorkeuren, loting, toedeling...).
- Vorige en volgende toestand, waar van toepassing, in compact formaat.
- Hash van de vorige entry, die de keten sluit.
Periodieke verificatie
Een geautomatiseerde routine doorloopt de log periodiek en valideert de keten van hashes. Elke breuk wordt als onmiddellijk incident geëscaleerd. Voor maximale strengheid wordt dagelijks een globale vingerafdruk van de log (root hash) in een extern register gepubliceerd (bijvoorbeeld een verankering in een publieke keten of een gekwalificeerde tijdstempel), zodat zelfs de platformbeheerder de geschiedenis niet onopgemerkt kan herschrijven.