Attaque des 51%

Un article de Wikipédia, l'encyclopédie libre.
Sauter à la navigation Sauter à la recherche

Une attaque des 51 % est une attaque qui cible les blockchains dites « à preuve de travail » (PoW, Proof of Work) ou « à preuve d'enjeu » (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, peut également dépenser plus d'une fois, c'est ce qu'on appelle le double spending (en), sans pour autant avoir assez. C'est possible en modifiant l’historique de la blockchain[2],[3].

Le problème[modifier | modifier le code]

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'organisme 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 ce bloc corrompu 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[modifier | modifier le code]

Dans le cas d'une crypto-monnaie, le hack de la double dépense consiste alors 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 génère ainsi ex-nihilo des unités de crypto-monnaie qu'il suffit alors de convertir (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[modifier | modifier le code]

Corrompre une coopération ou un groupe de coopérations[modifier | modifier le code]

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[modifier | modifier le code]

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é de minage importante (telle le Bitcoin, mais cela peux être une chaine de traçabilité alimentaire par exemple), une telle approche est inenvisageable pour une entreprise privée, 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é[modifier | modifier le code]

Différentes approches pourraient être envisagées pour justifier une attaque des 51%.

Frauder les registres[modifier | modifier le code]

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 le double spending (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 cryptomonnaie, 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. Aucune des mineurs ou des spool 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[modifier | modifier le code]

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[modifier | modifier le code]

Dans le cas d'une cryptomonnaie[modifier | modifier le code]

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'utiliser. La valeur de la crypto-monnaie, de par sa nature décentralisée, n'étant pas régulée par une banque centrale, cette valeur va chuter du fait que personne ne veut acheter alors que les vendeurs seront au moins aussi nombreux qu'en temps normal, voir plus nombreux, à l'image des "paniques" à l'origine 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[6],[8]. Cela n'est cependant possible qu'à partir du moment où la fraude a été détectée.

Coûts estimés[modifier | modifier le code]

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[modifier | modifier le code]

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 fonctionnnement 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[modifier | modifier le code]

2014 : GHash.io (en)[modifier | modifier le code]

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][modifier | modifier le code]

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 millions puis 1,54 millions de dollars si on reprend la valeur du Verge au cours de l'époqu[6].

2018 : Bitcoin Gold [5][modifier | modifier le code]

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[modifier | modifier le code]

  1. a, b, c, d et e « L'attaque Goldfinger d'une blockchain - Scilogs.fr :Complexités », sur www.scilogs.fr (consulté le 7 juin 2016)
  2. a et b « [Bitcoin] L'attaque aux cinquante et un pourcents | Nexus Coding », sur nexus-coding.blogspot.ch (consulté le 15 mai 2016)
  3. a et b « Combien ça coûterait une attaque 51 % ? – blogchain café », sur blogchaincafe.com (consulté le 15 mai 2016)
  4. a et b « Quels seraient les coûts d'attaques des 51% menées contre différentes crypto-monnaies ? - Crypto-France », Crypto-France,‎ (lire en ligne)
  5. a, b, c et d « Bitcoin Gold : une attaque double dépense fait perdre plusieurs millions de dollars à des plateformes d'échange - Crypto-France », Crypto-France,‎ (lire en ligne)
  6. a, b, c, d et e « Verge (XVG) : la monnaie numérique anonyme aurait succombé à une nouvelle attaque des 51% - Crypto-France », Crypto-France,‎ (lire en ligne)
  7. a et b http://randomwalker.info/teaching/spring-2014-privacy-technologies/state-attack.pdf
  8. a et b https://en.bitcoin.it/wiki/Contingency_plans
  9. « 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)
  10. « Une dangereuse suprématie », sur Bitcoin.fr, (consulté le 15 mai 2016)
  11. Adli, « Ghash.io proche des 50 % - Le Coin Coin », sur Le Coin Coin, (consulté le 15 mai 2016)
  12. « Bitcoin Gold (BTG) prix, graphiques, cap. marché, et autres indicateurs | CoinMarketCap », sur coinmarketcap.com (consulté le 23 août 2018)