Confidentialité cryptographique
Vega apporte les preuves à divulgation nulle de connaissance à la vérification d'identité en moins de 100 ms
Vega permet aux utilisateurs de prouver des faits à partir de pièces d'identité gouvernementales sans révéler l'identifiant lui-même, en utilisant des ZKP générées en moins de 100 ms sur du matériel standard. Il cible des formats réels comme les permis de conduire mobiles et le portefeuille d'identité numérique de l'UE, avec un schéma de pliage et de réutilisation qui réduit le coût de la preuve pour des présentations répétées.

Vega est un système de preuve à divulgation nulle de connaissance qui permet aux utilisateurs de prouver des faits à partir d'identifiants délivrés par les gouvernements, tels que l'âge, la qualité de personne ou le statut professionnel, sans jamais révéler l'identifiant lui-même. L'identifiant ne quitte jamais l'appareil, et la preuve est générée en moins de 100 millisecondes sur un appareil client standard sans configuration de confiance.
Alors que les agents d'IA commencent à agir pour le compte des humains et à interagir avec des systèmes décentralisés, le besoin de moyens rapides et respectueux de la vie privée pour prouver des identifiants ne fera que croître. Les concepteurs de Vega ont cherché à répondre à une question fondamentale : pouvons-nous rendre pratique le fait de prouver quelque chose à propos d'un identifiant sans jamais révéler l'identifiant lui-même ?
Comment ça marche
Vega utilise des preuves à divulgation nulle de connaissance (ZKP) pour permettre à un utilisateur de prouver une affirmation, comme "J'ai plus de 21 ans", sans rien révéler d'autre. La preuve fonctionne directement sur l'identifiant tel qu'il a été délivré, de sorte que l'émetteur n'a pas besoin de changer quoi que ce soit. Le système s'appuie sur des éléments de base issus de recherches antérieures : Spartan pour la preuve R1CS efficace sans configuration de confiance, Nova pour les schémas de pliage, HyperNova pour la divulgation nulle de connaissance via NovaBlindFold et NeutronNova pour le pliage par lots efficace.
Vega rassemble ces éléments de base en un seul système de preuve avec une conception simple. Le circuit est construit à partir d'un petit nombre de composants standard, sans constructions multi-champs exotiques et sans configuration de confiance. Sur cette base, Vega ajoute la capacité de réutiliser le travail pour plusieurs preuves du même identifiant et une nouvelle façon d'obtenir une divulgation nulle de connaissance avec un surcoût minimal.
Repères de performance
Vega génère une preuve à divulgation nulle de connaissance de l'âge à partir d'un permis de conduire mobile typique, d'environ 2 kilo-octets (Ko), en 92 ms sur un appareil client standard. La preuve résultante fait 108 Ko et peut être vérifiée en 23 ms. Pour les identifiants plus petits, la preuve tombe à 62 ms, avec des preuves de 83 Ko et une vérification de 17 ms. La clé de preuve est de 464 Ko, tenant confortablement sur n'importe quel téléphone.
Preuve par pliage et réutilisation
La rapidité de Vega provient de deux idées : la preuve par pliage et réutilisation et la conception de circuit centrée sur les recherches. Au lieu de dérouler l'intégralité du hachage SHA-256, Vega définit un petit circuit "étape" qui prouve une seule étape de compression, instanciée une fois par bloc. Le schéma de pliage NeutronNova les réduit en une seule instance. Spartan n'a alors besoin de prouver qu'un seul circuit de taille d'étape avec un circuit "noyau" séparé qui gère le reste des vérifications, y compris la vérification de la signature et les prédicats d'âge.
Pour éviter les fuites d'informations basées sur la longueur dues à des tailles d'identifiants variables, tous les circuits d'étape partagent une table engagée de digests intermédiaires. Le circuit noyau sélectionne le digest approprié à l'aide d'un index privé.
Divulgation nulle de connaissance à moindre coût
Vega atteint une divulgation nulle de connaissance avec une approche simple : il s'engage sur chaque message en utilisant des engagements cryptographiques cachés, puis exprime les vérifications du vérificateur comme un petit système de contraintes, de quelques centaines de contraintes seulement, et le plie avec une instance aléatoire via le schéma de pliage de Nova. Cela cache les données sous-jacentes, de sorte que le surcoût de divulgation nulle de connaissance s'adapte au petit système de contraintes, et non à l'ensemble des données secrètes.
Liaison à l'appareil et lien de session
Sans liaison à l'appareil, une personne qui obtient un identifiant divulgué pourrait générer des preuves valides pour n'importe quelle session. Vega résout ce problème en exigeant que l'appareil du détenteur signe un nonce de session frais avec la clé privée de l'appareil, qui est liée à l'élément sécurisé du téléphone. Le circuit extrait la clé publique de l'appareil de l'identifiant via une recherche et vérifie la signature de l'appareil sur le hachage du nonce de session.
Pour les présentations répétées, Vega divise les données secrètes du prouveur en trois parties : les données partagées (tables SHA-256), les données pré-engagées (signature de l'émetteur, emplacements des champs) et les données en ligne (signature de l'appareil, date). Avant chaque preuve, les engagements précalculés sont actualisés avec une nouvelle aléatoire, ce qui est moins coûteux que de les recalculer et garantit que deux preuves concernant le même identifiant ne peuvent pas être liées.
Éviter l'analyseur syntaxique
Vega évite de construire un analyseur CBOR complet en tant que circuit en traitant l'identifiant comme une table de recherche adressable par octet. Le circuit vérifie que les octets correspondent à l'identifiant authentifié, que le bon préfixe CBOR apparaît au début du champ et que les adresses sont contiguës. Cela remplace un analyseur entier par une poignée de recherches.
Implications pour l'identité et l'IA
Vega a des implications au-delà des permis de conduire mobiles. Alors que les agents d'IA autonomes commencent à agir au nom des personnes, ces agents auront besoin de prouver des faits sur l'humain qu'ils représentent. Une preuve à divulgation nulle de connaissance générée sur l'appareil de l'humain, liée à la session de l'agent par une liaison à l'appareil, permet à l'agent de présenter des signaux d'identité sans détenir de secrets.
Dans les systèmes décentralisés, Vega pourrait faire le pont entre l'identité hors chaîne et les systèmes en chaîne. Une ZKP sur un identifiant hors chaîne pourrait prouver un fait à partir d'un identifiant délivré par le gouvernement, et le vérificateur en chaîne ne reçoit que la preuve. Aucun intermédiaire ne voit l'identifiant, et la re-randomisation garantit que les preuves répétées ne sont pas liables.
Vega est implémenté en Rust et sera bientôt open source. Le système de preuve alimentant Vega est déjà disponible en tant que projet open source spartan2 sur GitHub. Un article, en collaboration avec Darya Kaviani, sera présenté au prochain IEEE Symposium on Security and Privacy à San Francisco.