Comment la blockchain est piratée : attaques sur les réseaux décentralisés
Cet article est disponible dans les langues suivantes :
Points essentiels
Cet article explore les différentes façons dont les réseaux blockchain peuvent être attaqués, soulignant que, bien que les blockchains soient plus sûres que les bases de données centralisées, elles restent vulnérables à des menaces comme les attaques 51 %, la double dépense, les attaques Sybil, le minage égoïste, les failles des smart contracts et le vol de clés privées. Des exemples concrets illustrent les pertes financières importantes que ces attaques peuvent causer, notamment pour les petits projets. L’article conclut qu’à mesure que les mesures de sécurité progressent, les attaques deviennent aussi plus sophistiquées, rendant la vigilance et l’innovation constantes essentielles à la sécurité des blockchains.
La blockchain – un registre distribué qui fait office de base de données – constitue une solution bien plus fiable pour stocker des informations et réaliser des transactions que les bases de données centralisées. Pourtant, elle peut aussi être piratée, et les tentatives sont inquiétantes par leur fréquence. Les attaques sur les réseaux décentralisés sont variées, mais visent dans la plupart des cas à exploiter des failles du mécanisme de consensus et à prendre le contrôle du taux de hachage de la blockchain. Cela permet aux acteurs malveillants de modifier les données du registre, de semer le chaos et de voler des cryptomonnaies.
Dans cet article, nous allons examiner comment la blockchain est attaquée et en quoi consistent les menaces les plus courantes.
L’attaque des 51 %
L’attaque des 51 % est la principale menace pour les blockchains. Elle concerne les réseaux qui utilisent l’algorithme de consensus proof-of-work (PoW).
Mécanisme de l’attaque
Le principe consiste à prendre le contrôle de plus de 50 % de la puissance de calcul du réseau, ou taux de hachage. Les conséquences sont comparables à celles d’un actionnaire majoritaire dans une entreprise : vous pouvez prendre toutes les décisions et faire ce que vous voulez de la société dont vous détenez les parts. Dans le cas du taux de hachage, cela signifie contrôler 51 % de la puissance de calcul de la blockchain.
Si des attaquants contrôlent plus de 50 % de la puissance de minage, ils peuvent réorganiser les transactions, annuler des validations et empêcher d’autres mineurs de valider des blocs. En résumé, ils peuvent semer le chaos et provoquer des défaillances du réseau. Ils peuvent aussi opérer plus discrètement, notamment en dépensant la même cryptomonnaie plusieurs fois (double dépense).
Comment obtiennent-ils autant de puissance ? Plusieurs options existent, comme louer une grande quantité de matériel de minage et prendre le contrôle d’un pool de minage, voire en créer un. Une autre méthode consiste à tromper d’autres mineurs ou à recourir à des moyens totalement illégaux, comme exploiter un botnet de minage via des malwares.
Un risque rentable ?
Cela dit, utiliser cette méthode pour attaquer une grande blockchain comme Bitcoin, où le nombre de nœuds et le coût du matériel et de l’électricité sont très élevés, est quasiment impossible et rarement rentable. Les petits projets, en revanche, ne sont pas à l’abri de cette menace.
Plusieurs réseaux ont déjà subi des attaques à 51 %, dont ZenCash (ZEN), Litecoin Cash (LCC), MonaCoin (MONA), Verge (XVG) et Bitcoin Gold (BTG).
Exemples concrets
Après avoir mené une attaque à 51 %, les attaquants peuvent exploiter toutes les failles du protocole. Mais en général, leur objectif principal est la double dépense.
L’attaque réussie contre le réseau ZenCash (ZEN) en 2018 a permis aux attaquants de dérober 550 000 $. Ils ont pu doubler deux transactions majeures de 13 000 et 6 600 ZEN respectivement. L’attaque a duré 110 blocs et 4 heures, pour un coût estimé à seulement 30 000 $, bien inférieur au montant dérobé.
Autre exemple : Ethereum Classic, attaqué à trois reprises en 2020 par un pirate ayant loué de la puissance de calcul via le service NiceHash. Entre juillet et août, le taux de hachage d’ETC a fortement chuté, et l’attaquant en a profité. Il a loué des GPU représentant plus de 51 % du taux de hachage du réseau Ethereum Classic, ce qui lui a permis de doubler plus d’1 million d’ETC, soit plus de 9 millions de dollars à l’époque.
Le coût de location de la puissance de calcul s’élevait à plusieurs centaines de milliers de dollars, rendant le « profit » final difficile à estimer. Malheureusement, ce type d’histoire est loin d’être rare.
La double dépense
Le problème de double dépense existait bien avant la blockchain et les cryptomonnaies.
En résumé, lors d’un échange d’un bien contre un autre, si la transaction n’est pas réalisée sur le moment et que vous promettez d’honorer votre part plus tard, il existe toujours un risque de ne plus disposer de l’actif au moment voulu.
En théorie, il est possible de fournir un document promettant un paiement (contrat, reconnaissance de dette, etc.) à deux ou trois contreparties, alors que l’actif n’existe qu’en un seul exemplaire. C’est le principe de la double dépense. Sur la blockchain, le mécanisme est identique.
Comment fonctionne la double dépense ?
La double dépense se produit lorsqu’un attaquant dépense les mêmes coins deux fois ou plus. Par exemple, un utilisateur possédant 1 BTC l’envoie à plusieurs destinataires en même temps et reçoit quelque chose en échange. Mais au final, une seule personne reçoit réellement ce 1 BTC.
Quand le réseau fonctionne normalement, une seule transaction est validée par la majorité des nœuds, ce qui est le cas habituellement. Des mesures de sécurité sont intégrées aux blockchains pour empêcher ce type d’attaque. Néanmoins, le risque de double dépense subsiste.
Il existe différentes méthodes pour parvenir à doubler une dépense, l’attaque des 51 % en étant un exemple. Lorsqu’un attaquant contrôle plus de la moitié du taux de hachage, il peut générer de nouveaux blocs de façon indépendante, les modifier et rejeter certaines transactions tout en validant celles qui l’arrangent.

