De quoi est fait le Bitcoin ?


De quoi est fait le bitcoin ?

(Ce texte est une version mise à jour et légèrement adaptée du texte de ma contribution à la journée « Bitcoin Pluribus Impar » organisée à l'Ecole Normale Supérieure de la rue d'Ulm par Le Cercle du Coin et Jacques Favier, le mardi 30 mai 2017).

Bitcoin Pluribus Impar

 

De quoi est fait le bitcoin ?

Ma réponse sera simple : le bitcoin est fait de calculs.

Le bitcoin est comme l'or, mais la substance qui le concerne n'est pas un métal de notre monde physique, mais une entité abstraite : le calcul (dont je pense qu'elle est aussi une entité physique, mais c'est un autre problème).

Une pièce d'or a une valeur commune acceptée pour plusieurs raisons à la fois, dont certaines sont les mêmes que celles qui expliquent qu'un billet en euros ou en dollars — des monnaies fiduciaires — a une valeur commune acceptée.

Il est cependant certain qu'une pièce d'or a une valeur commune acceptée car elle contient de l'or, et qu'il n'y a qu'une quantité bornée d'or extrait aujourd'hui, et aussi car il n'y a qu'une quantité bornée d'or au total sur terre. Pour ce qui en est de l'univers, disons que cela ne nous occupera pas pour l'instant.

Concernant le bitcoin, la situation est assez semblable : on ne peut mener en un temps donné qu'un nombre limité de calculs sur terre aujourd'hui. Il en sera toujours ainsi quels que soient les progrès de la technologie... et que le calcul devienne quantique ou qu'il ne le devienne pas.

Justifions ces affirmations et tentons de les rendre plus précises tout en repérant ce qui, quand même, change entre une pièce d'or et un bitcoin.

(A) Commençons par admettre — ce qui ne va pas de soi et devra être discuté plus loin — que les primitives cryptographiques utilisées par le bitcoin sont infiniment solides et donc, plus précisément, qu'il n'y aura jamais aucun moyen de casser le système de signature du protocole ( Elliptic Curve Digital Signature Algorithm : ECDSA), ou les fonctions de hachage utilisées par le bitcoin (SHA256 and RIPEMD160)).

(B) Il résulte de cette hypothèse que chaque page qui s'inscrit dans la blockchain du bitcoin ne peut l'être qu'en opérant une quantité de calcul impressionnante et équivalente à 600 fois 10x1018 calculs de SHA256 (voir par exemple ici )

Le facteur 10x1018 indique la puissance instantanée du réseau bitcoin mesurée en «hash»

Le 600 provient du nombre de secondes en 10 minutes.

Je suis en train ici d'évoquer cette puissance du réseau qui entraîne une dépense peu écologique d'électricité, objet de critiques. Cette puissance du réseau est colossale.

La règle est assez simple : plus vous disposez d'une part importante de cette puissance, plus vous gagnez de bitcoins (12,5 toutes les 10 minutes, plus les commissions). Statistiquement vos gains sont proportionnels à votre puissance de calcul de SHA256.

Vous effectuez du calcul qui se met dans la blockchain ce qui en assure la solidité. En échange vous recevez des bitcoins.

(C) Dans la blockchain s'inscrit donc un contenu en calcul.

