Qu’est-ce que la double dépense dans la blockchain et comment l’éviter ?

Les transactions en crypto-monnaies sont sécurisées et dignes de confiance grâce à la technologie blockchain. Toutefois, comme la plupart des systèmes innovants, la blockchain présente des vulnérabilités exploitables, qui peuvent conduire à une double dépense. Mais qu’est-ce que la double dépense et comment l’éviter ?

Qu’est-ce que la double dépense ?

Il y a double dépense lorsqu’une seule entité dépense le même jeton de crypto-monnaie plus d’une fois. Ce phénomène est dû à une faille des monnaies numériques qui les rend facilement reproductibles.

Les informations contenues dans le réseau blockchain peuvent être modifiées au cours des transactions, pour autant que certaines conditions soient remplies. Lorsque ces conditions sont remplies, les blocs de transactions modifiés peuvent entrer dans la blockchain, ce qui permet à l’auteur de réacquérir des jetons de crypto-monnaie précédemment dépensés.

Pour mieux comprendre comment cela se produit, voici une description simplifiée du processus. Lorsqu’une transaction est effectuée sur un réseau blockchain, par exemple Bitcoin, elle crée un bloc qui contient les données de la transaction, les données du bloc précédent et un horodatage. Le bloc comporte un code crypté appelé « hash ».

Crédit d’image : Livre blanc original du Bitcoin

Les personnes qui minent des bitcoins sur le réseau Bitcoin vérifient ensuite la transaction au moyen d’un algorithme de consensus par preuve de travail, ferment le bloc et en créent un nouveau. Le nouveau bloc contient l’horodatage, le hachage du bloc précédent et les données de la nouvelle transaction. Ensuite, le mineur victorieux reçoit des récompenses de bloc (BTC) pour avoir vérifié le hachage.

Pour réussir à effectuer une double dépense, l’auteur doit miner un bloc secret qui dépasse la création du bloc actuel. Pour ce faire, il doit introduire le bloc secret avant le nouveau bloc afin que le réseau, trompé en pensant qu’il s’agit du dernier ensemble du bloc en croissance, ajoute le faux bloc à la chaîne qui ne cesse de s’allonger. L’auteur de l’infraction peut alors récupérer les jetons cryptographiques précédemment utilisés.

Bien que la double dépense soit un phénomène bien connu dans l’espace cryptographique, il n’existe aucun cas documenté. La raison en est que la vérification des transactions est un processus complexe qui nécessite une énorme puissance de calcul. La falsification ou la duplication d’un bloc est intense, car les auteurs doivent travailler avant tous les autres mineurs de la blockchain.

Pourquoi la double dépense est-elle un problème ?

La double dépense est une insulte à la sécurité du réseau de la blockchain. Elle se produit lorsqu’il existe une faiblesse exploitable.

Voir aussi :  Comment repérer et éviter les pièces jointes malveillantes

En outre, le réseau blockchain est censé être sûr et digne de confiance. Si la double dépense se produit sur un réseau de crypto-monnaies, cela crée une méfiance à l’égard de ce cryptosystème, ce qui décourage les investisseurs. Et finalement, la valeur du jeton chutera.

En outre, la double dépense est un vol numérique. Le pirate gagne tandis que quelqu’un d’autre sur le réseau, généralement un commerçant, perd. Le pirate reste propriétaire des biens du commerçant et du jeton cryptographique.

Exemples d’attaques par double dépense

Les cybercriminels emploient différentes formes d’attaques par double dépense. En voici quelques-unes :

Attaque à 51

L’attaque à 51 % est la forme la plus répandue de double dépense. Elle se produit lorsqu’un mineur (ou un groupe de mineurs) contrôle la majorité (plus de 50 %) de la puissance de calcul validant les transactions sur le réseau.

Dans ce cas, ils peuvent dicter les transactions, créer de nouveaux blocs, récupérer les crypto-monnaies déjà dépensées et attribuer des jetons de crypto-monnaie. Cela leur donne le pouvoir de dépenser deux fois les pièces de monnaie numériques.

L’attaque des 51 % est moins susceptible de se produire dans les crypto-monnaies plus établies, comme le bitcoin. Cela est dû au grand nombre de mineurs sur le réseau et à la difficulté de hachage. Cependant, les crypto-monnaies dont les réseaux sont plus petits, comme les nouvelles ou celles qui ont fait l’objet d’un fork, peuvent être menacées.

En 2014, GHash.io, un pool minier qui a fonctionné de 2013 à 2016, a brièvement dépassé 51 % de la puissance de calcul de Bitcoin sur Bitcoin. Cette évolution a suscité de vives inquiétudes quant à la sécurité du réseau. Gnash.io a ensuite volontairement plafonné sa puissance de calcul à 39,99 % afin de rétablir la confiance dans le réseau.

Attaque Finney

Ce type d’attaque par double dépense a été popularisé et nommé d’après Hal Finney. Dans une attaque Finney, un pirate n’a pas besoin de 51 % de la puissance de hachage. Pour que l’attaque réussisse, un commerçant doit accepter une transaction non vérifiée de la part du pirate, qui est un mineur.

Le pirate génère un bloc dans lequel il se crédite des jetons de crypto-monnaie en initiant une transaction de l’adresse X à l’adresse Y (toutes deux lui appartenant) sans la diffuser sur le réseau. Il procède à un autre paiement avec les mêmes jetons de crypto-monnaie de l’adresse X à l’adresse Z, qui appartient à un commerçant.

Crédit photo : Olivier Le Moal/Shutterstock

