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 même 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, à condition 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 la fraude d’acquérir à nouveau des jetons cryptographiques 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 ».

Les transactions constituent les données d'une blockchain de crypto-monnaie.
Crédit photo : Bitcoin Original Whitepaper

Les personnes qui minent des bitcoins sur le réseau Bitcoin vérifient ensuite la transaction à l’aide 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. Le malfaiteur 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é. Cela s’explique par le fait que la vérification des transactions est un processus complexe qui nécessite une puissance de calcul considérable. La falsification ou la duplication d’un bloc est un travail intense, car les auteurs doivent devancer 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 blockchain. Elle se produit lorsqu’il y a une faiblesse exploitable.

En outre, le réseau blockchain est censé être sûr et digne de confiance. Si une double dépense se produit sur un réseau de crypto-monnaie, 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.

homme sur ordinateur avec des graphiques de crypto-monnaie

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 des 51 % est la forme de double dépense la plus largement discutée. 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.

un jeton bitcoin et d'autres pièces derrière lui

L’attaque à 51 % est moins susceptible de se produire dans les crypto-monnaies les plus établies, comme le bitcoin. Cela est dû au grand nombre de mineurs sur le réseau et à la difficulté de hachage. Toutefois, 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 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.

doigt pressant bitcoin transaction bouton vérification caractéristique image
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 contient sa transaction initiale. Le réseau invalide la transaction avec le commerçant après que ce dernier a fourni des biens ou des services au pirate. Cela permet au pirate de dépenser deux fois.

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 pendant le processus de minage.

Comment la blockchain empêche les doubles dépenses

Les blockchains empêchent les doubles dépenses 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.

photo d'une machine d'extraction de crypto-monnaie

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 le cadre de la preuve d’enjeu, les participants au réseau cryptographique authentifient les transactions de la blockchain 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.

Contrat intelligent

Le réseau sélectionne un validateur honnête en fonction 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 forme de revenu après avoir authentifié de nouvelles transactions. Si le réseau découvre qu’un validateur est malhonnête, il perd une partie ou la totalité de ses 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.

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

Preuve d’enjeu 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 de la blockchain aux utilisateurs qui ont voté pour lui.

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

Pas encore d’affaire, mais la double dépense est possible

Bien qu’il n’y ait pas de cas confirmé, l’émergence de nouvelles crypto-monnaies et de crypto-monnaies fourchues, ainsi que les récentes avancées technologiques, peuvent donner lieu à des surprises en matière de double dépense. Vous devez donc 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.