À mesure que la numérisation continue de progresser, il n’a jamais été aussi simple de stocker, transmettre et traiter des données personnelles et d’entreprise. Dans le même temps, les inquiétudes des citoyens concernant la sécurité des données et la vie privée augmentent également. À cette fin, les cryptographes ont développé diverses technologies pour protéger la confidentialité des données, parmi lesquelles Zero-Knowledge Proof est l'une des technologies de base.

Cet article se concentrera sur la comparaison des preuves à connaissance nulle interactives et non interactives dans le processus d'exploration de la mise en œuvre de preuves à connaissance nulle.

Les preuves sans connaissance peuvent être principalement divisées en deux catégories : interactives et non interactives. La preuve interactive à connaissance nulle nécessite plusieurs cycles de dialogue interactif entre le prouveur et le vérificateur, tandis que la preuve non interactive à connaissance nulle ne nécessite aucune interaction entre les deux parties.

Schéma conceptuel des technologies de sécurité numérique

Dans une preuve à connaissance nulle interactive, le prouveur doit répondre aux questions du vérificateur. Cette interaction peut se faire hors ligne ou à distance via un réseau. Le vérificateur peut poser divers types de questions, exigeant du prouveur des informations allant au-delà du contenu prouvé, et le prouveur doit répondre conformément aux exigences à chaque tour.

Cette forme d’interaction permet de prouver un contenu relativement complexe, mais elle entraîne aussi certains coûts de temps et de calcul, et exige que les deux parties restent connectées. À l’inverse, une preuve à connaissance nulle non interactive permet au prouveur de générer la preuve une seule fois et de l’envoyer au vérificateur, sans avoir besoin de plusieurs tours d’interaction. Cette approche est plus rapide et réduit les coûts de calcul et de communication. Toutefois, dans des scénarios où il faut examiner des informations supplémentaires ou lorsque le contenu à prouver est extrêmement complexe, une preuve non interactive peut ne pas être faisable.

Une des méthodes typiques pour implémenter des preuves à connaissance nulle non interactives est l’approche inspirée de Fiat-Shamir, basée sur la signature numérique. Une différence clé entre les deux types de preuves à connaissance nulle réside dans le niveau de confiance requis. Dans les preuves interactives, le vérificateur doit faire confiance au fait que le prouveur respecte le protocole et réponde honnêtement aux questions ; dans les preuves non interactives, le vérificateur peut vérifier indépendamment l’exactitude de la preuve sans dépendre du prouveur. Par conséquent, il n’est pas nécessaire de faire confiance au prouveur.

Une autre différence réside dans la complexité de calcul. Les preuves interactives nécessitent généralement plus de ressources de calcul, car elles demandent plusieurs tours d’interaction et des calculs supplémentaires. En revanche, dans les preuves non interactives, le vérificateur n’a qu’un seul calcul à faire, ce qui est plus efficace et plus extensible.

Les preuves à connaissance nulle interactives et non interactives ont chacune leurs avantages et inconvénients ; le meilleur choix dépend des besoins spécifiques et des contraintes. Si le prouveur et le vérificateur peuvent communiquer en temps réel, les preuves interactives peuvent être plus appropriées. Si, au contraire, ils ne peuvent pas être simultanément en ligne ou qu’il existe des doutes sur la fiabilité du prouveur, alors les preuves non interactives sont plus indiquées. Dans l’ensemble, les deux types de preuves à connaissance nulle doivent être choisis de manière raisonnable selon le problème et le scénario d’application.

Les preuves à connaissance nulle interactives sont le type de preuves à connaissance nulle étudié et appliqué en premier. Grâce à des échanges sur plusieurs tours, le vérificateur peut poser des questions au prouveur, et ainsi vérifier le contenu prouvé. Cette interactivité permet de traiter des problèmes plus complexes.

Par exemple, dans le célèbre « problème de coloration de graphes », le prouveur affirme qu’il peut colorer chaque nœud de n’importe quel graphe, en veillant à ce que les nœuds adjacents aient des couleurs différentes. Le vérificateur peut utiliser une preuve à connaissance nulle interactive pour vérifier si cette affirmation est correcte. Au cours de la preuve, le prouveur procède d’une certaine manière à la coloration du graphe, puis le vérificateur choisit arbitrairement deux nœuds et demande si leurs couleurs sont identiques. Le prouveur doit répondre à la question, mais sans révéler la méthode de coloration. Cette interaction se poursuit sur plusieurs tours : le vérificateur peut vérifier des données aléatoires correspondant à la méthode de coloration du prouveur. Si le prouveur répond de manière fiable à toutes les questions, alors l’affirmation est valide.

Schéma conceptuel des preuves à connaissance nulle

Cependant, la preuve à connaissance nulle interactive présente aussi certaines limites :

Premièrement, il faut que le prouveur et le vérificateur échangent des communications, ce qui peut être inefficace et prendre du temps. Pour mener à bien la preuve, les deux parties doivent échanger plusieurs séries d’informations : en particulier lorsque le contenu est complexe ou que le volume de données est important, cela peut nécessiter beaucoup de temps. Ce problème se pose dans les scénarios qui exigent un débit élevé ou une prise de décision en temps réel.

