L’attaque Goldfinger d’une blockchain


On a beaucoup critiqué le bitcoin l'accusant d'être une pyramide de Ponzi, d'être intrinsèquement instable (car aucune régulation ne lui est appliquée), etc. Nombre de ces critiques sont le résultat du dérangement produit par une idée nouvelle dans un domaine — l'économie et la théorie monétaire — qui ne l'attendait pas, et qui n'était pas préparé à le comprendre. Une compétence minimale en informatique et en cryptographie mathématique (réseaux P2P, fonctions de hachage, protocoles asymétriques, etc.) est nécessaire pour savoir de quoi il s'agit, or elle est absente chez de nombreux experts des monnaies ce qui leur a interdit de saisir précisément la nature et le fonctionnement de la crypto-monnaie de Satoshi Nakamoto. Le moralisme et la frilosité d'un monde qui ne demandait qu'à rester tranquille sans qu'on vienne le déranger ont fait le reste, et même les meilleurs esprits (éventuellement prix Nobel d'économie...) se sont trompés en croyant que la devise numérique ne pouvait pas tenir... alors qu'elle tient depuis 6 ans (le total des devises bitcoin vaut plus de 3 milliards de dollars le 13 janvier 2015 !). Reste que tout n'est pas réglé définitivement et que plusieurs problèmes sont en suspens. Voir par exemple ici, ici ou .

Nous allons ici revenir sur un point unique, mais qui apparaît assez grave. Il s'agit des attaques de type « Goldfinger » où un État par exemple souhaite détruire le bitcoin même sans s'emparer de la valeur des bitcoins, simplement parce que cela nuit à sa propre monnaie ou la met en danger. Le terme « attaque Goldfinger » a été introduit dans l'article : Kroll, J. A., Davey, I. C., & Felten, E. W. (2013, June). The economics of Bitcoin mining, or Bitcoin in the presence of adversaries. In Proceedings of WEIS (Vol. 2013).

Notre propos va concerner principalement le bitcoin, mais il s'applique à toutes les blockchains support d'une monnaie et fonctionnant sur un protocole semblable au bitcoin.

Une blockchain de type bitcoin

Considérons donc une blockchain, qui pour inciter à gérer ses copies sur le réseau P2P qui lui est associé (autrement dit, pour encourager à participer à ce qu'on nomme le « minage » dans le cas du bitcoin) prévoit une rémunération des acteurs — les « mineurs » — gardant, surveillant et mettant à jour chacun leur copie de la blockchain. Cette rémunération sera supposée proportionnelle (en espérance mathématique) à un travail de calcul, par exemple des évaluations de la fonction de hachage SHA256. Dans le cas du bitcoin, la rémunération totale de tous les mineurs est de 25 bitcoins toutes les dix minutes, elle est divisée par deux tous les quatre ans (au départ, en 2009, 50 bitcoins toutes les 10 minutes, ensuite 25, bientôt 12,5, etc.) et la probabilité d'être gagnant est proportionnelle au nombre d'évaluations de la fonction de hachage SHA256 qu'effectue un mineur.

Puissance nécessaire pour une attaque Goldfinger

Pour s'emparer d'une blockchain conçue sur un tel modèle, il suffit d'une puissance de minage équivalente à un peu plus de 50% de la puissance cumulée de minage. La puissance de minage d'un mineur dans le cas du bitcoin est mesurée par sa capacité à calculer des évaluations de la fonction de hachage SHA256 qui sont sans intérêt par ailleurs. Tout cela conduit à l'utilisation d'une formidable énergie pour des opérations en apparence inutiles. Si un nouvel acteur, souhaite disposer de 50% de la puissance de minage, il faut qu'il ajoute 100% de la puissance à l'instant où on commence à miner : si la puissance totale des mineurs avant intervention est X, il faut que celui qui veut accéder à 50%, ajoute une puissance de X pour détenir la moitié des 2X qu'il y aura quand il se sera introduit.

Disposer d'un peu plus de 50% (disons 51%) permettra de refuser de valider certaines transactions, de valider des doubles dépenses (donc d'effacer ses propres dépenses et de récupérer une somme envoyée) et même de mener des attaques par dénis de service et donc de faire s'écrouler toute confiance dans le bitcoin, autrement dit de l'annihiler. Voir ici :

« 51% would allow an attacker to undo as many blocks as they wanted and undo a transaction no matter how many confirmations it has. They simply commit the transaction they wish to undo into the public blockchain and a conflicting transaction into their private blockchain. They then wait until as many confirmations as needed. They then wait until their private blockchain is longer than the public blockchain, which it will eventually be with higher and higher probability. As soon as their chain is longer, they announce it, and their chain wins. »

Plus de détails sur ce que permettent les 51% de la puissance de minage ici a et .

Coût d'une attaque Goldfinger

Nous n'envisagerons que ce type d'attaque dite « 51% » comme attaque Goldfinger. D'autres sont possibles — par exemple basées sur l'attaque des primitives cryptographiques utilisées par la blockchain — mais il est assez difficile d'en évaluer le coût, alors que pour l'attaque 51% nous allons voir que c'est assez facile. Les chiffres que nous allons obtenir seront donc des majorants pour le coût d'une attaque Goldfinger, qui pourrait demander une dépense moindre (ce que soutient par exemple Nicolas Courtois ici ).

Le coût d'une attaque 51% (en matériel, en électricité, en locaux, en personnels, en réseaux, etc.) est majoré par celui des dispositifs de minage à l'instant de l'attaque. Il faut a priori autant de dispositifs informatiques de minage qu'il y en a à l'instant de l'attaque (voir plus haut). En évaluant à un an le temps d'obsolescence de ce type de matériel qu'on considérera dans un premier temps comme la source principale de dépense d'un mineur, le coût d'une attaque 51% est donc égal à ce que coûte annuellement le minage à l'ensemble des mineurs. Nous écartons l'idée de la location de la puissance de calcul nécessaire, mais bien sûr si elle est possible, elle rendra l'attaque encore moins chère ; répétons-le, nous allons calculer un majorant du coût d'une attaque 51%, et proposer des équivalents à ce majorant qui suffiront comme argument pour justifier notre conclusion.

On a évalué ici le temps d'obsolescence à une année pour notre raisonnement. Il en résulte bien sûr qu'un facteur correctif sera à appliquer s'il s'avère que c'est moins ou plus d'une année. Dans la réalité, ce temps d'obsolescence pour le bitcoin a été bien inférieur à un an en 2013 et 2014, il est en train d'augmenter car les circuits ASIC fabriqués aujourd'hui pour le minage sont déjà très optimisés et que la baisse du cours du bitcoin décourage la compétition, ce qui limite pour un temps les progrès des dispositifs de minage.

Gains et dépenses des mineurs

Ce que dépense annuellement l'ensemble des mineurs pour miner est par ailleurs égal à ce qu'ils gagnent annuellement. Justifions cette dernière égalité.

L'affirmation de cette égalité approximative entre coût annuel du minage pour les mineurs et rétribution annuelle de l'ensemble des mineurs résulte d'un simple raisonnement économique.

(A) Globalement les mineurs se comporteront comme des agents économiques rationnels et n'accepteront pas de dépenser plus que la rétribution qu'ils tirent de leur activité (ils perdraient de l'argent !).

(B) Ils seront prêts à dépenser autant : tant que ce sera intéressant, les mineurs feront croître leur investissement et de nouveaux mineurs s'introduiront pour profiter de l'aubaine.

L'égalisation n'est pas effective à chaque instant, mais tendancielle. Il se peut par exemple que pendant un moment, pariant sur la hausse de la devise, des mineurs acceptent de perdre de l'argent pour accumuler des bitcoins qu'ils feraient mieux d'aller acheter sur les marchés... s'il n'y avait le problème pour eux de l'amortissement de leur investissement matériel.

Coût d'une attaque Goldfinger, deuxième évaluation

De tout ce que nous venons de détailler, il résulte que le coût d'une attaque Goldfinger (en utilisant une attaque 51%) est en gros égal à ce que gagnent annuellement les mineurs.

La réalité est un peu plus compliquée (à cause d'une approximation faite sur le coût de l'attaque à l'instant de l'attaque) : pour avoir 51% de la puissance de calcul pendant quelques heures (ce qui est suffisant pour casser la blockchain), il n'y a pas besoin de l'électricité dépensée pendant un an, mais seulement de celle utile pendant le temps que dure l'attaque. L'approximation évoquée est donc optimiste (pour la sécurité de la blockchain) : dans la réalité l'attaque Goldfinger (casser la blockchain, sans chercher à s'emparer de la valeur créée) est sans doute moins coûteuse que le gain annuel de l'ensemble des mineurs. Un effet d'échelle sur la fabrication de circuits spécialisés ferait encore baisser le coût d'une attaque Goldfinger.

Pour l'essentiel cependant, il ne fait pas de doute que le coût de l'attaque 51% d'une blockchain du même type que celle du bitcoin est — en ordre de grandeur — égale ou inférieure aux gains des mineurs pendant environ une année.

Le gain des mineurs

Le gain annuel des mineurs est assez complexe à évaluer finement. Il dépend de trois facteurs  :

- (a) la rétribution en devises et le cours de celles-ci ;

- (b) les frais versés par les utilisateurs aux mineurs ; ils sont facultatifs pour l'essentiel dans le cas du bitcoin, mais il est prévu qu'ils se substitueront sur le long terme aux bitcoins créés toutes les 10 minutes ;

- (c) l'évolution prévisible en moyenne des cours due aux émissions de nouvelles devises ou à leur destruction. Ce troisième facteur est à prendre en compte, car si par exemple une blockchain émet 25 % de devises nouvelles par an, elle crée — toutes choses étant égales par ailleurs — mécaniquement une inflation annuelle de 20 % (100/125 = 0,80). Dans le cas de mécanismes de destruction de devises, la valeur des devises au lieu de décroître, augmentera : si par exemple 20% des devises émises sont perdues chaque année cela augmente tendanciellement la valeur des devises restantes de 25%  par an (100/80=1,25).

Une approximation convenable des gains des mineurs s'obtient en ne considérant que (a) la rétribution en devises, et (b) les frais donnés aux mineurs par ceux qui veulent que leurs transactions sur la blockchain soient effectuées rapidement.

Coût d'une attaque Goldfinger, évaluation  finale

En résumé, le prix de l'attaque 51% d'une blockchain (du type de celle du bitcoin) est en ordre de grandeur égal ou inférieur à ce que gagnent ou dépensent annuellement les mineurs, et cette valeur, pour un résultat plus fin, doit être corrigée :

- (a) par la prise en compte des phénomènes inflationnistes ou déflationnistes résultant l'évolution du total des devises en circulation, et

- (b) par la prise en compte des dépenses de fonctionnement du minage — électricité, locaux, personnels, etc. — qui ne doivent être comptabilisées que pour quelques heures ou jours (au lieu de l'année entière).

En une équation :

Coût attaque 51% + {économies réalisées en n'utilisant les dispositifs que quelques heures au lieu d'une année} = Dépenses annuelles des mineurs = Gains annuels des mineurs {modulées par les variations inflationnistes ou déflationnistes dues à la création de nouvelles devises ou à leurs destructions.}

En négligeant les accolades :

Coût attaque 51% = Dépense annuelle des mineurs = Gains annuels des mineurs

Ces deux équations doivent encore être corrigées en multipliant le résultat final de l'évaluation du coût de l'attaque par T, si on considère que le temps d'obsolescence des matériels de minage n'est pas une année, mais T années.

Pour le bitcoin aujourd'hui le total des devises émises par an est assez faible comparé au total des devises déjà émises (environ 10%). On peut donc négliger le facteur inflationniste/déflationniste (a). Le facteur (b) est assez difficile à évaluer et il faut le garder en tête que le négliger (comme nous allons faire) conduit à surestimer le coût de l'attaque. Le facteur T change et changera encore, il faut y rester attentif.

Le coût d'une attaque Goldfinger du bitcoin par la méthode des 51% est donc en ordre de grandeur :

230 x 25 x 6 x 24 x 365  ≈ 300 millions de dollars.

(230 = cours d'un bitcoin le 13 janvier 2015 ; 25 = nombre de bitcoins émis toutes les 10 minutes ;  6 = nombre de fois 10 minutes dans une heure ; 24 x 365 : nombre d'heures en une année.)

Il faut prendre la somme obtenue comme un ordre de grandeur. En clair, les 300 millions de dollars du résultat signifient qu'il se peut qu'une attaque 51% coûte en réalité au plus 100 millions de dollars, ou au plus 500 millions de dollars, mais il est assez improbable qu'elle coûte 50 millions de dollars ou un milliard de dollars.

Un calcul direct par un procédé nommé extrapolation method mené en mai 2014 sur la base  (1) du coût des circuits ASIC spécialisés nécessaires, et (2) du taux de hash au moment du calcul a conduit Arwind Narayanan, Andrew Kim, Daryl Sng et Soyeon Yu a évaluer le coût de l'attaque 51% à 145 millions de dollars (Ici). C'est assez inférieur à notre calcul mais pas vraiment incompatible.

D'autres évaluations mentionnées dans le même document donnent 100 millions de dollars, 700 millions de dollars, 800 millions de dollars. L'imprécision n'est pas très grave ici, car ce qui est important est la conclusion que même les sommes les plus élevées restent à la portée d'un grand nombre d'acteurs. Notre méthode, un peu abstraite, possède l'avantage d'être applicable à un grand nombre de blockchains, et surtout de montrer que ce coût assez peu élevé est inhérent aux principes de ce type de blockchains.

En effet, c'est l'égalité entre la somme que les mineurs peuvent gagner sur une durée de l'ordre d'une année qui fixe le coût de l'attaque 51%, or cette somme ne sera jamais beaucoup plus élevée qu'elle ne l'est aujourd'hui. Elle risque même de diminuer sensiblement dans le cas du bitcoin, puisque le protocole prévoit que la rémunération des mineurs en bitcoins est divisée par deux tous les quatre ans.

Une autre étude très intéressante de juillet 2014 comparant le coût de divers systèmes monétaires (or, monnaie papier, système bancaire, bitcoin, etc.) évalue la durée de vie utile des matériels de minage à environ 6 mois, et en prenant en compte assez soigneusement tous les éléments de coût annuel du minage évalue à 785 millions de dollars le coût annuel du minage. Ces chiffres (à cause de la période de 6 mois considérée au lieu d'un an dans notre calcul) donnent donc 400 millions de dollars comme majorant d'une attaque 51%, ce qui est très proche de notre calcul. Voir ici ou .

Remarque. La méthode d'évaluation du coût d'une attaque 51% dénommée equilibrium method considère que ce coût est égal à 51% de la valeur des devises qui restent à émettre après l'attaque (ici ou ici). Cette méthode appliquée au bitcoin conduit à une évaluation assez supérieure à la nôtre (environ un milliard de dollars). Nous en contestons le principe, car l'idée de cette méthode est qu'une fois qu'on aura les 51% de puissance on pourra accéder à 51% des devises qui restent à émettre, et donc que ce qu'on perd en renonçant à récolter ces devises qui seront émises est ce que coûte l'attaque. L'erreur est que l'investissement réalisé par celui qui mène l'attaque 51%, même s'il le voulait, ne lui permettrait pas sur le long terme de capter 51% des ce qui va être émis. Tout dépend en effet de la vitesse d'obsolescence du matériel qu'il a acheté et de l'augmentation de la puissance de minage des autres mineurs qui fera que très vite l'attaquant ne disposera plus des 51% de la puissance de minage (la puissance des mineurs s'est accrue à grande vitesse dans le cas du bitcoin). Il semble clair que la valeur de ce qui va être émis ne détermine pas précisément ce que l'attaquant pourrait gagner en minant avec son matériel plutôt que de l'utiliser à faire tomber la blockchain. De plus ce qu'il pourrait gagner ne signifie probablement rien non plus concernant le coût de l'attaque puisque l'attaquant cherche seulement à détruire la blockchain. Ce que l'attaquant doit dépenser dépend de l'état présent du minage (coût des matériels lui donnant autant de puissance que celle utilisée à l'instant), pas de ce qu'il va devenir, qui peut varier selon les événements futurs. Pour se persuader définitivement que la méthode équilibrium est absurde dans son principe, il suffit d'imaginer une blockchain qui continuerait d'émettre à la même vitesse indéfiniment des devises (le taux d'émission tendrait quand même vers zéro et donc l'inflation provoquée aussi). D'après la méthode équilibrium, le coût de l'attaque 51% d'une telle blockchain serait infini !

Contenu en calcul

Remarquons que la dépense de minage dans le cas du bitcoin est faite pour mener des preuves de travail. C'est ce « contenu en calcul » de la blockchain qui rend difficile de s'en emparer en imitant la vraie pour en créer une susceptible qui lui serait substituée. Même si ces calculs paraissent absurdes, il n'est pas facile et peut-être impossible, de concevoir un modèle de blockchain qui ne conduise pas à un gâchis équivalent (Courtois discute cette l'idée ici) : il faut bien que l'imitation d'une blockchain soit coûteuse, et donc produire la vraie doit coûter aussi quelque chose.

L'analyse présentée permet maintenant de formuler deux conclusions.

Conclusion sur les risques d'attaque Goldfinger

Les Etats et même les grosses entreprises auront toujours le pouvoir de faire tomber les blockchains du type bitcoin dans le cadre d'attaques Goldfinger, cela même à long terme. En effet, il n'est pas concevable que la valeur de ce que distribuera une blockchain aux mineurs chaque année soit vraiment très élevée, or c'est cette valeur qui détermine (en fait majore) le coût d'une attaque Goldfinger. Ni (a) la distribution directe de devises aux mineurs chanceux chaque année, ni (b) les frais versés par les utilisateurs aux mineurs chaque année, ni (c) les variations positives de la valeur de la devise (dues à une éventuelle diminution totale des devises, ou à évolution de la valeur liées aux variations des cours) ne peuvent —même cumulées— égaler le pouvoir d'intervention d'un État.

Ce point peut être discuté et doit l'être, mais les États ont des budgets de fonctionnement très grands et les égaler avec (a), (b) ou (c) apparaît impossible. Le budget annuel de l'État Français est par exemple d'environ 400 milliards d'euros (pour 2014), la valeur totale des bitcoins est inférieure à 3 milliards d'euros environ (au 13 janvier 2015) et la rémunération annuelle des mineurs est aujourd'hui inférieure à 300 millions d'euros : l'Etat français dispose donc de plus de 1000 fois la richesse suffisante pour faire tomber le bitcoin !

Le budget annuel de la NSA est en ordre de grandeur de 45 milliards de dollars (le budget prévu 2015 des agences américaines dépasse 45 milliards de dollars). C'est encore plus de 100 fois ce qui suffit pour mener une attaque Goldfinger.

Conclusion sur la valeur déposée dans une blockchain

L'argent « brûlé » pour mettre du calcul dans une blockchain et la rendre infalsifiable et inimitable est nécessairement important — car la robustesse à une attaque Goldfinger en dépend — tout en étant toujours insuffisant pour la rendre résistante à une attaque menée par un État ou un organisme  puissant.

Il y a donc dans la conception même de ce type de blockchain une sorte de faille.

- Il faudrait déposer en calcul dans la blockchain une valeur bien supérieure à ce qui est déposé aujourd'hui, pour éviter que les organismes puissants puissent s'emparer de la blockchain et la faire s'effondrer.

- Or, il n'est pas concevable de mettre dans la blockchain une assez grosse quantité de calcul qui en assure la robustesse, car ce sont les mineurs qui en payent le coût par les dépenses qu'ils engagent.

Il se peut qu'aucun État ou organisme n'organise une attaque Goldfinger parce que cela détruirait une importante richesse économique (toute celle engagée dans les entreprises créées autour du bitcoin) ce qui serait considéré comme scandaleux, ou parce cela serait contraire à l'intérêt commun (qui est peut-être qu'il existe des monnaies cryptographiques, et des blockchains variées). C'est une question à débattre, mais il faut le faire sans oublier — c'est essentiel pour l'avenir de toutes les blockchains — que faire s'écrouler une blockchain de type bitcoin n'est pas et ne sera jamais cher à l'échelle d'un État.

Pour en savoir plus :


6 commentaires pour “L’attaque Goldfinger d’une blockchain”

  1. alegui Répondre | Permalink

    Je suis surpris par la méthode de calcul : il y a quelques jours je pensais à l'attaque des 51% et ma méthode de calcul serait plutôt la suivante :
    -la puissance de calcul totale de la blockchain est connue, celle d'un ASIC spécialisé aussi
    -à partir de là un gouvernement, une société ou un milliardaire peut mettre les moyens pour soit acheter des ASIC en masse soit racheter une société qui en produit, et faire graver ces ASIC par un des nombreux fondeurs que le monde possède (le volume est suffisamment grand pour ça)
    -il ne lui reste plus qu'à les utiliser pour dépasser les 50% de la blockchain
    -bien sûr, les ASIC peuvent être remplacés (peut-être partiellement)par des instances amazon EC2 (ou similaires), le coût de fabrication n'est plus là mais par contre les CPU et GPU sont tellement moins performants qu'il faut pas mal jouer des coudes pour avoir assez de puissance de calcul à un seul moment
    Sinon je pense pour ma part que 300 ou 500 millions de $ sont crédibles pour une telle attaque. Par contre ce qui est probable c'est qu'une telle attaque nécessiterait des moyens qui seraient difficiles à cacher

    • Jean-Paul Delahaye Répondre | Permalink

      Cette méthode de calcul est l' «extrapolation method» dont je parle et qui donnait 145 millions de dollars il y a quelques mois.
      La méthode que je propose est moins précise, mais plus générale et surtout elle permet de comprendre pourquoi l'attaque 51% ne sera jamais très chère... ce qui est peut-être très ennuyeux sur le long terme.

  2. Adrian Répondre | Permalink

    Par ailleurs, pour réaliser ce type d'attaque, il faudrait également trouver un fournisseur capable de produire assez de processeur en un temps limité... Ce qui semble fort peu probable d'une part et assez gros pour être vu...
    Très bons articles en tout cas.

    • bod Répondre | Permalink

      Très bons articles, merci pour ces informations en Well French 😉

      @Adrian : tape ASIC dans Google et tu verras qu'il est très facile d'en trouver à l'achat et sur différent site ce qui annule tes 2 hypothèses "il faudrait également trouver un fournisseur capable de produire assez de processeur en un temps limité" et "assez gros pour être vu"

Publier un commentaire