Pour casser le protocole (si on ne sait pas casser les primitives, ce que j'ai admis) il faut pour s'emparer de la blockchain (pour par exemple faire des doubles dépenses à son profit, ou simplement lui faire perdre toute valeur — attaque Goldfinger) pouvoir disposer de ce contenu en calcul.

(D) On parle d'attaques 51%. Satoshi Nakamoto savait dès le début en 2008 qu'elles étaient envisageables. Mais épargnons-nous les détails et disons simplement que :

- La distribution des bitcoins entre les comptes qui en détiennent est aussi solide que la localisation des kilos et grammes d'or en différents lieux sur terre, localisation qui en fixe les détenteurs.

- Tant que la blockchain tiens, c'est-à-dire tant qu'on ne peut pas en fabriquer une fausse et la substituer à la vraie, la distribution des bitcoins entre comptes tient.

- Pour fabriquer une fausse blockchain sous nos hypothèses, la seule méthode est de calculer autant (au moins pour le passé récent) que ce que les mineurs collectivement ont calculé pour fabriquer les dernières pages de la vraie blockchain.

- Solidifié dans la blockchain, il y a un calcul. Et c'est lui qui, pour l'essentiel, rend les comptes (la distribution des bitcoins entre les comptes) robustes, et donc produit cette confiance que les utilisateurs ont dans cette distribution des bitcoins entre les comptes.

(E) Si l'on s'interroge sur cette idée de contenu en calcul et qu'on souhaite la fonder mathématiquement — donc théoriquement de manière sérieuse —, il faut faire appel à un concept de la théorie de la complexité de Kolmogorov.

Cette théorie n'est jamais évoquée quand on parle des monnaies cryptographiques et pourtant, c'est certain, c'est elle qui est la clef qu'il faut activer pour comprendre le petit miracle de ce qu'on appelle parfois l'or numérique, mais dont pourtant on ne sait pas identifier le métal.

(F) Evoquons rapidement cette notion mathématique de contenu en calcul provenant de la théorie de la complexité de Kolmogorov.

- Chacun le sait aujourd'hui, la complexité de Kolmogorov d'un objet numérique (une image, un texte, une musique enregistrée, etc.) est

la taille du plus petit programme qui l'engendre.

(On s'est fixé un langage, et heureusement, on montre qu'en changer ne change pas grand chose aux longueurs des programmes, et donc que la théorie est robuste).

- Cette notion mesure un contenu en information, on dit aussi un contenu incompressible en information.

Ce n'est pas ce dont nous avons besoin ici... mais on s'en approche.

(G) Heureusement Charles Bennett (vous savez... l'un des inventeurs de la cryptographique quantique) s'est inquiété de cette inadéquation de la complexité de Kolmogorov comme mesure de complexité. Il est en effet bien évident que la complexité dont parlent les biologistes quand ils évoquent la complexité d'un être vivant et dont chacun de nous parle en s'extasiant devant de complexité d'une machine (« les ordinateurs d'aujourd'hui sont plus complexes que la machine de Babbage »), n'est pas la complexité de Kolmogorov qui atteint son maximum avec l'aléatoire.

- Charles Bennett a proposé en 1988 la notion de profondeur logique (aujourd'hui on dit profondeur logique de Bennett voir aussi ici ou ici ou ici)

- C'est (en première approximation) le temps de calcul de ce programme minimal (dont la longueur est la complexité de Kolmogorov).

Ce temps de calcul est faible pour un objet simple (mille zéros), mais aussi pour un objet aléatoire, alors que la complexité de Kolmogorov est, elle, maximale pour un objet aléatoire (par exemple mille résultats d'un tirage non biaisé à pile ou face).

Ce temps de calcul est une mesure robuste à la fois de la complexité au sens de richesse en structures et de contenu en calcul.

(H) Pour appuyer sa proposition, Bennett démontre par exemple le remarquable résultat qu'il dénomme « loi de croissance lente » :

« Dans un dispositif (un micro-univers si vous préférez) qui évolue de manière déterministe, la profondeur logique ne peut s'accroître que lentement, et il en va de même à l'exception de cas ayant une probabilité infinitésimale dans un dispositif régi par des lois probabilistes. »

L'affirmation « pas de génération spontanée » que Pasteur s'appliqua à démontrer est un cas particulier de cette loi de croissance lente.

Qu'Aristote ait pu croire en l'existence de générations spontanées des êtres vivants, donc à partir de rien, nous semble aujourd'hui invraisemblable. Il n'avait semble-t-il pas perçu cette loi de croissance lente qui affirme simplement : la complexité en structure, le contenu en calcul d'un objet, ne peut croître que lentement.

La propriété ne semble pas surprenante pour une notion de contenu en calcul (ou de richesse en structures), il est remarquable cependant que Bennett ait pu prouver cette loi pour sa profondeur logique. Notons bien que cette loi n'est pas vraie pour la complexité de Kolmogorov qui elle peut croître brusquement (on jette par terre un verre en cristal).

Ce théorème valide, au moins un peu, la définition de Bennett. Il rend plausible que le concept mathématique qu'il propose soit la mesure mathématique de contenu en calcul ou de richesse structurale. Sur ce sujet voir ici.

(I) Et bien ce que contient la blockchain du bitcoin, ce métal dont elle est faite, c'est cette profondeur logique.

Le bitcoin tient parce que la profondeur logique de sa blockchain est grande et s'accroît au fur et à mesure qu'on calcule des SHA256, ... qui peut-être ne sont donc pas des calculs absurdes brulant à la folie de l'électricité.

Moyennant les hypothèses de robustesses des primitives cryptographiques utilisées par le protocole bitcoin, la solidité du protocole se pèse en pesant son contenu en calcul, qu'on mesure par la profondeur logique de la blockchain, profondeur qui s'accroît de dix minutes en dix minutes.

Notons que le critère de choix entre plusieurs blockchains en cas de "fork" est justement basé sur ce contenu en SHA256.Nakamoto et ceux qui ont écrit les programmes pour faire fonctionner le réseau pair à pair du bitcoin ont eu (même sans la théoriser) une compréhension sans doute assez claire de ce que j'explique ici en terme de profondeur logique de Bennett.

Oui, le bitcoin repose sur quelque chose de matériel ou de quasi-matériel : du contenu en calcul.

(J) Du point de vue de l'histoire de l'humanité, c'est la première fois je crois qu'un objet et qu'un système (qui "vaut" aujourd'hui plus de 95 milliards de dollars (17 octobre 2017) s'appuie sur l'impossibilité qu'il y a à mener à moindre coût un certain ensemble volumineux de calculs.

(K) Question :

« peut-il exister d'autres monnaies cryptographiques dont la robustesse ne s'appuie pas sur un contenu en calcul ? ».

Peut-être (c'est le problème des algorithmes de consensus), mais sans doute alors faudra-t-il introduire soit une autorité, soit des liens (partiels) de confiances supposés entre certains acteurs (Ripple). La question est plus que délicate et n'est pas vraiment résolue aujourd'hui.

(L) Affinons la comparaison entre l'or et le bitcoin.

  • L1

La fragilité des primitives cryptographiques utilisées (on ne peut la négliger) est l'équivalent de la possibilité de fabriquer de l'or à partir d'autres atomes par fusion nucléaire (comme la nature l'a fait).

C'est possible, mais aujourd'hui on ne sait pas le faire à moindre coût. Finalement, c'est comme si c'était impossible.

Il semble, dans le cas du bitcoin, que cette fragilité soit plus grande : il pourrait être plus facile de casser le SHA256, que de fabriquer de l'or à partir d'atomes de plomb ou autres.

En ce sens, la matérialité de l'or et de l'acte d'en posséder (liée à sa localisation physique) semble plus forte que la matérialité (par le calcul, les contenus en calcul et la détention de clés) du bitcoin.

Mais est-ce si certain ? Est-ce qu'il ne se pourrait pas qu'on conçoive un jour une fonction de hachage aussi difficile à inverser qu'il est difficile de fabriquer des atomes d'or à partir du plomb ?

C'est une question de théorie du calcul.

  • L2

Il y a d'autres fragilités pour le bitcoin.

Celles des bugs sont bien sûr à prendre en compte.

Celles des pannes graves du système (je veux dire du réseau) aussi.

Celles aussi sociales : le bitcoin par incapacité d'une certaine communauté à s'entendre pour décider d'augmenter la taille des pages ajoutées toutes les 10 minutes, n'est-elle pas en train de faire reculer le bitcoin ?

La réponse est OUI :

(a) il y a deux ans la capitalisation des bitcoins émis représentait 90% de la capitalisation de toutes les monnaies cryptographiques ; aujourd'hui c'est environ 50 % ;

(b) les commissions pour une transaction élémentaire atteignent le dollar, ce qui rend impossible l'utilisation du bitcoin pour de petits achats : cela n'a plus de sens aujourd'hui d'acheter une baguette avec le bitcoin.

  • L3

Parmi les différences entre l'or et le bitcoin (mais je n'apprends rien à personne) il y en une en sa faveur : il circule plus facilement.

Peut-être d'ailleurs que cela se retournera contre lui.

Si les rançongiciel (ransomware) se font payer en bitcoins, c'est bien à cause de cette fluidité du bitcoin qui peut passer en quelques minutes de Tokyo à Melbourne ou de Paris à Toronto tout en restant anonyme comme l'est celui qui détient une pièce d'or.

Ne faut-il pas craindre (ou souhaiter ?) qu'un jour cela énerve les autorités politiques, policières ou judiciaires, qui alors engageraient une lutte à mort contre le bitcoin et les monnaies cryptographiques du même type ?

Je crois personnellement que oui : c'est à craindre.

J'arrive à ma conclusion.

Oui, il y a un sens sérieux à dire que le bitcoin est de l'or numérique.

Oui, il y a une sorte de métal dans la blockchain qui fige la distribution des bitcoins entre comptes comme la distribution des grammes d'or est fixée par leur localisation spatiale, qui elle-même fixe qui détient quelle quantité de métal.

Mais je l'ai dit aussi, le bitcoin est autre chose que de l'or.

Il est computationnel et informationnel.

Il correspond à un nouvel état du monde dans lequel les réseaux sont aussi importants que l'oxygène de l'air ou les minerais cachés sous terre.

Sans ces réseaux le bitcoin n'existe plus (mais sans ces réseaux notre monde n'existe plus non plus : donc pas de craintes de ce côté !).

Nous ne savons où va le bitcoin, nous avons de mal encore à savoir ce qu'il est. Il est vieux et nouveau à la fois. C'est passionnant !

 

 

Publier un commentaire