Cet exemple montre que les attaquants ont créé un fork de la chaîne principale et validé de fausses transactions pendant que cinq transactions légitimes étaient traitées.
Pendant ce laps de temps, il est possible d’envoyer des coins vers une plateforme d’échange, de réaliser des transactions nécessitant 1 à 5 confirmations blockchain, puis de recevoir une autre cryptomonnaie ou de la monnaie fiat en retour.
Ensuite, lorsque la « fenêtre d’attaque » se referme, la série de blocs frauduleux est rejetée, mais pour l’attaquant, le résultat est le suivant : il a déposé ses tokens sur une plateforme, les a vendus, mais lorsque la blockchain retrouve son consensus, il détient toujours toutes ses cryptos sur la chaîne d’origine. Ce qu’il a vendu était, en réalité, de la « fausse » cryptomonnaie.
Attaque de Finney
L’attaque de Finney porte le nom du premier destinataire de Bitcoin, Hal Finney, qui fut aussi le premier à évoquer la possibilité de doubler une dépense sur la blockchain.
L’attaque de Finney est une variante de la double dépense qui peut se produire lorsqu’une contrepartie accepte une transaction non confirmée.
Le principe est qu’un mineur peut générer un bloc et y inclure une transaction de son adresse « A » vers une autre de ses adresses, « B », sans la diffuser immédiatement sur le réseau. Ensuite, il réalise une autre transaction de l’adresse « A » vers l’adresse « C », appartenant à un autre utilisateur. Si ce dernier accepte la transaction sans confirmation, l’attaquant diffuse alors le bloc précédent contenant la première transaction. La transaction de « A » vers « C » devient alors invalide, et l’attaquant bénéficie deux fois de la même somme.
Attaque par course (« race attack »)
Ce type d’attaque est une véritable course entre deux transactions. Un fraudeur envoie les mêmes coins depuis la même adresse, sur différents appareils, à deux destinataires simultanément. Les deux destinataires envoient leurs biens ou cryptos, mais la seconde transaction traitée est annulée.
Cette attaque n’est possible que si le commerçant accepte une transaction non confirmée. Pour s’en prémunir, il suffit d’attendre au moins une confirmation de l’opération.
Attaque Sybil
Cette attaque tire son nom de Sybil, personnage principal du livre éponyme de Flora Rheta Schreiber, qui traite du trouble dissociatif de l’identité. L’idée est que des hackers peuplent un réseau de nœuds sous leur contrôle, puis « encerclent » le nœud d’une victime pour contrôler toutes ses transactions.
Cibler les vulnérabilités
Cela est quasiment impossible sur les grands réseaux comme Bitcoin, car les nœuds sélectionnent aléatoirement d’autres nœuds pour valider les transactions.
C’est pourquoi les attaques Sybil ciblent surtout les nouveaux projets crypto. Lorsqu’un nœud se connecte au réseau, il ne connaît pas forcément les adresses IP des nœuds de confiance et doit les demander.
Si la requête aboutit à un nœud contrôlé par l’attaquant, celui-ci peut répondre avec des adresses de nœuds qu’il contrôle également.
Cela permet au hacker de :
- Bloquer les transactions de l’utilisateur, le déconnectant du réseau principal ;
- Décider à quel bloc « connecter » l’utilisateur (généralement des blocs où a lieu une double dépense) ;
- Suivre toutes les transactions de l’utilisateur.
En résumé, les nœuds contrôlés par l’attaquant peuvent persuader d’autres nœuds de valider des données incorrectes.
Minage égoïste
Les blockchains fonctionnant en PoW présentent une vulnérabilité que certains mineurs malhonnêtes peuvent exploiter : la possibilité de valider simultanément plusieurs blocs.
Le problème du fork
Si deux blocs sont générés en même temps et reliés aux précédents, la blockchain se divise en deux chaînes. Les forks complexifient l’architecture de la blockchain et ralentissent les transactions, d’où la nécessité, pour les mineurs, de diffuser immédiatement les données de validation après chaque bloc pour éviter les conflits.
Malgré cela, les mineurs dits « égoïstes » cachent ces informations aux autres participants du réseau et induisent en erreur les nœuds « honnêtes », qui continuent à générer une nouvelle chaîne et allongent ainsi la branche du fork.
Scénario pratique
Imaginons qu’un mineur égoïste ait miné le bloc 2 001 sans le diffuser au réseau. Les autres nœuds continuent à miner de nouveaux blocs à partir du bloc 2 000. Il existe donc deux blocs revendiquant la position 2 000 : un créé par un mineur honnête, l’autre par l’attaquant. Chacun de ces blocs est lié à son propre bloc 2 001.
Les fraudeurs continuent à générer des blocs et à les ajouter à leur propre chaîne, qui s’allonge alors. Les hackers transmettent ensuite les données du bloc 2 001 qu’ils ont miné ; le réseau reconnaît qu’il a été trouvé en premier, considère la chaîne égoïste comme valide et rejette les blocs ajoutés par les nœuds honnêtes durant la même période. Résultat : les mineurs honnêtes ne reçoivent aucune récompense et leurs efforts sont perdus.
Attaques de routage
Ces attaques ne sont pas directement liées à la sécurité de la blockchain elle-même, mais exploitent des failles dans les protocoles de connexion des fournisseurs d’accès à Internet (FAI).
En accédant au protocole, un pirate peut publier de fausses routes. Ce type d’attaque peut notamment servir à doubler une dépense. Si la livraison des nouveaux blocs est retardée, ils ne seront pas visibles par le réseau, créant ainsi une fenêtre propice à la double dépense.
Exploitation des failles des smart contracts
Les smart contracts sont écrits par des humains, et l’erreur est humaine.
Le coût des erreurs de code
De nombreuses vulnérabilités peuvent se cacher dans les smart contracts. Il peut s’agir d’un problème complexe difficile à détecter, ou simplement d’une faute de frappe dans le code. Dans tous les cas, la moindre erreur peut entraîner la perte de millions de dollars.
Dans un rapport du 30 juin 2023, la société de sécurité Web3 Beosin indiquait que la valeur totale des cryptomonnaies perdues à cause d’arnaques, de piratages et d’escroqueries au premier semestre 2023 s’élevait à 656 millions de dollars. La majorité (56 %) de ces pertes provenait de failles dans les smart contracts.
Ce ne sont pas seulement les vulnérabilités des smart contracts eux-mêmes qui peuvent entraîner des piratages de blockchain, mais aussi le langage dans lequel ils sont écrits. Le 30 juillet 2023, quatre pools de liquidité Curve Finance ont été compromis à cause d’une faille dans Vyper, le langage de programmation utilisé pour écrire les smart contracts de Curve. Curve Finance est une plateforme d’échange décentralisée reposant sur la technologie AMM (automated market-making) et constitue le principal hub de liquidité stablecoin en DeFi. Au total, environ 60 millions de dollars ont été dérobés, dont 20 millions récupérés par des white hats et restitués à Curve. La majorité des pertes a résulté du piratage du pool principal CRV/ETH, qui a été entièrement vidé de sa liquidité (environ 40 millions de dollars).
Attaques DDoS et dilatation temporelle
Les attaques DDoS ne visent pas à voler des cryptos, mais à nuire aux projets crypto et à discréditer les startups. Elles consistent à envoyer un grand nombre de transactions inutiles, ou « poussière », sur le réseau, ce qui complique son fonctionnement, ralentit le transfert des données, la mise à jour de la blockchain et la création de nouveaux blocs.
Attaques sur les clés privées
Pour garantir la confidentialité des échanges sur la blockchain, on utilise la cryptographie asymétrique, avec des clés privées et publiques liées par un algorithme mathématique. Si vous connaissez la clé publique d’un utilisateur, vous pouvez lui envoyer un message chiffré qu’il pourra déchiffrer avec sa clé privée. Si vous possédez la clé privée, vous pouvez retrouver la clé publique – l’inverse n’est pas possible.
Les clés privées donnent accès à l’ensemble des actifs crypto d’un utilisateur, ce qui explique pourquoi les attaquants cherchent à s’en emparer.
Vulnérabilités et protection
Le moyen le plus simple d’accéder à une clé privée et aux cryptos associées est de s’emparer de la phrase de récupération, soit en volant un simple bout de papier contenant le code mnémonique, soit via d’autres méthodes comme l’ingénierie sociale ou le phishing.
Pour protéger efficacement votre clé privée et donc tous vos actifs crypto, vous pouvez confier son stockage à Tangem Wallet. Ce wallet crypto n’utilise pas de phrase de récupération, ce qui le rend impossible à voler. La clé privée est générée et stockée dans les puces de deux ou trois cartes (la carte principale et les cartes de sauvegarde), où elle reste sans jamais pouvoir être extraite.
Conclusion
Il est essentiel de garder à l’esprit que la blockchain fait actuellement face à de nombreuses menaces, dont toutes les attaques majeures évoquées ci-dessus, mais aussi des problèmes propres à certains réseaux, comme des erreurs de code, des faiblesses dans les méthodes de chiffrement, etc. Les hackers cherchent en permanence ces failles et tentent d’en profiter, que ce soit en identifiant des vulnérabilités dans les smart contracts, en exploitant les faiblesses de la technologie blockchain elle-même ou en attaquant les plateformes d’échange.
Menaces hypothétiques
Il existe d’autres formes d’attaque qui restent, pour l’instant, purement théoriques :
- Le cannibalisme entre pools (la destruction d’un pool pour perturber la blockchain) ;
- L’attaque P + epsilon : selon Vitalik Buterin, il s’agit de l’un des problèmes les plus préoccupants des réseaux PoW, qui consiste à offrir une sorte de pot-de-vin à d’autres participants pour obtenir leur soutien à des modifications de la blockchain ;
- Le timejacking (tentatives de manipulation des horodatages des transactions).
Pour l’instant, il semble que ces stratégies n’intéressent pas les hackers.
Perspectives
La seule solution à toutes ces menaces est d’améliorer sans cesse les mécanismes de sécurité des réseaux décentralisés. L’expérience montre cependant que plus le niveau de protection augmente, plus les méthodes développées par les mineurs et les hackers pour le contourner deviennent sophistiquées. Cette bataille semble donc sans fin. Dans la finance traditionnelle, les distributeurs sont piratés, les cartes bancaires volées et les banques braquées. Il n’existe pas de garantie de sécurité à 100 %.