App → “Prove AgeOver18”
↓
User Vault → fetches birthdate
↓
ZK Circuit → checks: (today - birthdate ≥ 18y)
↓
Signer → control_key signs proof
↓
App → verifies signature, proof, state, policies
↓
App learns: “User is 18+”
WITHOUT learning:
- name
- birthdate
- document
- ID number
- anything else