Attaques de double dépense : pourquoi vous ne pouvez pas simplement vous fier à « envoyé » pour les transactions sur la blockchain

Intermédiaire
Double-Spend Attacks: Why You Can't Just Look at "Sent" for Blockchain Transactions
De nombreux utilisateurs pensent qu'une fois qu'une transaction blockchain est « envoyée », les fonds ont atteint en toute sécurité leur destination. Mais la réalité n'est pas aussi simple. Pour les plateformes d'échange, les Merchants et les utilisateurs ordinaires, ce qui compte vraiment, ce n'est pas seulement si une transaction a été diffusée, mais si elle a été confirmée par un bloc, si le nombre de confirmations est suffisant, et si la chaîne sous-jacente présente un risque de réorganisation. Comprendre ces concepts constitue la base pour prévenir les attaques par double dépense.
 
Cet article se concentre principalement sur les réseaux de preuve de travail, où la profondeur de confirmation et la preuve de travail cumulée sont centrales pour le risque de réorganisation. D'autres systèmes de consensus utilisent des mécanismes de finalité différents.

Qu'est-ce qu'une attaque de double dépense ?

Une « attaque de double dépense » est essentiellement une tentative par un attaquant de dépenser le même actif numérique deux fois.
 
Pour prendre l'exemple le plus intuitif : un attaquant détient uniquement 1 BTC mais déclenche simultanément deux transactions conflictuelles. L'une paie un Merchant ou une plateforme pour un dépôt, un achat ou un service ; l'autre envoie les mêmes 1 BTC à une adresse wallet contrôlée par l'attaquant. Étant donné que les deux transactions puisent dans les mêmes fonds, seule l'une d'entre elles peut être valide sur la chaîne. Si le Merchant ou la plateforme fait confiance à une transaction « encore non solidement confirmée » trop tôt, l'attaquant peut ensuite exploiter une réorganisation de la chaîne ou un dépassement par une chaîne plus longue, rendant le relevé de dépôt précédemment observé invalide — tandis que les actifs ont déjà été libérés à l'attaquant.
 
Par conséquent, une attaque de double dépense ne consiste pas à « dupliquer des actifs » — elle exploite une confirmation de transaction insuffisante, une production concurrente de blocs ou une réorganisation de la chaîne pour permettre l'utilisation du même actif deux fois dans un processus commercial.

Pourquoi les attaques de double dépense se produisent-elles ?

Bien que la blockchain souligne que les transactions sont irréversibles, cette « irréversibilité » ne s'applique généralement pas immédiatement lors de l'envoi d'une transaction. Elle approche progressivement l'irréversibilité après être empaquetée, propagée et confirmée.
 
Une transaction sur chaîne passe généralement par plusieurs états :
 
État Description
Créé Le wallet crée la transaction
Diffusion La transaction est diffusée sur le réseau blockchain
En attente En attente que les mineurs ou validateurs empaquetent et confirment
Confirmé La transaction a été incluse dans un bloc et commence à accumuler des confirmations
Échoué / Abandonné / Remplacé Transaction échouée, remplacée ou abandonnée
Le risque apparaît souvent pendant la phase en attente et pendant la phase confirmée mais avec trop peu de confirmations. À ces étapes, la transaction « semble exister » mais n’est pas encore suffisamment stable. Si le réseau subit un fork, ou si un attaquant contrôle une puissance de hachage significative et construit une chaîne plus longue, le bloc contenant la transaction originale peut être rejeté — et le registre de la transaction peut « disparaître ».
 
Ceci est ce qu'on appelle une « réorganisation de la chaîne ». Une réorganisation de la chaîne ne consiste pas simplement à supprimer un enregistrement ; cela signifie que l'ensemble du réseau reconnaît finalement une chaîne différente, ce qui rend certains blocs de la chaîne d'origine invalides. Si une transaction de dépôt existe uniquement sur la branche rejetée, l'enregistrement de dépôt que la plateforme a précédemment vu peut perdre sa validité.

Pourquoi les confirmations sont-elles si importantes ?

Le nombre de confirmations détermine la difficulté de revenir en arrière sur une transaction.
 
