Derrière le bitcoin, il y a le concept de blockchain, registre public et inviolable qui contient l’intégralité des transactions. Une blockchain peut avoir beaucoup d’autres applications que l’enregistrement de transactions bitcoin. On peut y enregistrer, non seulement une transaction financière, mais aussi un diplôme, la description d’une propriété immobilière, des données d’état civil, un contrat simple, un pari, des données médicales, des listes électorales, etc. En fait les applications potentielles de la blockchain sont innombrables. En résumé, la blockchain peut remplacer le « tiers de confiance », rôle que jouent beaucoup d’institutions dans la société moderne. Banques et institutions financières multiplient donc les annonces de projets sur la « blockchain ». Mais qu’est-ce exactement qu’une blockchain ? Pour répondre à ces questions, nous allons examiner de près la mère de toutes les blockchains, celle du bitcoin, qui fonctionne depuis près d’une dizaine d’années.

Comment se passe une transaction bitcoin ? Imaginons qu’Alice possède trois bitcoins, et qu’elle souhaite en donner deux à Bernard. Il lui en restera un. Alice écrit un message qui dit qu’elle a trois bitcoins avant la transaction, et que, après, elle n’en aura plus qu’un et Bernard en aura deux. Alice introduit cette transaction dans le réseau, qui l’authentifie grâce à un système de cryptographie et va l’inscrire dans la blockchain La blockchain est un grand registre où toutes les transactions sont écrites dans l’ordre où elles arrivent. Ce registre est public. Il a démarré il y a à peu près dix ans, quand le bitcoin a été lancé. Il n’y a pas d’autre tenue de compte. Pour valider la transaction, celle où Alice donne à Bernard deux de ses trois bitcoins, le réseau va aller remonter en arrière dans la blockchain jusqu’à trouver la transaction par laquelle elle a obtenu ces trois bitcoins. S’il ne trouve rien, la transaction est impossible : Alice ne possède pas ces trois bitcoins. S’il la trouve, il sait qu’elle possède bien ces bitcoins, il valide la nouvelle transaction et peut l’inscrire dans la blockchain.

La clé de la blockchain : lempreinte

À ce stade, toute une série de questions viennent à l’esprit : comment est assurée la sécurité du système ? Comment faire pour qu’un « petit malin » n’aille pas introduire dans la blockchain une transaction fictive ? Comment faire pour que le même bitcoin ne soit pas dépensé deux fois dans deux parties du réseau ? Nous allons essayer d’expliquer le mécanisme qui assure cela.

Il y a une technique mathématique très classique qui joue un rôle essentiel dans le système Bitcoin. Il s’agit de l’empreinte. C’est un algorithme mathématique qui, à partir d’une information quelconque, un fichier, un document, une image, calcule son empreinte qui est un nombre de longueur fixe. L’empreinte a plusieurs propriétés intéressantes. D’abord c’est toujours la même : on calcule trois fois l’empreinte d’un fichier, cela donnera trois fois le même résultat. Ensuite, si on modifie, aussi peu que ce soit le fichier d’entrée, l’empreinte sera complètement différente. Par exemple, on calcule l’empreinte d’un livre de mille pages, puis on ajoute une virgule et on recalcule. L’empreinte du document modifié ne ressemblera pas du tout à la première empreinte. Dernière propriété : l’empreinte est un nombre qui apparaît comme complètement tiré au hasard. Tout cela fait que si on connaît l’empreinte, on n’a aucun moyen de reconstituer ou même d’estimer approximativement le fichier qui a servi à la calculer. On ne peut pas non plus fabriquer un fichier dont l’empreinte est un nombre donné.

Cette technique est très utilisée en informatique pour vérifier l’intégrité d’un fichier. Elle est aussi appelée hachage car elle consiste à découper en petits morceaux le fichier dont on veut prendre l’empreinte et à appliquer sur les morceaux des calculs mathématiques compliqués.

Nous sommes maintenant prêts à voir comment une transaction est inscrite dans la blockchain en sécurité. La blockchain se compose de pages, appelés blocs. Il y a un nouveau bloc toutes les dix minutes. Comment sont écrits les blocs ?

Un réseau de pair à pair : les mineurs

