Qu’est ce que la double dépense ?

L’introduction de la monnaie numérique a rendu les transactions efficaces et efficientes. Cependant, cela engendre également de nouveaux problèmes et risques de sécurité. La double dépense est un problème dans la blockchain qui fait référence à une monnaie numérique dépensée plus d’une fois. Ce problème est extrêmement rare mais reste possible, il doit donc être traité. Si les doubles dépenses ne sont pas contrôlées, cela compromettra l’intégrité des monnaies numériques.
Qu’est-ce que la double dépense ?
L’effet de la double dépense est similaire à la contrefaçon de monnaie physique, mais le principe est légèrement différent. La double dépense fait référence à la même monnaie numérique présente à deux endroits à la fois, tandis que la contrefaçon est la création de fausse monnaie.
Par exemple : Ben effectue deux transactions Bitcoin. Il dépense 10 $ de Bitcoin pour acheter une pizza et achète simultanément une paire de chaussettes en utilisant les mêmes 10 $ de Bitcoin. Ben a réussi à doubler ses dépenses en Bitcoin en achetant la pizza et la paire de chaussettes avec les mêmes fonds.
Attaques à double dépense
Attaque 51%
Certaines attaques se produisent non pas à cause de bogues dans le code ou de failles de sécurité, mais simplement en respectant les règles. Le mécanisme de consensus Proof of Work consiste en un réseau de mineurs qui s’accordent sur la version actuelle de la blockchain. Si une entité veut manipuler la blockchain pour doubler les dépenses en pièces, elle devrait acquérir plus de 50 % de la puissance de calcul du réseau, d’où le nom d’ attaque à 51 % .
Bien qu’une attaque à 51% sur une preuve de participation soit possible. C’est hautement improbable. Les attaquants devront obtenir plus de 50% de l’approvisionnement de la crypto-monnaie native et les enfermer dans un contrat de jalonnement. Acquérir 51% peut être extrêmement coûteux et dans la plupart des cas, l’offre en circulation n’est pas assez importante. En plus de cela, l’attaquant risque également de perdre la totalité de sa crypto-monnaie mise en jeu.
A savoir
Les petits réseaux sont plus sensibles aux attaques à 51 %. Plus le réseau est grand, plus il serait coûteux pour un attaquant d’acquérir le matériel nécessaire.
Attaques de transactions non confirmées
Les attaques de transactions non confirmées visent les traders sans méfiance qui acceptent des transactions qui n’ont pas été ajoutées à la blockchain. Ces attaques sont très techniques et nécessitent souvent un timing précis et une séquence d’événements très spécifique pour se produire.
Race attack
Une Race attack implique des transactions non confirmées. Un attaquant créerait une transaction de son portefeuille vers le trader et créerait simultanément une deuxième transaction de son portefeuille vers un autre portefeuille appartenant à l’attaquant. Le trader peut accepter le paiement de la première transaction et transférer les marchandises, mais ne recevra pas la crypto-monnaie lorsque la transaction frauduleuse sera approuvée en premier. Au final, l’attaquant aurait reçu le bien/service du marchand tout en gardant ses pièces.
Dans la blockchain, la première transaction à confirmer aura priorité sur l’autre. L’attaquant imposerait également des frais plus élevés sur la transaction frauduleuse pour avoir la priorité.
Attaque Finney
Les attaques Finney fonctionnent de la même manière qu’une attaque de course, mais elles nécessitent un mineur. Le mineur ajouterait une transaction d’un portefeuille à un autre sur un bloc, mais ne diffuserait pas le bloc sur le réseau. Une deuxième transaction est effectuée par le mineur depuis son portefeuille vers l’adresse du trader. Une fois que le destinataire accepte le paiement, le mineur diffuse le bloc avec la première transaction qui a priorité sur la seconde.
Le saviez-vous?
L’attaque Finney porte le nom de Hal Finney, qui a été le premier à décrire le problème en 2011. Il a également été le destinataire de la première transaction Bitcoin, et beaucoup pensaient que Hal était Satoshi Nakamoto, l’alias derrière le créateur de Bitcoin.
Nothing at Stake
Le problème Nothing at Stake est une faille de sécurité théorique qui consiste à attaquer les fourches des blockchains Proof of Stake. Le problème ne s’est pas encore produit dans le monde réel, mais c’est un problème auquel les développeurs s’attaquent.
Lorsqu’une blockchain bifurque, elle crée une copie qui s’exécute en parallèle. Lorsque l’une des chaînes devient plus longue que l’autre, elle deviendra la chaîne principale et l’autre sera jetée. Il existe une incitation financière pour les validateurs à s’appuyer sur les deux blocs. Les validateurs risquent de perdre des récompenses de bloc si la chaîne sur laquelle ils ont construit est rejetée.
Utile
Le problème Nothing at Stake suppose que chaque validateur agira de manière malveillante et s’appuiera sur les deux chaînes. La plupart des logiciels de validation ne permettent au validateur de construire que sur une seule chaîne, donc le problème suppose que chaque validateur utilisera un logiciel modifié.
Une telle attaque nécessite que les deux chaînes fonctionnent en parallèle jusqu’à ce que la transaction soit acceptée par le trader. Pour que les deux chaînes fonctionnent en parallèle, il faudra que chaque validateur s’appuie sur les deux chaînes. Deux transactions sont effectuées simultanément. L’attaquant enverra la crypto-monnaie au trader sur une chaîne et s’enverra la même crypto-monnaie sur l’autre chaîne. Une fois que le trader accepte le paiement et transfère les marchandises, l’attaquant concentrera son pouvoir de mise sur la deuxième chaîne. Ce qui, à son tour, annulera les transactions effectuées avec le trader et renverra la crypto-monnaie à l’attaquant.

Comment éviter les doubles dépenses
Systèmes centralisés
Les systèmes centralisés s’appuient sur des institutions tierces de confiance comme les banques, les processeurs de paiement et les chambres de compensation automatisées pour vérifier les transactions et éviter les doubles dépenses. Ces systèmes ne sont pas aussi complexes que les systèmes décentralisés et auront moins de failles à abuser. Cependant, cette conception crée un point de défaillance unique.
Systèmes décentralisés
Les systèmes décentralisés utilisent des mécanismes de consensus pour préserver l’intégrité de la blockchain et se protéger contre les doubles dépenses. Des attaques à 51% sont possibles dans les blockchains, mais Bitcoin et Ethereum n’ont jamais été attaqués avec succès de cette manière, car les ressources nécessaires pour atteindre plus de la moitié de la puissance de minage de l’ensemble du réseau seront extrêmement coûteuses.
La lutte contre les attaques de transactions non confirmées est assez simple. Le trader devra accepter le paiement une fois qu’il aura été confirmé par le réseau.
Conclusion
La double dépense permet à un utilisateur de dépenser plusieurs fois la même devise numérique. Si ce problème n’est pas maîtrisé, il sapera l’ensemble du système d’actifs électroniques. La résolution de ce problème est complexe, en particulier dans les systèmes décentralisés. Les mécanismes de consensus rendent la double dépense extrêmement difficile, mais toujours possible grâce à des attaques à 51 %. Les attaques de transactions non confirmées peuvent également être évitées en éduquant les traders à ne pas accepter les transactions non confirmées. En fin de compte, il est extrêmement important d’investir dans des crypto-monnaies réputées et de s’engager dans des échanges fiables.