Zero-knowledge proof (ZKP)
Een bewijs dat een bewering klopt en verder niets verraadt: aantonen dat je ouder dan 18 bent zonder geboortedatum, met onkoppelbare presentaties.
Een cryptografisch bewijs dat een bewering waar is, zonder iets anders te onthullen dan dat feit. Het klassieke walletvoorbeeld is leeftijd: in plaats van een geboortedatum af te geven, bewijst de houder de bewering "ouder dan 18", en de verifier leert precies dat en niets meer.
Dat is een stap verder dan selectieve gegevensdeling nu werkt. In een SD-JWT- of mdoc-credential kies je welke attributen je toont, maar wat je toont, toon je volledig, en de handtekening van de uitgever over het credential kan herhaalde presentaties correleerbaar maken. Een zero-knowledge proof kan een vraag over een attribuut beantwoorden zonder de waarde te tonen, en schema's als BBS+-handtekeningen laten een houder hetzelfde credential vele keren presenteren zonder dat die presentaties aan elkaar te koppelen zijn. Die schema's zijn nog op weg naar standaard: de W3C-cryptosuite voor BBS staat op candidate recommendation en het onderliggende IETF-werk is een draft, en dat is mede waarom geen gecertificeerde wallet er nu op leunt.
Wat het niet verandert, is vertrouwen in de bron. Een verifier moet nog steeds weten dat een vertrouwde uitgever de onderliggende attestatie heeft ondertekend - het bewijs toont dat een bewering volgt uit een echt credential, niet dat de bewering in de wereld waar is. En de praktische hindernissen zijn reeel: de uitgever moet ondertekenen in een vorm die het bewijssysteem ondersteunt, de bewijzen moeten snel genoeg zijn op een telefoon, en intrekking moet werken zonder de identificator opnieuw binnen te halen die je juist wilde verbergen. Standaardisatie en de discussie in het referentiekader bewegen, en daarom staat dit lemma als recht in beweging.