Une transaction qui utilise la même entrée qu’une autre transaction qui a été précédemment vérifiée sur le réseau est connue comme une double dépense.
Une crypto-monnaie est comme un disque numérique qu’il est relativement facile de dupliquer. Les utilisateurs peuvent copier sans effort des fichiers numériques et les utiliser pour effectuer des achats, car aucune autorité centralisée ne supervise les transactions.
Toutes les crypto-monnaies ne sont pas exposées aux attaques par duplication, cependant, de nombreux projets qui utilisent le mécanisme de consensus Proof-of-Work sont fortement menacés.
Les programmeurs expérimentés qui connaissent le protocole blockchain peuvent modifier ou répliquer plus facilement les informations numériques, ce qui explique pourquoi la double dépense est le plus souvent liée au bitcoin. Le bitcoin utilise une méthode d’échange de pair à pair qui ne passe par aucun intermédiaire ou institution, ce qui en fait une cible facile pour les attaques de double dépense par les pirates.
Dans une attaque classique de double dépense en bitcoins, le pirate duplique la transaction originale pour lui donner une apparence originale et l’utilise dans une autre transaction tout en conservant la monnaie originale dans son portefeuille ou parfois en supprimant complètement la première transaction.
L’inversion d’une transaction après l’acquisition des biens ou des services de la contrepartie est une autre technique permettant de réaliser une double dépense en bitcoins. Il permet au pirate de conserver à la fois les biens reçus et les bitcoins fournis (qui auraient dû être envoyés à l’autre partie). Pour faire croire que les transactions n’ont jamais eu lieu, l’attaquant envoie de nombreux paquets (unités de données) sur le réseau, faisant ainsi croire que rien ne s’est passé.
Il existe plusieurs types d’attaques de double dépense. En voici quelques-unes :
Finney attaque
Une attaque Finney est un type d’attaque trompeuse de double dépense dans laquelle le commerçant n’attend pas que la transaction soit confirmée. Dans ce cas, un mineur envoie de l’argent d’un portefeuille à un autre mais ne vérifie pas instantanément le bloc. Ensuite, l’utilisateur effectue un achat avec le portefeuille source et le mineur transmet le bloc précédemment miné, qui contient la première transaction après le déclenchement de la deuxième transaction.
51% d’attaque
Une attaque à 51 %, également appelée attaque majoritaire, est un scénario hypothétique dans lequel de mauvais acteurs prennent le contrôle de plus de 51 % des nœuds d’un réseau. Cela leur donne le pouvoir de contrôler le réseau en utilisant le mécanisme de consensus basé sur la majorité. Cependant, à mesure qu’un réseau devient plus grand, plus dispersé et plus précieux, une attaque sur 51 % devient plus complexe et plus difficile à exécuter.
La course d’attaque
Lorsqu’un attaquant lance deux transactions contradictoires et que les commerçants acceptent les paiements avant d’avoir obtenu des confirmations de bloc sur la transaction, une attaque de course est possible. Au même moment, une transaction concurrente est transmise au réseau, renvoyant le même montant de crypto-monnaie à l’attaquant, invalidant ainsi la transaction initiale. Dans ce cas, les mineurs pourraient valider la transaction par rapport au porte-monnaie, empêchant ainsi le commerçant de recevoir les fonds.
Si la blockchain ne peut pas empêcher complètement la double dépense, elle peut agir comme une ligne de défense contre les attaques de double dépense, car une armée de nœuds de validation décentralisés surmonte des équations complexes pour authentifier que les nouvelles transactions ne sont pas doublement dépensées avant d’être indéfiniment ajoutées au grand livre permanent du réseau.