Lorsqu'une transaction entre pour la première fois dans un bloc, elle a généralement une seule confirmation. À chaque nouveau bloc produit, le nombre de confirmations augmente — 2 confirmations, 3 confirmations, 6 confirmations, voire 12 confirmations. Plus le nombre de confirmations est élevé, plus il faudrait annuler de blocs pour inverser la transaction, et plus le coût d'une attaque est élevé.
 
C'est pourquoi les plateformes d'échange ne créditent généralement pas les utilisateurs immédiatement à 0 à 1 confirmation. Le risque est plus élevé à ce stade, notamment pour les blockchains avec une puissance de hachage faible ou un historique d'attaques de 51 % ou de réorganisations de chaîne, où des seuils de confirmation plus élevés sont nécessaires.

📌 Cas notable : Attaque de 51 % de la puissance de hachage et incident de double dépense sur ETC en 2019

Les attaques de double dépense ne sont pas une menace théorique. En janvier 2019, Ethereum Classic (ETC) a subi une importante attaque de 51 % impliquant des transactions de double dépense.
 
Processus d'attaque typique :
 
Étape Action
1 L'attaquant a d'abord obtenu une domination significative de la puissance de hachage sur le réseau ETC, lui permettant de miner en privé une chaîne plus longue
2 L'attaquant a déposé de l'ETC sur une plateforme d'échange
3 Après que la plateforme d'échange a constaté que la transaction de dépôt avait atteint le nombre de confirmations requis, elle a crédité le compte de l'attaquant.
4 L'attaquant a rapidement vendu l'ETC sur la plateforme d'échange, l'a converti en USDT, BTC ou d'autres actifs, et a retiré les fonds.
5 Pendant ce temps, l'attaquant a continué à miner en privé une chaîne plus longue qui n'incluait pas la transaction de dépôt
6 Lorsque cette chaîne plus longue a été publiée sur le réseau, le réseau a accepté la nouvelle chaîne principale, et la chaîne de dépôt que la plateforme d'échange avait vue a été annulée.
Résultat de ce schéma d'attaque : le dépôt qui avait été « confirmé » dans les registres de la plateforme d'échange a disparu, mais l'attaquant avait déjà retiré les actifs convertis, achevant ainsi le double dépense.
 
Ce cas illustre un fait essentiel : même si une transaction est déjà sur la blockchain, si la sécurité sous-jacente du réseau est insuffisante ou si l'attaquant possède la capacité de réorganiser les blocs, la transaction peut toujours être annulée. La « finalité » d'une transaction sur blockchain n'est pas absolument instantanée — elle s'affirme progressivement à mesure que les confirmations s'accumulent.

🛡️ Comment éviter les attaques de double dépense pendant les transactions

Prévenir les attaques de double dépense ne repose pas sur « la capture d'écran de l'autre partie » ou « l'existence du hash de la transaction » — il s'agit de mettre en place des mécanismes appropriés de confirmation et de contrôle des risques.

D'abord, ne traitez pas « Broadcast » comme « Reçu »

Un utilisateur voyant « envoyé » dans son wallet, ou la partie adverse fournissant un hachage de transaction, ne signifie pas que les fonds sont sûrs. La diffusion indique uniquement que la transaction a entré la phase de propagation sur le réseau — elle ne signifie pas qu’elle a été confirmée par un bloc. Les actions telles que créditer les dépôts, libérer des cryptomonnaies, expédier des biens ou fournir des services ne peuvent pas être basées sur l’état « En attente ».

Deuxièmement, vous devez vérifier le statut de confirmation sur la chaîne

Pour juger de la fiabilité d'une transaction, vérifiez au minimum :
  • Si la transaction a été incluse dans un bloc
  • Quel est le nombre de confirmations actuel ?
  • Que la transaction comporte des risques de remplacement anormal, de transactions conflictuelles ou d'abandon
Pour les scénarios à haut risque, ne vous contentez pas de vérifier « si la transaction existe » — vérifiez « si la confirmation est stable ».

Troisièmement, définissez des nombres de confirmations raisonnables en fonction du niveau de risque de la chaîne