Si le commerçant accepte les transactions non confirmées sans vérification de la blockchain, le pirate libère alors le bloc qui comprend sa transaction initiale. Le réseau invalide la transaction avec le commerçant après que celui-ci a fourni des biens ou des services au pirate. Cela permet au pirate de dépenser deux fois.

Voir aussi :  Qu'est-ce que l'injection de processus, et comment l'empêcher ?

Attaque de course

Cette attaque est plus facile à réaliser que les attaques 51% et Finney. Dans une attaque de course, il existe une « course » entre deux transactions.

Le pirate utilise différentes machines pour envoyer le même jeton à deux commerçants. Si le commerçant envoie des biens ou des services avant que la transaction ne soit confirmée, il découvrira que la transaction n’a pas été acceptée au cours du processus de minage.

Comment la blockchain empêche les doubles dépenses

Les blockchains protègent contre la double dépense grâce à des algorithmes de consensus, tels que :

Preuve de travail (PoW)

La preuve de travail est un processus hautement compétitif qui nécessite une énorme quantité d’énergie. Dans ce mécanisme de consensus, les mineurs utilisent des ordinateurs complexes pour deviner le hachage des blocs de transaction.

Un hachage est un code hexadécimal unique et crypté de 64 chiffres que possède chaque transaction. Ce processus utilise de la puissance de calcul pour prouver l’authenticité d’une transaction.

Une fois la transaction vérifiée, le mineur qui a réussi l’opération l’ajoute au grand livre numérique décentralisé. À la fin du processus, le mineur qui a réussi reçoit des récompenses sous forme de blocs dans le jeton numérique natif.

Bitcoin, Bitcoin Cash, Litecoin, Monero et Dogecoin sont des crypto-monnaies populaires qui utilisent cet algorithme de consensus.

Preuve d’enjeu (PoS)

Dans la preuve d’enjeu, les participants au réseau cryptographique authentifient les transactions de blocs et sont appelés validateurs. Les validateurs offrent (ou « mettent en jeu ») certains de leurs jetons cryptographiques dans un contrat intelligent pour gagner le droit de vérifier les transactions avant de les ajouter à la blockchain croissante.

Le réseau sélectionne un validateur honnête sur la base des jetons mis en jeu et de la durée de la mise en jeu. Une fois sélectionné, le gagnant vérifie la transaction, que les autres validateurs confirment.

Tout comme pour le PoW, les validateurs reçoivent également une récompense sous la forme d’un revenu après avoir authentifié de nouvelles transactions. Si le réseau estime qu’un validateur est malhonnête, il perd une partie ou la totalité des jetons mis en jeu à titre de pénalité.

Ce processus est plus rapide et nécessite moins de puissance de calcul et d’énergie que le PoW. Par conséquent, les participants à la blockchain peuvent agir efficacement en tant que validateurs.

Voir aussi :  Qu'est-ce que Cloudflare WARP ? Devriez-vous l'utiliser ?

Ethereum 2.0, Cardano, Tezos et Solana utilisent tous le PoS.

Preuve d’acquisition déléguée (DPoS)

Ce type d’algorithme de consensus PoS oblige les utilisateurs de la blockchain à utiliser leurs jetons numériques pour voter pour des validateurs honnêtes appelés « délégués ». Un délégué est choisi au hasard pour valider les nouvelles transactions et les ajouter à la blockchain.

Après paiement, le délégué distribue les récompenses du bloc aux utilisateurs qui ont voté pour lui.

Les crypto-monnaies qui emploient l’algorithme DPoS comprennent EOS, Ark, Tron et Lisk.

Pas encore de cas, mais la double dépense est possible

Bien qu’il n’y ait pas de cas confirmé, l’émergence de nouvelles cryptomonnaies et de cryptomonnaies fourchues, ainsi que les récentes avancées technologiques, peuvent être à l’origine de surprises en matière de double dépense. C’est pourquoi vous devez vous protéger en effectuant des transactions sur des blockchains de crypto-monnaies sécurisées. En règle générale, attendez que les mineurs confirment les transactions avant de libérer vos jetons, vos biens ou vos services.

S’abonner à notre lettre d’information

Comment la blockchain permet-elle d’éviter la double dépense ?

En conclusion, la blockchain empêche la double dépense en diffusant des groupes de transactions à tous les nœuds du réseau bitcoin et en les horodatant. Les transactions sont irréversibles et difficiles à falsifier puisqu’elles sont horodatées sur la blockchain et quantitativement liées aux précédentes.

Quel est le problème de la double dépense dans la blockchain et comment ce problème peut-il être résolu ?

Il s’agit d’une faille technique qui permet aux utilisateurs de dupliquer de l’argent. Étant donné que les monnaies numériques ne sont rien d’autre que des fichiers, un utilisateur malveillant peut créer plusieurs copies du même fichier de monnaie et l’utiliser à plusieurs endroits.

Pourquoi faut-il empêcher la double dépense ?

La double dépense détruirait fondamentalement la base technologique sur laquelle repose une blockchain – une base de données qui est non seulement inviolable, mais qui enregistre également toutes les transactions qui ont jamais eu lieu au sein du réseau.

Comment l’ethereum empêche-t-il la double dépense ?

La blockchain Ethereum ne dispose pas d’un grand livre distribué public autorisé, visible par chaque nœud du réseau. Chaque nœud vérifie toutes les transactions dans un bloc candidat, et si une transaction malveillante/double dépense est trouvée, ce bloc est rejeté. Le système empêche donc la double dépense, comme le montre l’illustration ci-dessous.

Cliquez pour évaluer cet article !
[Total: Moyenne : ]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *