Attributes have natural flows:
User stores a new private value in the Vault → new leaf commitment computed → new attributes_root.
Updating a value (e.g., home address) recomputes:
Issuer or user places a revocation policy:
If valid_until < now, attribute becomes unusable in proofs automatically.
All logic enforced in the Proof Engine.