Qu'est-ce que la double dépense (double déchet) dans la blockchain?

Si vous plongez dans l'histoire de la création de crypto-monnaies, vous constaterez peut-être qu'avant l'avènement de Bitcoin, de nombreux enthousiastes avaient déjà tenté de créer un moyen de paiement décentralisé, mais qu'ils étaient tous opposés à l'impossibilité d'éviter les doubles dépenses dans le système. La solution à ce problème n'a été trouvée que des années plus tard.

Qu'est-ce que le double gaspillage et comment cela se produit-il

Le principal problème de la création d’un système stable de paiements décentralisés était la capacité de copier les opérations de paiement, ce qui entraîne un risque de réutilisation des fonds. Les systèmes de paiement centralisés empêchent le retransfert de fonds par la présence d'un serveur de contrôle qui vérifie toutes les transactions à l'aide d'un mécanisme spécifique.

Double dépense ou double dépense- nouvelle dépense. Il arrive souvent que les systèmes décentralisés doublent les dépenses au moment où un expéditeur envoie le même montant de fonds à plusieurs destinataires au cours de la période précédant l’inclusion de la première transaction dans le bloc.

Supposons que dans la vie réelle, une personne décide d'acheter une tasse de café pour 1 $ dans l'un des cafés. Lorsque l’argent est transféré à l’institution de caisse et qu’il est utilisé à nouveau, il est impossible. Les monnaies numériques se différencient également par le fait qu’elles ne sont pas physiquement transférées. Ainsi, avant que la transaction ne soit vérifiée et exécutée, les fonds restent dans le portefeuille, ce qui signifie que, dans l’intervalle entre l’envoi de la transaction et son achèvement, un paiement répété est possible après le contrôle.

Dansla vraie vie peut aussi être un double déchet. Par exemple, des agents immobiliers peu scrupuleux peuvent vendre à plusieurs reprises une propriété et cette opportunité est créée par le fait que la réémission à un nouveau propriétaire peut prendre beaucoup de temps, mais pour le moment le titre de propriété ne lui a pas été attribué.

Quel est le danger des doubles déchets

Le double gaspillage de l'argent cause des dommages matériels au vendeur qui a envoyé les marchandises et n'a pas reçu les fonds. Il discrédite la crypto-monnaie comme moyen de paiement et empêche la distribution omniprésente. En outre, le problème de la double dépense entraîne une baisse de la valeur d'un actif numérique, les investisseurs perdant confiance en la sécurité du système.

Types d'attaques

Course

Si le vendeur coopère pour des paiements sans confirmation, il peut alors être victime d'une attaque de race lorsque deux transactions sont créées pour le même montant et envoyées à des magasins différents. Ainsi, un seul des destinataires recevra réellement les fonds. Les pièces seront transférées lors de la première transaction, qui sera ajoutée àla blockchain .

L'attaque de Finney

La zone de risque de cette attaque contient également des services acceptant les paiements sans confirmation, mais avec cette attaque, la complicité du mineur sera également tenue d’envoyer la transaction copiée au bloc.

L’attaque de Finny est un faux double gaspillage dont le principe est que le mineur envoie une transaction répétée aprèsLe premier paiement est envoyé à un chèque de réseau, auquel cas une fourchette est créée, à laquelle une seule transaction sera acceptée par la décision collective des mineurs. Dans ce cas, le vendeur, dans l’attente de la première transaction, a déjà vendu les marchandises.

attaque de vecteur76

Il s’agit d’une attaque combinée composée des deux attaques décrites ci-dessus. Vector76 est basé sur le branchement délibéré de blocs de transaction et vous permet de dépenser de l'argent deux fois avec une confirmation. Nous utilisons ici le fait qu'avec l'inclusion progressive de différentes transactions dans des blocs, une partie du réseau verra les transactions valides et l'autre partie non valide. L'attaque ne dure que 10 minutes et pendant ce temps l'attaquant peut obtenir des services ou retirer des fonds de deux transactions.

attaque par force brute

Cette attaque est réalisable même si le vendeur n’envoie les marchandises qu’après avoir reçu plusieurs confirmations, mais sa mise en œuvre nécessite une grande puissance des équipements attaquants. Son essence réside dans le fait que l'attaquant envoie une transaction pour payer les biens tout en continuant de vérifier les blocs de transactions dans lesquels elle sera incluse.

