En théorie, un pirate informatique avec assez de puissance de calcul (plus de 50% du cumul total) peut dépenser ses bitcoins plus d’une fois (double spending), bloquer les confirmations des autres transactions ou encore faire un rewind sur ses propres transactions.
En un mot le pirate peut façonner à son gré le présent et re-écrire le passé historique de la blockchain.
Mais ce n’st pas tout: ce même pirate peut aussi décider de bloquer des miners en empêchant leur les I/O blockchain, interdire l’accès de certains marchands au système ou encore restreindre le mining du bitcoin uniquement aux adresses IP de ses ordinateurs, s’appropriant ainsi les profits du mining.
Bien sûr un attaque 51% ne peut pas être utilisé pour voler des bitcoins qu’on possède pas (la clé privée protège toujours) mais il peut bloquer toutes les nouvelles transactions BTC en provoquant en très peu de temps le collapse et l’effondrement de la monnaie.
Satoshi Nakamoto avait prévu la possibilité d’un telle attaque, mais il avait conçu le système conformément à la supposition que ce serait très difficile pour quiconque amasser tant de puissance de calcul. Effectivement, pour pouvoir lancer un attaque 51% il faut disposer de la même puissance que le reste du réseau bitcoin plus un epsilon infinitésimale (à minima), ce qui est très difficile pour un seule personne.
Il est intéressant de noter que le basculement arrive vraiment à partire de 50% plus quelque chose. Une attaque à 49% est beaucoup mois grave qu’un attaque à 50.1%. Dès qu’on dépasse le seuil fatidique de la moitié on a la garantie mathématique de pouvoir altérer la blockchain.
Mais voilà que ce que Satoshi n’avait pas prévu arriva. Au fur et à mesure que la monnaie prenait de la valeur, la nombre de mineurs devenait de plus en plus important, la difficulté du mining croissait exponentiellement et la probabilité qu’un particulier puisse casser seul un bloc vierge BTC chutait en sens inverse.
Les individus ont alors commencé a se regrouper en pool de mining. Un pool est une entité qui fédère la puissance de calcul des individus, l’utilise pour miner et redistribue les gains entre les participants après avoir prélevé une petite commission.
D’abord les pool on réunit les particuliers, puis les pools les plus connus ont phagocyté les autres, puis les gros ont incorporé les petits jusqu’à en laisser assez peu, mais énormes.
Aujourd’hui une poignée de mega pools GHASH. IO, AntPool, BW.COM, F2Pool … ) ont le monopole de l’extraction de bitcoin. Il suffit de regarder sur le site blockchain.info dans la colonne « Relayé par » quels sont les pools qui ont réussi l’exploit de casser les derniers blocs. Si vous voyez passer un particulier je vous paie un café.
Si ces pools se mettaient d’accord l’attaque 51% serait possible.
Les conséquences d’une telle attaque seraient catastrophiques et irréversibles. Cela serait sans doute la mort du bitcoin.
Maintenant il n’ont pas du tout intérêt à le faire: à quoi bon reécrire dans la blockchain pour s’octroyer des bitcoins alors que la nouvelle d’un piratage efficace en cours sur le système ferait très rapidement chuter le cours? Et qui est très chargé en BTC sinon ces gros pools qui ne font que miner depuis des années?
***
Ecarté en toute logique une attaque 51% qui viendrait des pools, reste l’attaque isolé d’une banque, d’un hedge-fund, d’un gouvernement hostile aux crypto-monnaies, d’un miliardaire excentrique fauteur de trouble… ou que sais-je?
La question est de savoir combien cette institution devrait débourser pour porter un attaque 51% aujourd’hui, le 10 février 2016.
Sachant qu’on a besoin de
- beaucoup d’ASICs (Application Specific Integrated Circuit) pour le mining
- des PC avec ports USB pour y brancher dessus les ASICS et des ports réseau pour se connecter à Internet
- de l’électricité pour alimenter le tout
voici le calcul :
Les ASICS on peut les acheter chez un fabricant spécialisé BTC: KncMiner, Butterfly Labs…. Le KnC Neptune par exemple est une ferme de calcul ASIC qui livre au final 3 Téra HASH/second. Son prix est 12.000$.
Prix de 1 Téra HASH= 4.000$
La puissance totale estimée de tous les miners p2p bitcoin est traquée et affichée en temps réel sur cette page de blockchain.info. Elle vaut aujourd’hui : 1.200.000 Téra HASHES.
Puissance totale du projet bitcoin = 1.200.000 Téra HASH
Pour porter un attaque 51% il me faut ajouter la même puissance existante plus un petit delta. Je dois donc disposer de 1.200.000 Téra HASHES au prix de 4.000$ le Téra HASH.
1.200.000 Téra HASH/ 3 Téra HASH= 400.000
Il me faudra donc acheter 400.000 fermes de calcul KnC Neptunes pour un prix globale de presque 5.000 de milliards de dollars!
400.000* 12.000$ = 4.800.000.000 $
Au quels il faut ajouter environ
- 10 millions de $ pour les ordinateurs qui feront tourner les ASICS. Des Raspberry PI suffisent (et on peut brancher plusieurs ASICS sur un seul Raspberry)
- un petit millions de $ pour l’électricité nécessaire à faire tourner le système quelques heures, le temps de porter l’attaque. On utilise 1Watt/GigaHASH au prix moyen de 0.15$/kWh.
Décidément beaucoup d’argent, même pour un Etat. D’ailleurs c’est presque le market cap du bitcoin.
***
Il faut souligner qu’en 2014 on pouvait porter cette attaque pour « seulement » 200 millions de dollars.
En Avril 2014 la puissance cumulée du réseau bitcoin était encore de 50 Péta HASH. La croissance étant exponentielle cette même puissance vaut aujourd’hui 24 fois plus: 1.200 Péta HASH.
Il est intéressant de noter que personne n’a tué le bitcoin dans l’oeuf pendant que cela était encore économiquement possible.
C’est une étude très intéressante qui mérite d’être lu!
Je pense cependant qu’il y as une petite anomalie dans les lignes 437, 438 et 439 du code où selon moi:
Soit l’unité de mesure n’est pas Péta mais bien Téra.
Soit les chiffres ne sont pas 1 200 000 Péta mais bien 1 200 comme écrit à la fin.
Je peux me tromper, nul n’est infaillible.
Merci encore pour cet article.
Pas de problèmes et merci, je viens de corriger. En effet c’était bon à la fin mais il y avait 2 Péta de trop au milieu
Bonjour,
Merci de mettre à jour les chiffres sur le coût de ces attaques. Chaque année, les prévisions sont revus à la hausse.
J’aimerais préciser plusieurs points :
– L’attaque ne peut durer que 10 min pour l’exemple de Bitcoin.
– Le réseau à déjà subit ce genre d’attaque.
– La confiance dans le réseau ne s’ébranlerait pas forcément.
– Si l’attaque consiste à modifier les règles (21 millions de btc émit toutes les 10 min et diviser par 2 tout les 4 ans), alors il faudrait convaincre la majorité des acteurs. Les mineurs ne peuvent affecter que la chaîne la plus longue tandis que la totalité des utilisateurs peuvent choisir le logiciel.
– Bitcoin utilise de la cryptographie pour la gestion du couple d’identifiant (clé privée/clé publique), la signature (ECDSA) et le minage (PoW assuré par SHA256). Si l’un de ses mécanismes était vulnérable à la cryptanalyse alors il y a un plan d’urgence pour ça : https://en.bitcoin.it/wiki/Contingency_plans
En somme, si le réseau Bitcoin était attaqué (et en réalité, il l’est de toute part chaque jours), un simple patch + redémarrage réglerait le problème.
merci pour ces précisions