Pedersen commitment
Un engagement de Pedersen lie une valeur sans la révéler tout en permettant d'additionner des engagements. Base des Confidential Transactions et Mimblewimble.
Définition
Un Pedersen commitment est un schéma d'engagement cryptographique proposé par Torben Pryds Pedersen en 1991. Il permet à une partie de s'engager sur une valeur (par exemple un montant) sans la révéler, tout en gardant la possibilité de le prouver plus tard. Deux propriétés essentielles :
- Hiding : l'engagement ne révèle rien sur la valeur engagée.
- Binding : impossible d'ouvrir l'engagement sur une valeur différente.
Sa propriété additive en fait un outil unique : la somme de plusieurs engagements engage à la somme des valeurs.
Formulation mathématique
Soient G et H deux points sur une courbe elliptique (avec un log discret inconnu entre eux). Pour engager une valeur v :
C = v · G + r · H
où r est un nombre aléatoire (blinding factor). Pour ouvrir l'engagement plus tard, on révèle (v, r).
Pourquoi c'est puissant
| Propriété | Conséquence |
|-----------|-------------|
| Hiding | C n'apprend rien sur v |
| Binding | On ne peut pas changer v après coup |
| Additivité | C1 + C2 = (v1+v2)·G + (r1+r2)·H |
| Homomorphique | Calculs sur engagements possibles |
La propriété additive est ce qui rend possible la vérification de la conservation des montants dans une transaction confidentielle sans jamais voir les montants.
Application : Confidential Transactions
Dans les Confidential Transactions (Greg Maxwell, 2015), les montants ne sont pas en clair mais sous forme d'engagements Pedersen. Pour qu'une transaction soit valide :
sum(commitments d'entrée) = sum(commitments de sortie) + commitment des frais
Cette équation s'écrit en termes de points elliptiques et peut être vérifiée publiquement sans connaître les montants. Pour assurer qu'aucun montant négatif n'est introduit (créant des bitcoins par soustraction), on ajoute des rangeproofs prouvant que v ∈ [0, 2^64].
Application : Mimblewimble
Mimblewimble (2016) construit un protocole complet de blockchain sur Pedersen commitments :
- Plus d'adresses, plus de scripts.
- Tout est en commitments et signatures sur ces commitments.
- Les transactions peuvent être agrégées et compactées (cut-through).
Implémentations : Grin, Beam. Pas utilisé directement par Bitcoin, mais étudié pour des sidechains.
Application : Liquid Network
Liquid, la sidechain de Blockstream, utilise les Confidential Assets : Pedersen commitments étendus à des actifs multiples, pas seulement BTC. Les montants ET les types d'actifs sont cachés.
Limites
- Pas adapté tel quel à Bitcoin : la taille des transactions augmenterait massivement à cause des rangeproofs.
- Pas quantum-safe : repose sur le problème du log discret.
- Complexité : impose une cryptographie plus avancée que ECDSA/Schnorr classique.
Comparaison avec d'autres engagements
| Schéma | Hiding | Binding | Additif | Computational | |--------|--------|---------|---------|---------------| | Hash commitment | Parfait | Calculatoire | Non | Très simple | | Pedersen | Calculatoire | Parfait | Oui | Cryptographique | | Bulletproofs (extension) | Calculatoire | Parfait | Oui | Plus compact |
À retenir
Le Pedersen commitment est l'un des outils cryptographiques les plus élégants pour la confidentialité financière : il prouve sans révéler, additionne sans dévoiler, et reste vérifiable publiquement. C'est la brique qui rend imaginable un Bitcoin avec montants cachés.
Termes lies
- Confidential TransactionsLes Confidential Transactions cachent les montants on-chain par engagements de Pedersen. Validables sans connaître le montant. Implémentés sur Liquid. Compromis : vérification plus lourde, peg-out limité.
- Range proofsUne range proof prouve qu'une valeur engagée est dans une plage donnée, sans la révéler. Indispensable aux Confidential Transactions. Bulletproofs en sont la version compacte.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.