Le réseau Bitcoin se compose d’un certain nombre de nœuds qui interagissent ensemble. Tous les nœuds sont équivalents. Il s’agit de ce qu’on appelle, en informatique, un réseau de pair à pair. Actuellement, il y a de l’ordre de 6 000 nœuds. Chaque nœud possède une copie de la blockchain. Elle contient donc toutes les transactions qui ont eu lieu depuis l’origine. La blockchain occupe actuellement un volume de l’ordre de 150 Gigaoctets. C’est un volume conséquent, mais encore gérable. Les nœuds s’appellent des mineurs. En effet lorsqu’une transaction est émise par un utilisateur, elle est reçue par un mineur, qui l’envoie aux mineurs voisins. Chaque mineur écrit une liste d’un certain nombre de transactions appelée bloc. Toutes les dix minutes, chaque mineur essaie de clore son bloc et de le faire confirmer par le réseau. Sur le bloc, il écrit plusieurs éléments : la liste des transactions à confirmer et ensuite l’empreinte du bloc précédent, c’est l’idée de chaîne. Il introduit aussi dans le bloc une transaction très particulière : celle qui lui attribue une récompense en bitcoins s’il valide le bloc. Actuellement cette récompense est de 12,5 Bitcoin (valant à peu près 80 000,00 € en mai 2018). Il introduit enfin dans le bloc aussi un nombre choisi arbitrairement qu’on appelle le nonce. Le mineur calcule l’empreinte de ce bloc, mais pour que le bloc soit validé, il faut que l’empreinte vérifie une certaine condition : elle doit être inférieure à un nombre donné. Par exemple, on peut imposer que l’empreinte commence par trois zéros, c’est-à-dire soit inférieure à 0,001. Comme on a vu qu’il s’agissait de nombres quasi tirés au hasard, la probabilité de tomber sur trois zéros initiaux sera de un pour mille. Si ceci « ne marche pas », on change le nonce (le nombre choisi arbitrairement), et on recommence… Tous les nœuds font le même travail et le premier qui a trouvé un bloc vérifiant la condition valide ce bloc, et donc, gagne la récompense. Dans notre exemple, il faudra faire de l’ordre de mille tentatives pour avoir une chance de gagner. C’est donc beaucoup de calcul. C’est comme cela que les bitcoins sont fabriqués. Pour chaque nouveau bloc validé, 12,5 bitcoins sont émis et s’ajoutent au total de tous les bitcoins en circulation. Les nœuds du réseau sont ainsi appelés des « mineurs » par analogie avec l’or extrait dans des mines.

Que se passe-t-il si deux mineurs valident un bloc simultanément ou en deux points du réseau qui communiquent mal. Tous les nœuds qui seront confrontés à deux versions du même bloc choisiront la plus longue et élimineront la plus courte.

Pour qu’une transaction, et donc le bloc qui la contient soit confirmée, il faut être raisonnablement sûr qu’une autre version du même bloc ne traîne pas encore dans le réseau. C’est pourquoi, on considère qu’une transaction est confirmée au bout de cinq ou six blocs, c’est-à-dire au bout d’une heure (on rappelle qu’il y a un nouveau bloc toutes les dix minutes.)

La preuve de travail : sûre, mais gourmande en énergie

Que se passe-t-il si quelqu’un essaie de modifier frauduleusement un des blocs précédents : si on modifie un bloc, cela modifie son empreinte. Comme l’empreinte est donnée sur le bloc suivant, Il faut recalculer l’empreinte du bloc suivant, et pour que ce bloc soit valable, il faudra se relancer dans les calculs pour que le bloc suivant soit validé, et ainsi, de proche en proche jusqu’au bloc actuel. C’est quasiment infaisable car pendant ce temps-là, le réseau continue à fonctionner et de nouveaux blocs sont validés. Pour qu’un mineur malintentionné puisse falsifier la chaîne, il faudrait qu’il dispose d’une puissance de calcul supérieure à celle de l’ensemble du réseau pour pouvoir le prendre de vitesse. C’est ce qu’on appelle une attaque des 51 %, pratiquement impossible à mener. Le fonctionnement de ce réseau demande donc une quantité de calcul considérable. À l’origine, il était possible de miner des bitcoin avec un simple ordinateur individuel, puis, avec le succès, la difficulté a augmenté, et les mineurs ont utilisé des ordinateurs de plus en plus puissants. Actuellement, ce sont des ordinateurs dont le processeur a été spécialement conçu pour la fonction de hachage qui calcule les empreintes. Ces processeurs tournent très vite, mais consomment beaucoup d’électricité.

C’est une des critiques faites souvent au bitcoin. Avec la hausse du cours, il est devenu de plus en plus lucratif de miner des bitcoins, d’où l’augmentation du nombre de mineurs, mais le système bitcoin fait que la difficulté du minage et donc la quantité de calcul nécessaire augmentent automatiquement. En effet, toutes les deux semaines, environ, le seuil qu’il faut atteindre pour que l’empreinte d’un bloc soit admise et que le bloc soit approuvé est réajusté pour que le temps de minage de chaque bloc soit d’environ dix minutes. Le système est donc automatiquement régulé, mais, la consommation électrique croit parallèlement à la valeur du bitcoin.

Le système que nous venons de décrire s’appelle « preuve de travail » ou proof of work, en abrégé POW. Il est coûteux en énergie ; chaque transaction validée représente, dans l’ensemble du réseau, une dépense de plusieurs kWh. Des systèmes alternatifs sont utilisés dans d’autres blockchains qui gèrent d’autres crypto-monnaies que le bitcoin ou toutes sortes de jetons. Il y a par exemple, le système « proof of stake » (POS) ou preuve d’enjeu. Pour pouvoir valider un block, le participant doit montrer qu’il a un fort intérêt au bon fonctionnement du système, par exemple en gelant les crypto-monnaies ou les jetons qu’il possède.

Sur ce sujet, il y a un foisonnement de projets nouveaux. Néanmoins le bitcoin et le système POW continuent à tenir le haut du pavé, principalement en raison de leur très grande robustesse. Le système existe depuis près de dix ans, et il n’a jamais été pris en défaut. Pourtant, ce ne sont pas les intentions ou même les tentatives de piratage qui ont manqué.

 

Cet article a été publié dans le numéro 361 (juillet-août 2018) de la revue finance&gestion.

Cet article a été publié sur Vox-Fi le 6 septembre 2018.