
Qu'est-ce qu'une preuve à divulgation nulle de connaissance et quels sont ses cas d'utilisation dans la crypto ?
Avez-vous déjà envoyé un relevé financier ou médical contenant des informations embarrassantes et privées, juste pour prouver que vous pouvez vous permettre un prêt ou que votre corps ne présente pas de problèmes majeurs ? Et s'il était possible de montrer que votre flux de revenus est stable et suffisant, ou que vous êtes en bonne santé, sans révéler que vous venez d'acheter pour 100 $ de Nutella, ou que vous vous êtes égratigné le genou en tombant de vélo ? C'est un exemple de divulgation sélective – et aussi une application potentielle de la preuve à divulgation nulle de connaissance.
Qu'est-ce qu'une preuve à divulgation nulle de connaissance (ZKP) ?
Vous l'aurez deviné d'après notre exemple, une preuve à divulgation nulle de connaissance (ZKP) est une méthode ou un protocole permettant d'attester la validité d'une déclaration sans révéler ladite déclaration.
Supposons que vous ayez terminé le Wordle du jour (oui, on y joue encore) avant vos amis. Au lieu de leur dire quel est le mot, il vous suffit de partager une capture d'écran de votre résultat Wordle montrant cinq cases vertes consécutives. Ainsi, tous ceux qui voient l'image savent que vous avez trouvé le bon mot, mais personne ne peut deviner lequel à moins de l'avoir déjà. Plus pratique encore, vous pouvez publier cette image une seule fois sur Twitter et tout le monde saura que vous l'avez résolu sans interaction supplémentaire de votre part (ils n'ont même pas besoin de vous connaître). C'est ce qu'on appelle une ZKP non interactive, par opposition aux ZKP interactives, où les vérificateurs doivent engager une série d'échanges avec les prouveurs pour décider s'ils sont convaincus.
Inutile de dire que ce mécanisme complexe (interactif et non interactif) ouvre la voie à de nombreuses applications nouvelles et intéressantes, notamment dans les secteurs où la confidentialité prime sur à peu près tout le reste – la cryptomonnaie vient à l'esprit. Deux des avancées les plus connues dans ce domaine sont les zk-SNARK et les zk-STARK.
zk-SNARK vs zk-STARK
zk-SNARK signifie "zero-knowledge Succinct Non-Interactive Argument of Knowledge" (preuve succincte et non interactive à divulgation nulle de connaissance), avec donc un accent sur le caractère non interactif, ce qui signifie que n'importe qui peut authentifier une déclaration sans interagir avec le prouveur. Cela permet à une blockchain d'authentifier la propriété des comptes, ainsi que de vérifier que l'expéditeur d'une transaction donnée dispose d'un solde suffisant sans révéler les adresses ni les montants des transactions.
Des courbes elliptiques aléatoires sont au cœur du modèle de sécurité des zk-SNARK. Une configuration de confiance ("trusted setup") est également requise pour lancer un protocole utilisant des zk-SNARK. Cela implique de générer des clés secrètes ensuite utilisées pour produire des preuves pour les transactions et les authentifications. Par conséquent, les zk-SNARK sont sensibles aux attaques quantiques et aux fuites de clés privées. Cela dit, les zk-SNARK peuvent réduire de manière significative les tailles des blocs et la consommation de gaz, et ont déjà rassemblé une large communauté depuis leur création en 2012.
Les zk-STARK, qui signifient "zero-knowledge Scalable Transparent Argument of Knowledge" (preuve évolutive et transparente à divulgation nulle de connaissance), ont été introduits en 2018. Comme leur nom l'indique, les zk-STARK mettent l'accent sur la mise à l'échelle et la transparence. Les temps de calcul côté prouveur et vérificateur des zk-SNARK augmentent linéairement avec la taille du témoin, tandis que dans le cas des zk-STARK, ils croissent quasi-linéairement, ce qui les rend bien plus agiles pour traiter de grands ensembles de données. Les zk-STARK s'appuient aussi sur un aléa publiquement vérifiable et des fonctions de hachage, ce qui signifie qu'ils ne nécessitent pas de configuration de confiance initiale et qu'ils sont résistants aux attaques quantiques.
Cela dit, les zk-STARK génèrent des preuves beaucoup plus volumineuses et exigent beaucoup plus de puissance de calcul, ce qui se traduit par une consommation de gaz plus importante et des temps d'authentification plus longs. Les zk-STARK comptent également beaucoup moins de développeurs et de ressources disponibles que leur aîné.
Quels sont les cas d'utilisation des ZKP dans la crypto ?
Preuve d'identité
Il n'existe pas d'endroit où se concentrent davantage de données privées que nos informations d'identité. Traditionnellement, une preuve d'identité exige que le prouveur – vous – envoie ses informations personnelles – tout sur vous, pertinent ou non, parfois dans des détails intrusifs – au vérificateur.
Avec les ZKP, en revanche, il vous suffit de générer une attestation cryptographique qui sert de preuve de la propriété et de la validité de votre identité. Les vérificateurs n'ont qu'à effectuer quelques calculs pour vérifier la validité de votre attestation, au lieu d'avoir accès à toutes vos informations personnelles.
Preuve de réserves par arbre de Merkle
Un arbre de Merkle est un arbre binaire dont les données sont stockées dans ses feuilles. Chaque feuille a sa propre valeur de hachage et ces valeurs de hachage sont ensuite regroupées en nœuds pour être à nouveau hachées jusqu'à ce qu'il ne reste plus qu'une seule valeur – la racine de hachage.
Les vérificateurs n'ont qu'à récupérer les valeurs de hachage de certains nœuds pour authentifier l'intégrité de tout ce qui se trouve dans l'arbre de Merkle sans plonger dans un océan de 0 et de 1. C'est largement utilisé pour prouver qu'une plateforme d'échange de cryptomonnaies dispose de réserves suffisantes et n'a pas déplacé les fonds de ses traders ailleurs à des fins malveillantes.
Bitget a toujours donné la priorité aux clients, et notre preuve de réserves sous forme d'arbre de Merkle est disponible pour tout un chacun : Preuve de réserves Bitget.
Pour plus d'informations sur notre preuve de réserves par arbre de Merkle, veuillez consulter cet article.
Zk-rollups
Un rollup est une solution de mise à l'échelle qui regroupe un ensemble de transactions en un seul lot. Cela permet des transactions bien plus rapides et moins coûteuses que, par exemple, le mainnet d'Ethereum. Il existe deux écoles pour les solutions de rollups Ethereum : Optimistic et ZK. Nous mettrons l'accent sur cette dernière dans cet article.
Les rollups à divulgation nulle de connaissance (zk-rollups) exécutent les calculs off-chain et n'envoient on-chain qu'une preuve de validité (un "résumé" de toutes les transactions regroupées). Une fois cette preuve authentifiée on-chain, toutes les transactions regroupées sont finalisées d'un seul coup.
Plusieurs acteurs majeurs existent parmi les solutions zk-rollup d'Ethereum. Polygon a annoncé que leur zkEVM mainnet bêta doit être lancé fin mars. Dans un effort pour contrer Polygon, zkSync – un autre concurrent – a ouvert l'inscription des développeurs sur leur mainnet juste un jour après l'annonce de Polygon.
Parmi les autres participants notables à cette course figurent Loopring, une plateforme d'échange crypto décentralisée qui offre un débit élevé et de faibles coûts de règlement grâce à l'effet de levier du zk-rollup, et Immutable X, une solution Layer 2 mettant l'accent sur les NFT et offrant une expérience quasi instantanée sans frais de gaz grâce aux zk-rollups.
Inscrivez-vous et commencez à trader Polygon, Loopring, Immutable X, Mina, et de nombreux autres explorateurs du monde de la ZK.
Avertissement : Les opinions exprimées dans cet article le sont à titre informatif uniquement. Cet article ne constitue pas une approbation des produits et services évoqués ni des conseils d'investissement, financiers ou de trading. Il convient de consulter des professionnels qualifiés avant de prendre toute décision financière.