La fraude de la double dépense sur la blockchain

Cette fraude s’appuie sur le principe de validation des blocks de la blockchain. Lorsque deux blocks sont validés en même temps, la chaine se sépare en deux. La chaine la plus longue est par la suite validée, annulant la plus courte. Seule la plus longue est retenue pour compléter la blockchain.

Pendant ce lapse de temps, il existe une possibilité de fraude. Je vais t’expliquer comment.

Principe de fonctionnement de la fraude

Le pirate créée une première transaction vers un destinataire. Par exemple, P (le pirate) achète pour un montant de 100 000 € à un premier destinataire D1.

Le pirate utilise le même avoir pour réaliser une transaction mais vers un complice ou vers son compte que l’on appellera D2.

Normalement, il ne peut pas utiliser un même avoir pour faire deux transactions. Autrement dit, vous ne pouvez pas utiliser deux fois votre billet de 10 € pour acheter un bien. La première fois que vous l’utilisez, il est transféré au vendeur. C’est de cette manière que sont supposées fonctionner les cryptos. C’est une de leur priopriété principale.

Mais dans le cas de cette fraude, le pirate va utiliser son même avoir pour acheter deux fois. Il fait donc un premier achat à D1 et, toujours avec le même avoir, un achat à D2.

Si cela est fait dans la même instance de la blockchain, la validation des blocks va immédiatement détecter la fraude et retoquer la deuxième transaction.

Mais la faille se trouve dans la réalisation des deux transactions dans deux instances différentes. Le pirate s’arrange pour la première transaction, vers notre victime, se fasse dans une instance de la chaine plus courte que dans la seconde.

Dans la seconde instance, il fait passer son paiement vers lui-même ou un complice.

La seconde instance étant plus longue (elle contient plus de blocks validés), elle sera alors retenue. La première instance ne sera pas recyclée dans un autre bloc car elle sera jugée invalide. Elle n’est en effet pas compatible avec la secnde transaction et sera rejetée.

D1 a reçu un paiement de 100 000 € de notre pirate. Il procède donc à la vente. Mais quelques minutes après, son instance se retrouve non retenue car plus courte que l’autre. Son paiement n’est donc pas retenu et les 100 000 € s’envollent de son wallet. Trop tard, le pirate reçoit la transaction.

Comme il s’est envoyé, ou à un complice, le même montant dans l’instance retenue, sa transaction ne lui a rien coûté.

Cette fraude est indetectable par le vendeur. Mais alors comment s’en protéger ?

Se protéger de cette fraude

Pour éviter de tomber dans cette fraude, il faut absolument attendre que la transaction soit validée par la blockchain. Ne jamais se précipiter, même si l’opportunité semble belle.

Si tu effectus une transaction avant qu’elle ne soit validée, tu prends le risque qu’elle soit annulée.

Add a Comment

Votre adresse e-mail ne sera pas publiée.