Aller au contenu principal
Cryptographie

Range proofs

Une 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.

Définition

Une range proof est une preuve à divulgation nulle (zero-knowledge) qui démontre qu'une valeur secrète, dissimulée dans un engagement cryptographique (commitment), appartient bien à un intervalle donné — typiquement [0, 2⁶⁴ − 1] pour des montants Bitcoin. Sans cette preuve, un utilisateur malveillant pourrait "engager" un montant négatif et créer de la valeur ex nihilo lors d'une transaction confidentielle.

Pourquoi Bitcoin en a besoin (potentiellement)

Bitcoin Core ne les utilise pas aujourd'hui : les montants sont en clair. Mais elles sont au cœur de :

  • Confidential Transactions (Greg Maxwell, 2015) : masquage des montants tout en garantissant que somme inputs = somme outputs ≥ 0.
  • Liquid Network : déployées en production depuis 2018 sur la sidechain Blockstream.
  • Mimblewimble, Monero (RingCT) : intégrées au cœur du protocole.

Sans range proof, un attaquant pourrait construire un output engagé à −2⁶³ et le compenser par un autre à +2⁶³ + 100, créant 100 satoshis de rien.

Implémentations historiques

| Schéma | Année | Taille (1 output, 64 bits) | Vérification | |--------|-------|----------------------------|--------------| | Borromean ring sigs | 2015 | ~5 000 octets | Linéaire | | Bulletproofs | 2017 | ~675 octets | Linéaire | | Bulletproofs+ | 2020 | ~575 octets | Linéaire |

Les Bulletproofs de Bünz, Bootle et al. ont permis de diviser la taille par 10, rendant les Confidential Transactions viables à grande échelle sur Liquid.

Coût et limites

Une range proof reste coûteuse : plusieurs centaines d'octets de witness par output et un temps de vérification non négligeable (quelques ms par output). C'est l'une des raisons pour lesquelles Bitcoin Core résiste à intégrer les Confidential Transactions sur la couche de base, où chaque octet compte.

À retenir

Les range proofs sont l'arme cryptographique qui rend la confidentialité des montants possible sans rompre la conservation de la valeur. Indispensables sur les sidechains confidentielles, elles attendent toujours leur heure sur Bitcoin mainnet.

Termes lies

← Retour au glossaire complet

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