🏷️
Issuer approves
A trusted KYC issuer approves a credential public key on-chain (the person↔credential link stays off-chain).
🥷
Holder proves in ZK
The holder proves knowledge of the credential secret for a fresh, unlinked address via an on-chain Chaum–Pedersen DLEQ — revealing nothing about the secret.
🚫
Nullifier blocks reuse
A key image nullifier ensures one credential proves eligibility once. (A ring variant adds full set-unlinkability.)