Une fois que le magasin a reçu le nombre requis de confirmations, il expédie la marchandise. L’attaquant jette à présent la fourche sur la chaîne s’il trouve davantage de confirmations et récupère des fonds. Si vous ne parvenez pas à collecter plus de confirmations pour une autre transaction, l'attaque n'aura pas lieu et les fonds seront transférés sur le compte du destinataire.

Le succès de cette attaque dépend directement dele pouvoir du fraudeur et le nombre de confirmations demandées. Par exemple, si la puissance de l'attaquant représente 10% de la puissance totale du réseau et que le destinataire attend 6 confirmations, le succès de l'attaque est de 0,01%.

51% d'attaque

Si un attaquantdétient l'essentiel de la puissance du réseau , il est alors possible de doubler l'utilisation des pièces conformément au schéma décrit ci-dessus, avec une garantie absolue de succès. Un attaquant obtient la capacité de générer des blocs plus rapidement que le reste du réseau et de créer ses chaînes de blocs pour les transactions malhonnêtes plus longues que les bonnes.

Comment faire un double déchet

Les informations du registre de la blockchain sont ouvertes à tous. Tout le monde peut copier des pièces numériques et essayer de les payer deux fois. Les mineurs ne peuvent vérifier la disponibilité des fonds sur le compte de l'expéditeur qu'à une période donnée. Par conséquent, si vous en profitez, les mêmes pièces peuvent être envoyées deux fois jusqu'à ce que les fonds soient débités de la transaction précédente.

Dans les systèmes non protégés, le double gaspillage est réduit à l’envoi de transactions répétées à un intervalle de temps jusqu’à ce que la transaction précédente n’ait pas encore été confirmée. Dans ce cas, le destinataire recevra la pièce dont la transaction a été initialement incluse dans le bloc.

Pour que les systèmes soient plus sûrs, l’attaquant devra également disposer d’une capacité suffisamment grande pour rechercher davantage de preuves de la transaction erronée et pour récupérer ses fonds après le rejet de la première transaction.

Comment prévenir le doubledépenses

À l'heure actuelle, les systèmes de paiement opérant sur la blockchain disposent de deux systèmes permettant d'éviter les doubles dépenses:

  • ouvrir le registre des transactions;
  • mécanisme spécial de vérification.

Blockchain conserve un enregistrement chronologique de tous les enregistrements de paiement et chaque nouveau bloc contient des informations sur toutes les transactions précédentes, à compter du moment de sa création. Toutes les transactions se voient attribuer l'heure de la transaction et il est utile de savoir laquelle des transactions est primaire et laquelle est copiée.

Par exemple, l'expéditeur souhaite faire un double gaspillage d'argent en ayant 1 BTC sur le compte. Il envoie cette pièce au premier vendeur et, utilisant le fait que les fonds n'ont pas encore été radiés, il veut tromper le deuxième vendeur et lui envoie à nouveau la même pièce.

Les deux transactions sont converties en un pool de transactions non confirmées et sont soumises à l'examen. Seule la première transaction sera exécutée et la seconde transaction sera considérée comme fausse, car elle ne collectera pas le nombre requis de confirmations.

Par conséquent, pour ne pas être trompé, le vendeur doit envoyer les marchandises uniquement après avoir reçu la confirmation du réseau et non le fait d'envoyer le paiement de l'acheteur. Les transactions avec 6 confirmations sont considérées comme sûres avant le double gaspillage.

Conclusions

Il est possible de doubler le gaspillage de pièces numériques du fait que les fonds restent sur le compte de l'expéditeur jusqu'à la confirmation de la transaction. Dans ce cas, la création de systèmes de paiement décentralisés est devenue possibleen raison du fait que seules les transactions avec plus de confirmations sont enregistrées dans les blocs et que la deuxième branche avec des déchets répétés est considérée comme non valide et est rejetée.

Toutefois, dans la blockchain, il est possible de faire un double déchet, mais cela nécessite une puissance suffisante. Sans eux, le vendeur ne peut être trompé que s’il envoie les marchandises en paiement avec 0 confirmation.