Double dépense
La double dépense est la tentative de dépenser deux fois la même UTXO. Bitcoin la rend coûteuse via la preuve de travail et le consensus. Risque réel uniquement avec des transactions zeroconf. La cause principale de la nécessité d'une blockchain.
Le problème fondamental
La double dépense est la tentative de dépenser deux fois la même UTXO. C'est le problème central que Bitcoin a résolu pour la première fois en environnement décentralisé. Avant Bitcoin, toute monnaie numérique nécessitait un tiers de confiance pour empêcher la double dépense (DigiCash, eCash). Satoshi Nakamoto a montré comment résoudre ce problème via la preuve de travail et le consensus distribué.
Le scénario d'attaque
Alice envoie une UTXO à Bob (boulangerie) en échange d'un pain. Le pain est livré. Alice publie alors une autre transaction qui dépense la même UTXO vers son propre wallet, avec des frais plus élevés. Si cette deuxième transaction est minée à la place de la première, Bob a livré le pain pour rien. Alice a doublé sa dépense.
Comment Bitcoin l'empêche
Bitcoin résout la double dépense par trois mécanismes. Premièrement, l'UTXO set : un UTXO ne peut être consommé qu'une fois, le réseau le supprime après dépense. Deuxièmement, le consensus distribué : tous les nœuds appliquent la même règle de validation. Troisièmement, la preuve de travail : modifier l'historique requiert de re-miner les blocs, ce qui est économiquement prohibitif.
Les types de double dépense
Race attack : envoyer deux transactions concurrentes simultanément, espérant que la victime accepte avant la confirmation. Mitigée en attendant 1 confirmation. Finney attack : un mineur prépare un bloc privé contenant la double dépense, puis l'utilise après une transaction zeroconf. Mitigée par les confirmations. 51 % attack : contrôler la majorité du hashrate pour réorganiser des blocs déjà confirmés. Mitigée par 6+ confirmations.
Zero-conf et risque
Une transaction non confirmée peut techniquement être doublée-dépensée. Pour les paiements rapides (cafés, ATM), c'est un risque réel mais limité : Replace-By-Fee facilite la double dépense, donc les commerçants doivent en être conscients. La meilleure protection : Lightning Network, où les paiements sont définitivement réglés en quelques secondes sans risque de double dépense (les HTLCs sont atomiques).
L'innovation historique
Avant Bitcoin, la double dépense en environnement décentralisé était considérée comme insoluble. Le white paper de Satoshi est presque entièrement consacré à ce problème. La résolution par PoW + consensus distribué est l'innovation conceptuelle majeure de Bitcoin, plus importante que la cryptographie elle-même (qui existait déjà).
Termes lies
- Zero-confirmation (zeroconf)Une transaction zeroconf est acceptée sans attendre de confirmation on-chain. Pratique pour les paiements rapides (commerçants, ATM) mais vulnérable à la double dépense. Full RBF a affaibli sa fiabilité. Lightning Network l'a rendue largement obsolète.
- Preuve de travail (PoW)La preuve de travail est le mécanisme de consensus de Bitcoin : prouver qu'on a effectué un calcul coûteux pour ajouter un bloc. Inventée par Adam Back (Hashcash), elle est appliquée au minage par Satoshi. Elle protège la chaîne d'attaques bon marché et incarne sa sécurité physique. C'est la principale critique « énergivore », mais aussi sa principale force.
- Attaque des 51 %L'attaque des 51 % consiste à contrôler la majorité du hashrate pour réécrire des blocs récents (double dépenses) ou censurer des transactions. Coût et énergie astronomiques sur Bitcoin (>10 milliards $). Possible théoriquement, jamais menée.
- Race attackUne race attack envoie deux transactions concurrentes en double-spend, espérant que le destinataire accepte sans confirmation. Mitigée par le full RBF et le fait d'attendre les confirmations.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.