Dans une transaction confidentielle, les montants sont masqués par des engagements cryptographiques. Il faut pourtant prouver au réseau qu'aucun montant n'est négatif, sans quoi un utilisateur pourrait créer de la monnaie à partir de rien. C'est le rôle des preuves d'intervalle (range proofs), et Bulletproofs a été conçu pour les rendre beaucoup plus petites que les approches précédentes. Bulletproofs répond précisément à ce besoin.
La taille d'une preuve Bulletproofs croît de façon logarithmique avec la taille de l'intervalle, et plusieurs preuves peuvent être agrégées pour économiser encore de la place. Surtout, le système ne nécessite pas de cérémonie de configuration de confiance (trusted setup), contrairement à certains zk-SNARK : sa sécurité repose sur des hypothèses cryptographiques classiques liées aux courbes elliptiques. En contrepartie, la vérification d'une preuve est plus lente que pour un SNARK, et son coût augmente avec la taille de ce qui est prouvé. Bulletproofs a notamment été adopté par Monero pour les montants de ses transactions.
Un exemple concret
Imaginons qu'Inès envoie un montant confidentiel à Marc sur une blockchain privée. Personne ne voit la somme, mais la transaction contient une preuve Bulletproofs démontrant que chaque sortie est un nombre positif dans une limite autorisée. Les nœuds vérifient cette preuve et acceptent la transaction, convaincus qu'aucune monnaie n'a été créée, sans jamais connaître le montant.
Les risques à connaître
Comme tout outil cryptographique avancé, Bulletproofs dépend de la qualité de son implémentation : un bug dans le code de vérification pourrait permettre de créer des fonds indûment. Sa vérification relativement lente limite aussi son usage pour des calculs complexes ou des volumes très importants.
Questions fréquentes sur Preuve à connaissance nulle : Bulletproofs
À quoi servent les Bulletproofs ?
Principalement à prouver qu'un montant caché est valide, par exemple positif et inférieur à une borne, sans révéler sa valeur. Ils sont utilisés dans des cryptomonnaies orientées confidentialité.
Qu'est-ce qu'un trusted setup et pourquoi est-ce important ?
C'est une étape d'initialisation qui génère des paramètres secrets devant ensuite être détruits. Si ce secret fuitait, de fausses preuves pourraient être créées ; Bulletproofs élimine ce risque.