Qu'est-ce que le ZK (zero-knowledge)
Remarque : Ce document est une traduction automatique de la version originale anglaise.
Qu'est-ce que le ZK (zero-knowledge)
Les preuves à divulgation nulle de connaissance (preuves ZK) sont une technique cryptographique qui permet à une partie (le prouveur) de convaincre une autre partie (le vérificateur) qu'une affirmation est vraie — sans révéler aucune information au-delà de la véracité de l'affirmation elle-même. Dans la blockchain, les preuves ZK sont utilisées pour trois objectifs majeurs : la confidentialité (masquer les détails des transactions tout en prouvant leur validité), la mise à l'échelle (compresser de nombreuses transactions en une seule preuve vérifiée on-chain) et le calcul vérifiable (prouver qu'un calcul off-chain a été effectué correctement).
En bref : les preuves ZK vous permettent de prouver que quelque chose est vrai sans montrer comment ni pourquoi. Dans la crypto, elles permettent des transactions privées, des rollups évolutifs et une inférence IA vérifiable — le tout sans exiger de faire confiance au prouveur.
L'idée centrale
Le concept est contre-intuitif : comment pouvez-vous prouver que vous savez quelque chose sans le révéler ? Une analogie classique aide.
Imaginez une grotte avec deux chemins (gauche et droite) qui se rejoignent à une porte verrouillée au fond. Vous affirmez connaître le mot de passe de la porte. Pour le prouver sans révéler le mot de passe, un vérificateur se tient à l'entrée de la grotte, et vous entrez par un chemin aléatoire. Le vérificateur crie ensuite par quel chemin il veut que vous sortiez. Si vous connaissez le mot de passe, vous pouvez toujours sortir du côté demandé — vous traversez la porte si nécessaire. Si vous ne connaissez pas le mot de passe, vous ne pouvez sortir que du côté par lequel vous êtes entré. Après de nombreux tours, le vérificateur est convaincu que vous connaissez le mot de passe, sans jamais apprendre quel est ce mot de passe.
Les preuves ZK formalisent cette intuition mathématiquement. Elles satisfont trois propriétés :
- Complétude. Si l'affirmation est vraie et que les deux parties suivent le protocole, le vérificateur sera convaincu.
- Solidité. Si l'affirmation est fausse, aucun prouveur tricheur ne peut convaincre le vérificateur (sauf avec une probabilité négligeable).
- Divulgation nulle de connaissance. Le vérificateur n'apprend rien au-delà du fait que l'affirmation est vraie.
Comment fonctionnent les preuves ZK (simplifié)
Un système de preuve ZK implique les étapes suivantes :
- Formulation de l'affirmation. L'affirmation à prouver est exprimée sous forme d'énoncé mathématique — typiquement sous forme de circuit (une série d'opérations arithmétiques) ou d'un ensemble d'équations polynomiales.
- Témoin. Le prouveur possède une information privée (le « témoin ») qui rend l'affirmation vraie. Par exemple, le témoin peut être les entrées d'un calcul qui produit une sortie connue.
- Génération de la preuve. Le prouveur utilise le témoin et l'affirmation pour générer une preuve — un objet mathématique compact. Cette étape est coûteuse en calcul pour le prouveur.
- Vérification de la preuve. Le vérificateur vérifie la preuve par rapport à l'affirmation. La vérification est rapide et ne nécessite pas le témoin. Si la preuve est valide, le vérificateur est convaincu que l'affirmation est vraie sans apprendre le témoin.
La preuve est typiquement beaucoup plus petite que le témoin, et la vérification est beaucoup moins coûteuse que la ré-exécution du calcul. Cette asymétrie est ce qui rend les preuves ZK utiles pour la mise à l'échelle et la vérification blockchain.
zk-SNARKs et zk-STARKs
Deux grandes familles de systèmes de preuve ZK dominent l'espace blockchain :
zk-SNARKs
Succinct Non-interactive Arguments of Knowledge. Les SNARKs produisent de très petites preuves (quelques centaines d'octets) qui sont peu coûteuses à vérifier. Elles sont « non interactives » — le prouveur génère la preuve en une seule étape sans aller-retour avec le vérificateur. La plupart des constructions SNARK nécessitent une configuration de confiance (trusted setup) — une cérémonie unique qui génère des paramètres publics. Si la configuration est compromise, la garantie de solidité est brisée. Les SNARKs modernes (comme PLONK et ses variantes) utilisent une configuration de confiance universelle qui fonctionne pour n'importe quel circuit, réduisant cette préoccupation sans l'éliminer.
zk-STARKs
Scalable Transparent Arguments of Knowledge. Les STARKs ne nécessitent pas de configuration de confiance — ils sont « transparents ». Ils offrent également une sécurité post-quantique (résistance aux attaques par ordinateurs quantiques). Le compromis est que les preuves STARK sont plus grandes que les preuves SNARK et que la vérification est un peu plus coûteuse. Les STARKs sont particulièrement adaptés aux grands calculs parce que le temps du prouveur évolue de manière quasi linéaire avec la taille du calcul.
Comparaison
| Propriété | zk-SNARKs | zk-STARKs |
|---|---|---|
| Taille de la preuve | Petite (centaines d'octets) | Plus grande (dizaines à centaines de kilo-octets) |
| Coût de vérification | Faible | Modéré |
| Configuration de confiance | Requise (la plupart des constructions) | Non requise (transparent) |
| Sécurité post-quantique | Non (la plupart des constructions) | Oui |
| Coût du prouveur | Modéré | Plus élevé, mais évolue mieux pour les grands circuits |
En pratique, de nombreux projets utilisent des systèmes basés sur les SNARKs pour leurs petites tailles de preuve et leurs faibles coûts de vérification, tandis que les STARKs gagnent en adoption là où la transparence et la sécurité post-quantique sont prioritaires.
Le ZK dans la blockchain : applications majeures
Confidentialité
Les preuves ZK permettent des transactions privées sur des blockchains publiques. Un utilisateur peut prouver que sa transaction est valide (soldes corrects, pas de double dépense) sans révéler l'expéditeur, le destinataire ou le montant. Les protocoles axés sur la confidentialité utilisent cela pour créer des transferts confidentiels sur des chaînes par ailleurs transparentes.
Mise à l'échelle (zk-rollups)
Les zk-rollups sont des solutions de mise à l'échelle Layer 2 qui exécutent les transactions off-chain, les regroupent et génèrent une preuve ZK que l'ensemble du lot a été traité correctement. Seuls la preuve et un résumé des changements d'état sont publiés sur la couche de base (Layer 1). Le smart contract L1 vérifie la preuve et accepte la mise à jour de l'état. Cela compresse des milliers de transactions en une seule vérification de preuve, augmentant considérablement le débit tout en héritant de la sécurité de la couche de base. Les principales implémentations de zk-rollups incluent zkSync, StarkNet, Polygon zkEVM, Scroll et Linea.
Pour en savoir plus sur la mise à l'échelle Layer 2, voir L2.
Calcul vérifiable et zkML
Les preuves ZK peuvent vérifier que n'importe quel calcul a été effectué correctement. Cela s'étend à l'IA : le zkML utilise des preuves ZK pour vérifier qu'un modèle de machine learning a produit une sortie spécifique à partir d'une entrée spécifique, sans révéler les poids du modèle ni les données d'entrée. Un smart contract peut vérifier la preuve on-chain, créant une garantie sans confiance que l'inférence IA a été calculée correctement.
Le zkML représente l'une des applications les plus ambitieuses techniquement du ZK dans la crypto IA. Il fournit une garantie mathématique (sans confiance) d'inférence correcte mais est actuellement limité aux petits modèles en raison du coût de calcul de la génération de preuves.
Pourquoi le ZK est important pour la crypto IA
Les preuves ZK répondent à deux besoins critiques de l'IA décentralisée :
- IA vérifiable. Lorsque l'inférence IA s'exécute sur du matériel tiers non fiable, les preuves ZK peuvent garantir que le résultat est correct sans ré-exécuter le calcul. C'est essentiel pour les applications on-chain où les sorties IA déclenchent des actions de smart contracts.
- Confidentialité. Les preuves ZK permettent des calculs IA où le modèle, l'entrée, ou les deux restent privés. Un utilisateur peut obtenir un résultat généré par IA sans que le fournisseur de calcul voie la requête, et un propriétaire de modèle peut prouver que son modèle a été utilisé sans révéler les poids.
Dans le cadre d'évaluation DecAIHub, la vérification basée sur le ZK sert d'indicateur d'intégration IA on-chain authentique — elle crée un lien mathématiquement vérifiable entre le calcul IA off-chain et l'état on-chain.
Où cela apparaît dans les fiches projet DecAIHub
Les fonctionnalités liées au ZK apparaissent à plusieurs endroits :
- AI component — des valeurs comme « zkML inference », « ZK-verified computation » ou « zero-knowledge proof of inference » indiquent une vérification IA basée sur le ZK.
- Category — les projets utilisant le ZK pour l'IA peuvent apparaître dans les catégories AI/Inference ou AI/Compute avec le ZK comme mécanisme de vérification.
- Tableau Evidence — les preuves Tier-1 pour le ZK incluent des contrats de vérification déployés, des benchmarks de preuves publiés, des implémentations de circuits et des transactions de vérification on-chain.
- Artefacts on-chain — les contrats vérificateurs ZK on-chain sont des preuves concrètes d'une intégration ZK réelle, contribuant à la dimension Onchain necessity.
Ce que le ZK ne prouve pas
- Le ZK prouve qu'un calcul s'est exécuté correctement — il ne prouve pas que le calcul est utile, que le modèle est bon ou que les données sont exactes. Des déchets vérifiés restent des déchets.
- Le ZK ne prouve pas qu'un token est nécessaire. Les preuves ZK fonctionnent sans blockchain ; la décision de mettre la vérification on-chain est un choix architectural.
- Le ZK ne prouve pas la décentralisation. Un fournisseur centralisé peut générer des preuves ZK pour ses propres calculs.
- Le ZK ne prouve pas que le modèle est celui revendiqué, sauf si l'engagement du modèle (un hash des poids) est ancré publiquement et que la preuve est liée à cet engagement.
- Un projet mentionnant le ZK dans son whitepaper ne signifie pas que le ZK est implémenté. Recherchez des contrats vérificateurs déployés, des benchmarks de preuves et du code de circuits comme preuves.
Ne pas confondre avec
- Confidentialité (privacy) — la confidentialité est l'objectif plus large. Le ZK est un outil pour l'atteindre. D'autres mécanismes de confidentialité incluent les TEE, le MPC et le chiffrement homomorphe.
- TEE (Trusted Execution Environment) — le TEE fournit une confidentialité basée sur le matériel. Le ZK fournit des preuves mathématiques. Les deux peuvent être utilisés pour l'IA vérifiable, avec des hypothèses de confiance et des compromis de performance différents.
- zkML — l'application spécifique des preuves ZK à l'inférence de machine learning. Le ZK est la technique cryptographique générale ; le zkML est le cas d'usage spécialisé.
- Le chiffrement — le chiffrement masque les données. Les preuves ZK prouvent des affirmations sur des données sans les révéler. Ce sont des opérations différentes : le chiffrement transforme les données en une forme illisible, tandis que les preuves ZK génèrent des évidences mathématiques sur des données sans les exposer.
- La vérification optimiste — elle suppose que les résultats sont corrects et n'utilise des preuves de fraude que lorsqu'ils sont contestés. Le ZK prouve proactivement la correction en amont. Ce sont des approches complémentaires utilisées dans différentes conceptions L2 (optimistic rollups vs zk-rollups).
Questions fréquentes
Quelle est la différence entre les zk-SNARKs et les zk-STARKs ?
Les deux sont des familles de systèmes de preuve à divulgation nulle de connaissance, mais elles diffèrent par des propriétés clés. Les zk-SNARKs produisent des preuves plus petites et ont des coûts de vérification plus faibles mais nécessitent généralement une configuration de confiance — une cérémonie unique pour générer les paramètres du système. Les zk-STARKs ne nécessitent pas de configuration de confiance (ils sont transparents) et offrent une sécurité post-quantique, mais leurs preuves sont plus grandes et plus coûteuses à vérifier. Le choix dépend de l'application : les SNARKs sont préférés lorsque la taille de la preuve et le coût de vérification sont critiques (par exemple, la vérification on-chain), tandis que les STARKs sont préférés lorsque la transparence et la sécurité à long terme sont prioritaires.
Comment les preuves ZK sont-elles utilisées pour la mise à l'échelle blockchain ?
Les zk-rollups exécutent les transactions off-chain par lots, puis génèrent une seule preuve ZK que l'ensemble du lot a été traité correctement. Cette preuve est soumise à la blockchain Layer 1 avec un résumé compressé des changements d'état. Le smart contract L1 vérifie la preuve — ce qui est beaucoup moins coûteux que de ré-exécuter toutes les transactions — et accepte la mise à jour de l'état. Cela permet au L1 de traiter l'effet de milliers de transactions en vérifiant une seule preuve, augmentant considérablement le débit.
Quel est le lien entre le ZK et l'IA ?
Les preuves ZK peuvent vérifier qu'une inférence de modèle IA a été effectuée correctement sans révéler le modèle ni les données d'entrée. Cette application, appelée zkML, permet une vérification IA sans confiance on-chain : un smart contract peut confirmer qu'un modèle spécifique a produit une sortie spécifique. Actuellement, le zkML n'est praticable que pour les petits modèles en raison du coût de calcul de la conversion des opérations du modèle en circuits ZK et de la génération de preuves. À mesure que les systèmes de preuve s'améliorent, l'éventail des modèles IA vérifiables s'élargira.
Les preuves ZK sont-elles coûteuses en calcul ?
La génération de preuve est coûteuse — nettement plus que le calcul sous-jacent. Générer une preuve ZK pour un calcul peut prendre dix à mille fois plus de temps que la simple exécution du calcul. Cependant, la vérification de la preuve est peu coûteuse et rapide. Cette asymétrie est voulue : le prouveur fait le travail lourd une fois, et n'importe quel nombre de vérificateurs peut vérifier le résultat efficacement. Pour les applications blockchain, cela signifie que la génération de preuve coûteuse se produit off-chain tandis que la vérification peu coûteuse se produit on-chain.
Références externes
- Ethereum.org — Zero-knowledge proofs — introduction complète aux concepts de preuves ZK, à leurs types et à leurs applications dans Ethereum.
- ZKProof Standards — effort communautaire de standardisation de la terminologie, des cadres et des définitions de sécurité des preuves à divulgation nulle de connaissance.
- Vitalik Buterin — An incomplete guide to rollups — comparaison fondatrice des rollups optimistes et ZK par le cofondateur d'Ethereum.
No comments to display
No comments to display