Attaque des 51 %
Une attaque des 51 % est une attaque qui cible les blockchains dites « à preuve de travail » (en anglais PoW, Proof of Work) ou « à preuve d'enjeu » (en anglais PoS, Proof of Stake).
Elle est également connue sous le nom de l'attaque Goldfinger[1].
Le but de cette attaque est de bloquer les validations des transactions d'utilisateurs de cryptomonnaies ou, avec assez de puissance de calcul, de réitérer la transaction : c'est ce qu'on appelle la double dépense, c'est-à-dire utiliser l'équivalent de deux fois le solde de son porte-feuille sans pour autant posséder la somme dépensée. Le mécanisme consiste à modifier l’historique de la blockchain[2],[3].
Problème
La création de Bitcoins (et en général la validation des blockchains) se fait grâce aux mineurs. Pour être quasi sûrs de toucher des bitcoins (ou une autre monnaie cryptographique), les mineurs se regroupent et forment des coopératives ou pools, de façon à avoir plus de puissance, en mutualisant les coûts, les efforts, mais aussi les gains. Toutefois, si une coopérative devient trop importante par rapport aux autres, cela peut permettre une attaque des 51 %.
En effet, le principe de la sécurité des crypto-monnaies repose sur le fait que le calcul est distribué entre tous les nœuds, et en l'absence d'organe central de régulation, la blockchain ne peut être validée que suivant une méthode de consensus. Si un seul mineur (un seul nœud) introduit une erreur ou pirate la blockchain, la masse des autres mineurs va automatiquement corriger cette erreur ou ce piratage. Cette blockchain incorrecte ne correspondant pas à la majorité des autres blockchains minées par les autres nœuds, ce bloc va devenir orphelin, et ne sera pas intégré au registre général.
Mais si une coopérative regroupe plus de 50 % des capacités de minage, il devient en théorie possible de pirater la blockchain : plus de la moitié des mineurs validant le bloc corrompu, c'est celui-ci qui devient le bloc « officiel », car l'algorithme de contrôle distribué le verra comme majoritaire. Cela autorisera la modification de la blockchain. Ainsi, avec plus de 50 % des capacités de minage, il est plus facile de modifier la blockchain et de la faire plus longue que celle reçue, de façon que les nœuds du réseau la choisissent comme étant la plus légitime.
La double dépense
Dans le cas d'une crypto-monnaie, le hack de la double dépense consiste à effacer les transactions : le hacker prend deux comptes A et B qui lui appartiennent, il prend des unités de crypto-monnaies depuis le compte A, et les envoie sur un compte B (A est donc débité, et B est crédité), puis, en manipulant la blockchain, il efface la transaction. (Pour refuser une transaction, il suffit de ne pas l'inclure dans les blocs minés et attendre qu'une blockchain plus longue que la blockchain courante arrive pour la remplacer. Ce qui fera disparaître la transaction[2]). Une fois la transaction effacée dans le registre, c'est comme si le compte A n'avait jamais été débité, alors que le compte B a bien été crédité malgré tout. On engendre ainsi (ex nihilo) des unités de crypto-monnaie qu'il suffit alors de changer (en dollars ou dans une autre crypto-monnaie) pour récupérer les bénéfices de l'opération, idéalement avant la chute du cours de la cryptomonnaie piratée.
Si l'opération de double dépense est très fastidieuse « à la main », des programmes permettent de réaliser cette opération de manière très rapide et automatisée.
Réalisation
Corrompre une coopération ou un groupe de coopérations
51 % signifie que pour exécuter cette attaque, un hacker ou un groupe d'individus qui minent (aussi appelé un mining pool (en)) puissent détenir 51 % de la puissance totale de calcul du minage. On parle donc ici de regrouper la puissance de calcul existante sous une même bannière (un même pool).
Créer une nouvelle capacité de minage
Une autre possibilité pour obtenir la capacité de modifier la blockchain est de créer ex nihilo une capacité de minage qui dépasse la capacité « déjà en place ». Autrement dit, créer une nouvelle ferme de serveurs informatiques spécialisés dans le minage et augmenter sa capacité jusqu'à dépasser l'existant (si une capacité 'X' mine déjà une blockchain, créer une ferme de capacité 'X+1', pour que cette capacité 'X+1' représente plus de 50% de la capacité totale finale 'X+X+1').
Dans le cas d'une blockchain ayant des capacités de minage importantes (telle le Bitcoin, mais cela peut être une chaine de traçabilité alimentaire par exemple), une telle approche est inenvisageable pour une entreprise privée[réf. nécessaire], qui agit (normalement) comme une entité économique rationnelle. Ce n'est cependant pas hors de la portée d'un état souverain ou d'un état voyou, qui a les budgets nécessaires et peut avoir les motivations pour, par exemple « casser » une cryptomonnaie bien implantée[1].
A l'inverse, sur des blockchains ayant une faible capacité de minage déjà installée, cette attaque est facilement réalisable. Dans le cas des crypto-monnaies, il est même possible de simplement louer des serveurs de minage, et réussir cette attaque[4],[5], éventuellement en utilisant une faille dans les protocoles de sécurité[6].
Finalité
Différentes approches pourraient être envisagées pour justifier une attaque des 51 %.
Frauder les registres
Dans le cas d'une utilisation d'une blockchain privée par exemple pour la traçabilité alimentaire (voir Blockchain#Gouvernance et Blockchain#Applications), cette attaque peut être réalisée pour masquer des transactions et ainsi effacer des traces, ou falsifier les informations contenues dans la blockchain.
Dans le cas d'une cryptomonnaie, cela permettrait la double dépense (acheter quelque chose, puis effacer cette transaction des registres, donc annuler l'achat comme s'il n'avait jamais eu lieu). Cette approche n'est pas forcément pertinente dans le cas des cryptomonnaies, car la chute de la valeur entrainerait une destruction de la valeur ainsi fraudée si le hacker n'a pas converti à temps ses unités. Aucun des mineurs ou des pools minant des cryptomonnaies n'a intérêt à réaliser cette attaque, car si elle est découverte, les investissements effectués pour monter les serveurs de minages seraient perdus. Le risque serait donc externe aux mineurs et aux utilisateurs réguliers de la crypto-monnaie.
Casser la confiance dans une blockchain pour la rendre caduque
Dans l'hypothèse où un État souverain[7] ou une agence gouvernementale comme la National Security Agency ou une coalition comme l’Organisation des pays exportateurs de pétrole veut casser une blockchain car elle porterait atteinte à sa souveraineté, elle pourrait utiliser cette attaque, et une fois la blockchain corrompue, afficher publiquement cette attaque. Sous réserve que la blockchain ne soit pas organisée pour être capable d'annuler l'attaque[8], le résultat serait sa caducité.
Conséquences
Dans le cas d'une cryptomonnaie
Une telle attaque ferait chuter la valeur de la monnaie, dans le cas où les hackers décideraient de bloquer des transactions ou s’octroyer des unités de crypto-monnaies[3],[9].
En effet, la crypto-monnaie ne pouvant plus être utilisée pour les transactions (le piratage l'a invalidée), personne ne voudra l'acheter et sa valeur, qui, par nature est décentralisée et non régulée par une banque centrale, va chuter. Cette chute, en raison de la diminution du nombre d'acheteurs alors que les vendeurs sont au moins aussi nombreux qu'en temps normal, voire plus nombreux, pouvant entraîner des « paniques », à l'instar des krachs boursiers[6].
Cependant, le système des crypto-monnaies est conçu pour être résiliant aux attaques. Dans le cas d'un piratage, ou d'une attaque des 51 %, le système va purement et simplement annuler les transactions, appliquer des patchs, et revenir en arrière dans le temps pour annuler l'attaque[source insuffisante][6],[8]. Cela n'est cependant possible qu'à partir du moment où la fraude a été détectée.
Coûts estimés
Différentes méthodes existent pour quantifier le coût d'une attaque des 51 %, mais les fourchettes obtenues restent dans les mêmes ordres de grandeur (pour les exemples testés sur le Bitcoin[1]) :
- Prendre les coûts totaux de minage (serveurs, électricité, maintenance, etc.) pour miner une quantité de blockchain[pas clair] et extrapoler pour atteindre la barre des 51 %.
- Extrapoler le gain annuel des mineurs (personne n'investissant à perte, les opérateurs agissant comme des agents économiques rationnels[réf. souhaitée], on considère que les investissements maximum seront inférieurs ou égaux au gain maximum). Ce calcul n’inclut pas forcément les gains potentiellement démultipliés sur des crypto-monnaies de faible importance[5].
Bitcoin
Diverses estimations ont été réalisées pour le Bitcoin :
- 878 millions de dollars en mai 2014[7]
- 300 millions de dollars en janvier 2015[1]
- 1 milliard de $ de matériel, et 500 000 $ par heure de fonctionnement en électricité, en mai 2018[4]
Jean-Paul Delahaye propose de le comparer au budget des États (plus de 400 milliards d'euros pour l'État français par exemple), ou des agences gouvernementales (plus de 45 milliards de dollars pour la NSA)[1].
Exemples
2014 : GHash.io (en)
En janvier 2014, une des plus grandes coopératives (GHash.io (en)) de mineurs a atteint 42 % de toute la puissance minière de Bitcoin. La communauté Bitcoin a réagi rapidement pour avertir via les réseaux sociaux de ce danger et ainsi prendre des mesures. À la suite de cela, un grand nombre de mineurs ont décidé de quitter GHash.io et d'aller dans d'autres coopératives moins puissantes.
Grâce à ce mouvement, la puissance de GHash.io a chuté de 9 % pour atteindre un niveau de 38 %[10],[11].
2018 : Verge[6]
Deux attaques successives, exploitant d'une part l'attaque des 51 % et d'autre part une faille dans le système de sécurité (Scrypt), ont permis de dérober l'équivalent de 1,1 million puis 1,54 million de dollars si on reprend la valeur du XVG au cours de l'époque[6].
2018 : Bitcoin Gold [5]
17 à 18 millions de dollars ont été dérobés sur une plateforme d'échange par une attaque des 51 %[5], sans utilisation de faille dans les scripts. La valeur du Bitcoin Gold a chuté de 20 % à l'annonce de cette attaque avant de remonter légèrement, sans toutefois retrouver sa valeur initiale, même après trois mois[12].
Références
- « L'attaque Goldfinger d'une blockchain - Scilogs.fr :Complexités », sur www.scilogs.fr (consulté le )
- « [Bitcoin] L'attaque aux cinquante et un pourcents | Nexus Coding », sur nexus-coding.blogspot.ch (consulté le )
- « Combien ça coûterait une attaque 51 % ? – blogchain café », sur blogchaincafe.com (consulté le )
- « Quels seraient les coûts d'attaques des 51% menées contre différentes crypto-monnaies ? - Crypto-France », Crypto-France, (lire en ligne, consulté le )
- « Bitcoin Gold : une attaque double dépense fait perdre plusieurs millions de dollars à des plateformes d'échange - Crypto-France », Crypto-France, (lire en ligne, consulté le )
- « Verge (XVG) : la monnaie numérique anonyme aurait succombé à une nouvelle attaque des 51% - Crypto-France », Crypto-France, (lire en ligne, consulté le )
- http://randomwalker.info/teaching/spring-2014-privacy-technologies/state-attack.pdf
- https://en.bitcoin.it/wiki/Contingency_plans
- « Piratages, escroqueries, systèmes de ponzi... depuis ses débuts, l'écosystème Bitcoin est la cible de nombreuses attaques - Crypto-France », Crypto-France, (lire en ligne, consulté le )
- « Une dangereuse suprématie », sur Bitcoin.fr, (consulté le )
- Adli, « Ghash.io proche des 50 % - Le Coin Coin », sur Le Coin Coin, (consulté le )
- « Bitcoin Gold (BTG) prix, graphiques, cap. marché, et autres indicateurs | CoinMarketCap », sur coinmarketcap.com (consulté le )
- Portail des cryptomonnaies
- Portail de la finance
- Portail de l’économie
- Portail de la sécurité informatique