Deuxièmement, les preuves à connaissance nulle interactives sont difficiles à étendre. À mesure que la quantité de données à prouver augmente, la complexité de la preuve croît proportionnellement. Il devient difficile de terminer la preuve dans un délai raisonnable, ce qui peut constituer un obstacle dans des domaines comme la gestion de chaînes d’approvisionnement pour des données à grande échelle ou la santé.

Troisièmement, cette méthode repose sur l’hypothèse que le prouveur et le vérificateur sont tous deux honnêtes et dignes de confiance, mais cette hypothèse n’est pas toujours vérifiée. Le prouveur peut tenter de tromper le vérificateur en envoyant de fausses informations ou d’autres moyens pour manipuler le processus de preuve, ce qui compromet l’intégrité et l’utilité de la preuve.

Enfin, les preuves à connaissance nulle interactives nécessitent un support de techniques cryptographiques spécialisées. Cela peut être difficile à mettre en œuvre et requiert des experts techniques de haut niveau, ce qui rend leur utilisation difficile pour les non-spécialistes, et limite aussi leur application dans certains scénarios.

En somme, même si la théorie des preuves à connaissance nulle interactives peut offrir de fortes garanties de sécurité et de confidentialité, les limites mentionnées ci-dessus restreignent dans une certaine mesure son adoption généralisée. Avec l’évolution des technologies, les preuves à connaissance nulle non interactives deviennent progressivement un choix plus pratique.

Le zkSNARK et le zkSTARK sont deux implémentations populaires de preuves à connaissance nulle non interactives, largement utilisées dans la blockchain et la cryptographie. Dans cet article, nous explorons brièvement ci-dessous les différences entre ces deux approches ainsi que leurs avantages et inconvénients respectifs.

Le zkSNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) est une méthode de preuve à connaissance nulle non interactive hautement compressée. Elle permet de prouver qu’un calcul quelconque satisfait certaines conditions, sans divulguer les valeurs de calcul précises ni les étapes détaillées. Grâce au zkSNARK, on obtient une preuve vérifiable : le résultat du calcul décrit par la preuve est correct, mais les entrées du calcul et les détails ne sont pas connus. L’avantage du zkSNARK est que la preuve est très compacte : une preuve d’environ 200 octets suffit pour vérifier des résultats de calcul complexes. En outre, cette technologie prend en charge un calcul de protection de la confidentialité efficace basé sur la cryptographie ; elle est particulièrement adaptée aux environnements sans confiance où l’on souhaite vérifier sans divulguer les informations détaillées, comme dans les domaines des crypto-monnaies et de l’authentification d’identité.

Comparaison de deux grandes technologies

Les principaux avantages du zkSNARK sont les suivants : efficacité élevée, petite taille de preuve, adapté aux systèmes avec de fortes exigences de débit comme la blockchain. Mais il présente aussi des inconvénients : sa sécurité dépend du processus de configuration de confiance, ce qui comporte un risque d’attaque ; il faut choisir différents paramètres pour différentes données, ce qui réduit la praticité ; le processus de preuve n’est pas assez transparent : il faut accéder aux clés privées pour effectuer la vérification.

À l’inverse, le zkSTARK est une autre technologie de preuve à connaissance nulle conçue pour traiter des algorithmes complexes et de grandes quantités de données. Son avantage réside dans le fait qu’il ne nécessite pas de configuration par un tiers de confiance, ce qui améliore la sécurité ; la preuve est plus générale, avec une forte extensibilité et une bonne résistance aux attaques ; il ne nécessite pas de clés secrètes, ce qui le rend adapté aux environnements sans confiance basés sur le calcul. En revanche, le zkSTARK a des coûts de calcul et de taille de preuve plus élevés, et peut être moins efficace dans certains scénarios.

Parmi les principaux points forts du zkSTARK, on peut citer : une plus grande transparence, permettant de vérifier publiquement une preuve sans accéder à des informations secrètes ; une meilleure extensibilité, avec une baisse de l’efficacité par rapport au zkSNARK plus lente à mesure que la quantité de données augmente. Cependant, il présente aussi les inconvénients suivants : le champ d’application est limité, car il ne permet de prouver que des énoncés exprimés sous forme polynomiale ; il nécessite une étape supplémentaire de configuration de confiance pour générer une chaîne de référence publique ; la technologie n’est pas encore mature, et la sécurité à long terme ainsi que la fiabilité doivent encore être validées.

En résumé, le zkSTARK est supérieur au zkSNARK dans certains aspects, tels que l’efficacité, la sécurité, etc., mais son application rencontre aussi certains défis. Il faut donc le choisir avec prudence selon les besoins spécifiques. Avec le développement et l’optimisation des technologies de preuve à connaissance nulle, l’efficacité de calcul, la taille des preuves, etc., s’amélioreront. Nous espérons qu’il sera appliqué plus largement dans des domaines comme la protection de la confidentialité et la vérification de la sécurité.