title: Attaque des 51 %
text: # 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.
  
  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^,.$
  
  ## 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). 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, 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.
  
  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^,,$ éventuellement en utilisant une faille dans les protocoles de sécurité.
  
  ## 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 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, 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^,.$
  
  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.
  
  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^,.$ 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) :
  
  * Prendre les coûts totaux de minage (serveurs, électricité, maintenance, etc.) pour miner une quantité de blockchain 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, 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.
  
  ### Bitcoin
  
  Diverses estimations ont été réalisées pour le Bitcoin :
  
  * 878 millions de dollars en mai 2014
  * 300 millions de dollars en janvier 2015
  * 1 milliard de $ de matériel, et 500 000 $ par heure de fonctionnement en électricité, en mai 2018
  
  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).
  
  ## 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 $%^,.$
  
  ### 2018 : Verge
  
  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.
  
  ### 2018 : Bitcoin Gold
  
  17 à 18 millions de dollars ont été dérobés sur une plateforme d'échange par une attaque des 51 %, 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.
  
  