Aller au contenu principal
Cryptographie

Groth16

Groth16 est l'un des SNARKs les plus utilisés (2016, Jens Groth). Vérification très rapide mais setup de confiance requis. Standard de Zcash et plusieurs ZK-rollups.

Définition et origine

Groth16 est un schéma de preuve à divulgation nulle de connaissance (zero-knowledge proof) publié en 2016 par le cryptographe danois Jens Groth. Il appartient à la famille des SNARKs (Succinct Non-interactive ARguments of Knowledge) et reste, dix ans après sa publication, l'un des schémas les plus compacts et efficaces à vérifier.

Caractéristiques techniques

| Propriété | Valeur typique | |-----------|---------------| | Taille de la preuve | ~200 octets (3 éléments de courbe) | | Temps de vérification | ~5-10 ms | | Temps de génération | Polynomial dans la taille du circuit | | Hypothèses cryptographiques | Bilinear pairings, courbes BN254/BLS12-381 |

Cette compacité est inégalée : un Groth16 tient dans un tweet, là où un STARK fait plusieurs Mo.

Le setup de confiance (trusted setup)

Le talon d'Achille de Groth16 : avant utilisation, il faut générer des paramètres publics à partir d'un secret. Si le secret est conservé, n'importe qui peut forger de fausses preuves indétectables. Pour résoudre cela :

  • Le setup est exécuté en cérémonie multipartite (MPC).
  • Tant qu'un seul participant détruit honnêtement sa part, le secret global est inaccessible.
  • Zcash a réalisé deux cérémonies historiques (2016, 2018) impliquant jusqu'à 90 participants mondiaux.

Pire : ce setup est spécifique à chaque circuit. Changer le programme prouvé impose une nouvelle cérémonie.

Usage dans l'écosystème

  • Zcash (Sapling) : preuves de transactions confidentielles.
  • Tornado Cash (Ethereum) : mixeur de fonds.
  • ZK-rollups historiques : Loopring, certaines versions de zkSync.
  • Recherche Bitcoin : utilisé dans des prototypes de sidechains et de coin-mixing.

Concurrents

Plusieurs SNARKs sans trusted setup ou avec setup universel ont émergé depuis :

  • PLONK (2019) : setup universel partagé entre circuits.
  • Halo2 : zéro trusted setup, utilisé par Zcash depuis Orchard.
  • STARKs : pas de trusted setup, mais preuves plus volumineuses.

À retenir

Groth16 reste la référence en compacité et vitesse de vérification, mais son setup de confiance le rend impropre aux protocoles voulant la transparence totale. C'est un compromis classique : performance vs hypothèses cryptographiques.

Termes lies

← Retour au glossaire complet

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