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
- BulletproofsBulletproofs sont des range proofs courtes sans setup de confiance. Utilisés par Monero et envisagés pour CT. Plus efficaces que les range proofs classiques.
- 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é.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.