Aller au contenu principal
Cryptographie

ZKP (Zero-Knowledge Proof)

Une ZKP permet de prouver une affirmation sans révéler la donnée sous-jacente. SNARK et STARK en sont les variantes. Utilisée par Citrea, ZeroSync, Bullets, etc. Future bricklayer de Bitcoin.

Définition

Une Zero-Knowledge Proof (preuve à divulgation nulle de connaissance) est un protocole cryptographique permettant à un prover de convaincre un verifier qu'une affirmation est vraie, sans révéler aucune information autre que la véracité de cette affirmation. Le concept est formalisé en 1985 par Shafi Goldwasser, Silvio Micali et Charles Rackoff dans un article fondateur en cryptographie.

Les trois propriétés requises

| Propriété | Signification | |---|---| | Complétude | Si l'énoncé est vrai, un prover honnête convainc toujours le verifier honnête | | Soundness (justesse) | Si l'énoncé est faux, aucun prover malhonnête ne peut convaincre le verifier (sauf avec probabilité négligeable) | | Zero-knowledge | Le verifier n'apprend rien d'autre que la véracité de l'énoncé |

Exemple intuitif : la caverne d'Ali Baba

Imaginez une caverne en forme d'anneau avec une porte secrète au fond. Pierre veut prouver à Marie qu'il connait le mot de passe de la porte, sans le lui révéler. Marie attend à l'entrée et choisit aléatoirement une branche (gauche ou droite). Pierre doit ressortir par la branche désignée — ce qui n'est possible que s'il peut traverser la porte. Après N essais, Marie est convaincue avec probabilité 1 - (1/2)^N.

Variantes modernes

| Type | Caractéristique | Cas d'usage | |---|---|---| | SNARK | Petite proof, vérification rapide, nécessite trusted setup | Zcash, Citrea | | STARK | Pas de trusted setup, plus gros, post-quantique | StarkNet, Cairo | | Groth16 | SNARK le plus compact (192 bytes) | Zcash Sapling | | PLONK | Universal trusted setup | Aztec, Halo2 | | Bulletproofs | Pas de trusted setup, idéal pour range proofs | Monero RingCT |

ZKP et Bitcoin

Bitcoin n'utilise pas nativement de ZKP, mais plusieurs projets cherchent à les y intégrer :

  • ZeroSync : synchroniser un nœud Bitcoin via STARK sur l'historique consensus.
  • Citrea : rollup ZK utilisant Bitcoin comme couche de DA.
  • BitVM : exécution arbitraire vérifiable on-chain via challenges optimistes (apparentés à ZKP).
  • Discreet Log Contracts (DLC) : ne sont pas des ZKP au sens strict mais en partagent l'esprit.
  • Proof-of-reserves cryptographiques pour exchanges.

Limites pratiques

  • Génération de proofs très lente et coûteuse (souvent plusieurs minutes à plusieurs heures de calcul).
  • Trusted setup nécessaire pour certains schémas (risque de fuite).
  • Tooling encore complexe (Circom, Cairo, Halo2...).
  • Pas de support natif Bitcoin script — nécessite des opcodes ou covenants futurs.

À retenir

Les ZKP sont la révolution cryptographique de la décennie 2020. Pour Bitcoin, elles ouvrent des horizons sans soft fork (ZeroSync), avec soft fork limité (covenants), ou en couches (rollups). C'est la matière première des "bricks" qui permettront à Bitcoin de scaler tout en restant sobre.

Termes lies

← Retour au glossaire complet

Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.