[Bitcoin] L'attaque aux cinquante et un pourcents
Si quelqu'un dispose de plus de la moitié de la puissance de calcul dédiée au minage sur le réseau Bitcoin, il obtient en théorie le pouvoir de refuser de valider certaines transactions, ou de faire des double dépenses.
Comment un tel attaquant s'y prendrait-il pour réaliser une attaque aux 51%?
Souvenez-vous que lorsqu'ils sont confrontés à deux blockchains différentes [1],les noeuds du réseau Bitcoin choisissent la plus longue comme étant légitime. L'idée était que la probabilité pour un noeud mal intentionné de fournir une suite de blocs plus longues que le reste du réseau est infime (cela revient à gagner plusieurs fois de suite à la loterie du minage).
Il en va tout autrement si ce noeud possède une grosse puissance de calcul, et s'il dépasse celle de tous les autres, il est même toujours capable de produire une chaîne plus longue que la chaîne courante, quitte à attendre suffisamment longtemps (parce qu'il mine plus souvent de blocs que les autres).
Pour refuser de valider une transaction, il lui suffirait de ne jamais l'inclure dans les blocs qu'il mine, et d'attendre d'avoir une chaîne plus longue que la chaîne courante (ce qui encore une fois arrivera fatalement vu sa puissance de calcul) pour la remplacer: quand bien même la transaction aurait été validée dans la chaîne courante, elle disparaître de l'historique puisque tous les clients vont basculer sur la nouvelle chaîne.
Pour dépenser deux fois les mêmes bitcoins [2], l'attaquant fait un premier paiement. Il attend que celui qui l'a reçu aie l'impression d'avoir été payé, mais pendant ce temps, il mine une chaîne qui démarre juste avant ce premier paiement et qui ne l'inclut pas, mais inclut un autre paiement avec les mêmes bitcoins vers un autre destinataire qui, quand la nouvelle chaîne aura pris le dessus, aura la certitude d'avoir été payé.
Il est à noter que lorsque l'attaquant mine en secret une chaîne plus longue de son côté, il peut faire en sorte que personne ne s'en rende compte avant qu'il n'ait réussi: il ne compte sur personne pour l'aider à la construire, il mine bloc par-dessus bloc.
Il faut nuancer
Cependant, tout ceci n'est pas si catastrophique que ça:
- L'attaquant ne peut pas voler de bitcoins à qui que ce soit (tout au plus annuler un paiement)
- Après la première ou la seconde entourloupe, il est probable que le réseau se rende compte de ce qui se passe. Les conséquences d'un tel événement sont incertaines, mais on peut imaginer que Bitcoin perde tout ou une partie de sa valeur. Pourquoi prendre ce risque alors qu'on a une puissance de calcul capable de capter plus de la moitié de la production quotidienne de bitcoins, qui représente à l'heure où j'écris ces lignes plus d'un million d'euros?
- La puissance dont nous parlons ne consiste pas à mettre quelques ordinateurs en réseau pour miner ensemble: comme je l'ai mentionné dans un article précédent, il s'agit de plusieurs ordres de grandeurs au-dessus de plusieurs centaines des super-ordinateurs les plus puissants du monde cumulés: ceci est complètement irréalisable pour la plupart des humains ou groupes d'humains, et extrêmement difficile et coûteux, même pour un état.
[1] qui en pratique ne diffèrent que de quelques blocs [2] c'est-à-dire les "sorties" ou "outputs" de transactions reçues
Source: Blogchain