Preuve à divulgation nulle de connaissance
(Zero-Knowledge Proof)
Une preuve à divulgation nulle de connaissance est une méthode cryptographique permettant de prouver qu'une affirmation est vraie, comme « le détenteur est majeur », sans révéler aucune des données sous-jacentes sur lesquelles repose cette affirmation, telle que la date de naissance réelle.
Là où la divulgation sélective permet à un détenteur de révéler des affirmations choisies telles quelles, une zero-knowledge proof ne révèle rien du tout : le vérificateur apprend seulement que l'affirmation est vraie, garantie par une preuve qu'il peut vérifier par rapport à la signature de l'émetteur. C'est une garantie de confidentialité plus forte que la divulgation sélective, et un domaine actif de standardisation pour les futurs formats de credentials utilisés dans l'écosystème du portefeuille EUDI. La preuve est construite pour que quiconque puisse la vérifier par rapport à des paramètres publics et à la signature de l'émetteur, mais aucune combinaison de preuves remises à différents vérificateurs ne peut être reliée au même credential ni entre elles, ce qui supprime le risque de corrélation qui vient du fait de montrer répétitivement la même valeur signée. Un credential à divulgation sélective simple laisse encore deux vérificateurs collusoires comparer une affirmation hachée et conclure que le même détenteur a visité les deux, tandis qu'une zero-knowledge proof de l'affirmation identique a un aspect différent à chaque génération. Le compromis est le coût de calcul et la complexité : générer et vérifier une zero-knowledge proof demande plus de puissance de traitement que vérifier une simple signature, et les schémas cryptographiques impliqués, tels que les signatures BBS+ ou les zk-SNARKs, sont plus récents et moins standardisés que la divulgation sélective par hachage déjà déployée dans SD-JWT. Plusieurs implémentations de référence et pilotes du portefeuille EUDI évaluent les techniques zero-knowledge comme voie d'évolution future pour les attributs où l'absence de corrélation compte le plus, comme les contrôles d'âge ou de nationalité répétés à travers de nombreux services sans rapport.
Termes associés
Utiliser une zero-knowledge proof signifie-t-il que le vérificateur doit faire aveuglément confiance au détenteur ?
Non. Le vérificateur continue de s'appuyer sur la cryptographie plutôt que sur la confiance envers le détenteur. La preuve lie mathématiquement l'affirmation à la signature originale de l'émetteur, si bien qu'un vérificateur peut être certain qu'une affirmation est authentique et non altérée même s'il ne voit jamais les données sous-jacentes, la même garantie qu'offre un contrôle de signature normal, simplement sans exposer la valeur qui se trouve derrière.