Différentes blockchains présentent des niveaux de sécurité variés. Les chaînes principales à forte puissance de hachage diffèrent considérablement des chaînes à faible capitalisation et faible puissance de hachage en termes de coût pour subir une attaque de 51 % ou une réorganisation de la chaîne. Pour les chaînes à risque plus élevé, les plateformes doivent augmenter les seuils de confirmation des dépôts ; pour les grandes transactions, des exigences de confirmation plus élevées doivent également être fixées — une approche ne convient pas à tous.

Quatrièmement, appliquez la surveillance du contrôle des risques aux comportements de dépôt anormaux

Les comportements suivants doivent déclencher un examen supplémentaire :
 
Comportement anormal Explication des risques
Plusieurs gros dépôts suivis d'une vente rapide et d'un retrait dans une courte période Trajet typique d'une attaque de double dépense
Dépôts fréquents à l’aide de pièces à sécurité historiquement faible Les chaînes à faible puissance de hachage ont un coût d'attaque faible
Demande de retrait immédiat des actifs dès l'atteinte du nombre minimum de confirmations Peut exploiter des vulnérabilités de confirmation insuffisante
Transactions présentant des retards anormaux, des signes de conflit ou un statut instable sur les explorateurs de blockchain Réorganisation de chaîne en cours possible
Ces comportements correspondent souvent étroitement aux modèles opérationnels des attaques de double dépense.

Cinquièmement, ne faites pas confiance aux captures d'écran de paiement ou aux statuts sur une seule page

Les captures d'écran sont les plus faciles à falsifier et les plus faciles à tromper. Que ce soit pour les paiements Merchant, les trades hors bourse ou les vérifications de dépôt, comptez toujours sur les Explorateurs de blockchain et la vérification du système de contrôle des risques — et non sur les historiques de chat, les captures de paiement ou les déclarations verbales.

Sixièmement, comprenez que « l'irréversibilité » n'est pas « instantanée »

Une fois qu'une transaction blockchain atteint un nombre suffisant de confirmations, elle est effectivement généralement très difficile à annuler. Mais lorsque les confirmations sont insuffisantes, les transactions peuvent encore changer en raison de forks, de la congestion, du remplacement ou de la réorganisation de la chaîne. La plus courante des idées reçues en matière d'éducation à la sécurité consiste à interpréter « les transactions blockchain sont irréversibles » comme « une fois envoyées, elles sont absolument sûres ». C'est précisément ce écart cognitif qui permet aux attaques de double dépense de réussir.

💎 Conseils de sécurité pour les utilisateurs ordinaires et les plateformes

Pour les utilisateurs ordinaires, l'élément le plus important est de ne pas livrer de biens, d'actifs numériques ou de services avant confirmation. En particulier dans les transactions hors bourse, les transferts peer-to-peer et les paiements avec des inconnus — ne se fier qu'aux captures d'écran sans vérifier les confirmations comporte un risque extrêmement élevé.
 
Pour les marchands et les plateformes, une protection véritablement efficace n'est pas une « expérience manuelle », mais des mécanismes standardisés :
  • Seuils de confirmation clairs
  • Niveaux de risque différenciés par chaîne
  • Détection des chemins de retrait anormaux
  • Délai de révision étendu pour les dépôts d'actifs à risque élevé
  • Vigilance accrue pour les pièces ayant un historique de réorganisations ou d'attaques à 51 %

Conclusion

Le cœur d'une attaque de double dépense n'est pas « un pirate qui duplique une pièce » — c'est un attaquant qui exploite des transactions encore non solidement confirmées pour créer l'illusion d'un « déjà payé » dans un processus métier. L'incident ETC de 2019 a déjà démontré que tant que la chaîne sous-jacente comporte la possibilité d'une réorganisation, les transactions insuffisamment confirmées ne doivent pas être considérées comme définitivement reçues.
 
Le principe de base des transactions sécurisées se résume à une phrase :
 
Vérifiez les confirmations, pas les captures d'écran ; vérifiez la finalité, pas l'état superficiel.
Plus le nombre de confirmations est élevé, plus la fenêtre pour une attaque de double dépense réussie est réduite.

Disclaimer: The information on this page may come from third parties and does not necessarily reflect KuCoin’s views. It is provided for general reference only and should not be interpreted as financial or investment advice.

Virtual asset investments may involve risk. Please carefully assess the product risks and your own risk tolerance. For more information, please refer to our Terms of Use and Risk Disclosure.