dimanche 5 décembre 2021

le bitcoin? Mais qu'est ce c'est au juste?


L'expression "monnaie sonnante et trébuchante", exprime bien l'idée que deux pièces de métal s'entrechoquent en tintant, mais aussi qu'on peut les peser avec un "trébuchet", sorte de balance d'orfèvre. Dans les deux cas, dureté et poids, ces qualités attachées à la pièce de monnaie nous rappellent son ancrage dans le réel. A l'opposé "numérique" évoque les mathématiques, l'abstraction qui permet de décrire le monde réel. ."Il (l'univers) est écrit dans une langue mathématique, et les caractères en sont les triangles, les cercles, et d'autres figures géométriques...", disait Galilée dans "Il saggiatore". Nous tenterons d'expliquer ce que le bitcoin  a de révolutionnaire dans l'univers de la monnaie numérique.

Le numérique c'est physique

 Certains sont tentés de penser que ce que l'on nomme "numérique", comme "passeport numérique" ou "signature numérique" ( et non "signature digitale" qui vient de l'anglais) signifie le contraire de "matériel" ou "physique". En effet un passeport  classique de papier ou une signature en bas de page, visibles et palpables, manifestent une matérialité  indiscutable. Mais si une signature numérique ne peut être touchée elle n'en est pas moins matérielle pour cela. Elle n'est pas de l'ordre de l'esprit, elle appartient bien au monde physique. Sa description se trouve sur un disque dur d'ordinateur, peut-être même sur plusieurs (plus exactement les données qui servent à apposer l'acte de signer). Quel rapport avec la monnaie?

 

La monnaie numérique existe déjà

 Il en va de même avec la notion de monnaie électronique ou numérique. La monnaie électronique n'est pas éthérée, elle est bien physique tout comme la signature évoquée plus haut.

Lorsque vous faites un virement bancaire d'un compte à l'autre, vous actionnez  à distance un programme qui va effectuer une soustraction sur un compte et une addition sur un autre compte. Ces comptes ne sont que des nombres en mémoire ( en fait des signaux électriques) ou sur des disques durs ( en fait des intensités magnétiques), mais ils sont bien réels. Dans ce virement à aucun moment il n' est question de monnaie sous forme de pièce métallique, de papier, d'or ou quoique ce soit d'autre.  La monnaie aujourd'hui, le plus souvent, n'est plus cachée dans les coffres des chambres fortes mais dans des baies de stockage. Elle est devenue monnaie électronique. Adieu pièces et billets infalsifiables qui portaient leur valeur inscrite sur leur support métallique ou de papier. Au lieu de payer une note de 9 euros avec un billet de 10 euros sur lesquels il fallait rendre la monnaie ( un euro) aujourd'hui on paye "sans contact" par une transaction bancaire du montant exact de l'achat, on échange des données numériques via le réseau. De métallique, la monnaie ( en l’occurrence l'euro) devient énergie électrique ou magnétique. Ce qui fait qu'un salaire qui rémunère une dépense d'énergie quelle qu'elle soit est représenté également sous forme d'énergie. L'énergie est rémunérée par une énergie, il y a tout simplement conversion d'une dépense calorique fournie par le travailleur vers une énergie électrique transmise dans le réseau qui représente le paiement de ce travail.


La valeur

Mais comment associer une valeur à un courant électrique ? Pour les monnaies actuelles c'est assez simple. Dans un ordinateur les courants sont associés à des nombres et nous pouvons associer ces nombres à des montants : un euros , mille euros, un million d'euros. C'est donc l'unité monétaire( ici l'euro ) qui porte la valeur de la monnaie. A l'intérieur de la zone Euro que vaut un euro ? Il est impossible de répondre à cette question qui n'a pas de sens, il est juste possible de dire ce qu'on peut acheter avec un ou plusieurs euros, autrement dit il a une valeur d'échange. Avec un euro je peux acheter une baguette, avec vingt mille euros une voiture. Tout est donc matière de convention et de confiance. Si les gens se mettent à penser qu'un euro ne vaut rien, ou en tout cas beaucoup moins, il faudra beaucoup plus d'euros pour acheter une baguette, par exemple dix ou cent. La valeur de conversion internationale de l'euro dans d'autres monnaies constitue un tout autre problème, la question évoquée ici est celle de la confiance dans la valeur intrinsèque d'une monnaie. D'ailleurs le poids de la pièce ou la qualité graphique du billet n'ont rien à voir avec leur valeur d'échange. Leur valeur, en tant que monnaie, est simplement déterminée par le chiffre inscrit dessus qui repose sur l'étalon "euro". La convention  consistant à inscrire le nombre d'unité d'une monnaie sur un support permet donc de changer de support et de se détacher d'une substance visible pour aller vers un support "énergie", électrique ou magnétique, sans modifier le concept qui donne sa valeur à la monnaie: la confiance dans l'unité monétaire utilisée. La pièce ou le billet sont une méthode pratique pour prouver qu'une fois cédés au vendeur, celui-ci accroît le nombre d'euros en sa possession tandis que l'acheteur prouve par la même qu'il en possède moins. Le raisonnement ne tient que si le nombre d'euros en circulation est fixe, tout du moins bien connu. Si chacun pouvait frapper la monnaie sa valeur déclinerait rapidement jusqu'à zéro. 

Retenons donc  que la valeur de la monnaie se résume à la confiance qu'on lui porte, qu'il est nécessaire de posséder un témoignage fiable des transactions d'achat et de vente, enfin que le nombre d'unités doit être contrôlé. Si les transactions associées à une monnaie ont bien des traces physiques, sa valeur, elle, appartient au domaine de l'esprit et au consensus qui existe entre ses usagers. Ces concepts démontrent qu'une monnaie peut faire varier son support, sa représentation physique, tout en gardant son rôle de valeur universelle d'échange.




Le tiers de confiance

Remarquez qu'un virement ( d'un salaire, d'un achat) n'est pas effectué directement chez le créancier mais par l'intermédiaire d'une banque. Elle joue le rôle de "tiers de confiance". Elle s'interpose entre vous et le destinataire du paiement pour garantir la transaction. Que se passerait-il s'il n'y avait pas de tiers de confiance ? Imaginons que vous ayez, vous et votre créancier sur vos ordinateurs respectif un programme qui permet d'effectuer une transaction directe entre vous et lui. Votre programme dit au programme distant "je vous paie 9 euros", et le sien reçoit cette information . Qu'est ce qui lui prouverait 1) que vous avez bien cette somme 2) que votre compte a été débité 3) que son propre compte a été crédité  de la même somme? Ces comptes, qui en témoignerait, où seraient ils ? Et qu'est ce qui vous empêcherait de dépenser les mêmes 9 euros en direction d'un autre achat si on ne peut pas apporter la preuve que ces 9 euros on été débités de votre compte?

Il y a une solution simple à ce dilemme: envisager que toutes les transactions d'achat/vente, de tous les individus ou organismes de la planète, soient mémorisées dans une base de donnée globale unique, infalsifiable, dans laquelle tout le monde a confiance. Ainsi pour chaque nouvelle transaction qui apparaîtrait dans le monde, des programmes ad-hoc pourraient vérifier avant de valider la nouvelle transaction de paiement que vous possédez bien cette somme à partir de l'historique de vos transaction depuis le début de vos dépenses. Puis en mémorisant la nouvelle transaction qui crédite le portefeuille de votre créancier et débite le votre. C'est précisément l'idée qu'on eue les fondateur d'une nouvelle monnaie appelée bitcoin ( qui signifie en gros "Pièce numérique").

La blockchain

Dans un monde où les transactions d'une nouvelle monnaie s’effectueraient sans banque, directement de débiteurs à créancier ( en pair à pair ou en anglais peer to peer), il faudrait donc pouvoir gérer et mémoriser une immense liste qui témoigne de tout ce est arrivé depuis la naissance d'une monnaie. En somme une histoire mondiale des transactions! Drôle d'idée, mais qui fonctionne en pratique. Cette liste, en ce qui concerne la monnaie bitcoin, est constituée des blocs des transactions du monde entier, et chaque transaction reçoit la signature numérique de l'émetteur ( le payeur). Une fois signées numériquement par leur auteur ( un peu comme un chèque)  les données  de la transaction sont infalsifiables ( contrairement au chèque). Personne ne peut signer à votre place puisque vous possédez un mot de passe qui protège votre identité numérique ( un certificat et une clef privée). Ce grand registre des transactions mondiales est partagé sur de nombreux ordinateurs qui ont donc tous la même information, ce qui rend impossible toute modification.  Il faut donc imaginer un réseau d'ordinateurs conversant entre eux qui, dès qu'ils reçoivent une nouvelle transaction, la valident et la transmettent à leurs collègues. Ces transactions sont packagées par millier dans des blocs. Leur ensemble représente la dissémination actuelles des bitcoins chez leur propriétaires. Le nombre total de bitcoins est limité par programme et ne dépassera jamais 21 millions.

Mais qu'est ce qui empêcherait quelqu'un de mal intentionné d'insérer de fausses transactions dans une liste?  Chaque nouveau bloc de transaction incorpore dans ses données une empreinte de la transaction précédente. Explicitons ce fonctionnement avec un exemple. Imaginons une carte d'identité laquelle nécessiterait pour sa validité, sous forme de microfilm, une  photo de la carte d'identité précédente périmée. Mais la précédente contenait déjà une photo de la précédente moins un. C'est un peu le système de "la vache qui rit", il y a alors une photo dans la photo dans la photo etc. En ce qui concerne la chaîne de blocs de transaction ( la "blockchain") ce ne sont pas des photos du bloc précédent qui sont enregistrées mais un nombre appelé "hash". 

La vérification de la chaîne des blocs

Un hash ("hachage") est un nombre  résultat d'un calcul unique pour un ensemble de données, un peu comme une addition mais en plus compliqué. Il faut voir ça comme une empreinte numérique caractéristique, un résumé unique, un peu comme une photo d'identité. Vous pouvez "hacher" les caractères d'un livre entier, si vous modifiez un signe à la page quatre le "hash" recalculé sera modifié. Aucun autre livre "haché" n'aura la même empreinte.  Cette empreinte permet donc de vérifier numériquement après coup que le bloc précédent n'a pas été changé en comparant la valeur actuelle du hash à une valeur recalculée . Si tous les blocs sont vérifiés tour à tour cela permet de vérifier l'intégrité de toute la chaîne.

Mettons que la chaîne contient trois blocs: A, suivi de B, suivi de C et nous voulons ajouter D. C contient le hash de B et B contient le hash de A . Lors d'une nouvelle transaction il faut donc recalculer le hash de B, vérifier qu'il correspond bien à celui inscrit dans C. De même il faut calculer le hash de C et l'intégrer dans D. Nous voyons bien que si une infime donnée d'un bloc a été changée par un hacker le processus de vérification de chaque bloc de détectera. A la fin du processus nous pouvons ajouter à la chaîne la nouvelle transaction  D qui incorpore le hash de C. Nous avons ainsi garanti, par le chaînage des blocs sous forme de hachage, l'intégrité de la chaîne.

La double dépense et la validation des transactions

La chaîne garantit son intégrité sur chaque ordinateur dans ce modèle distribué, mais comment vérifier la validité d'une nouvelle transaction? Il est difficile de copier des pièces et des billets mais plus aisé de dupliquer un fichier informatique qui représente une transaction. Il faut donc se prémunir contre une duplication illicite (Pour cela chaque transaction est horodatée c'est à dire marquée avec l'heure exacte d'émission). Mais ils faut aussi éviter qu'un acheteur puisse dépenser plus que son solde de bitcoin.

Lorsque les ordinateurs du réseau reçoivent une transaction, ils bénéficient de 10mn pour valider la transaction et notifier le vendeur( qui attend au moins 6 confirmations différentes du réseau). Pour chaque nœud réceptionnaire, la validation consiste à vérifier la structure de la transaction, puis à calculer le "hash" du bloc précédent pour l'insérer dans la nouvelle transaction, ce qui est très coûteux en temps. Pourquoi cela ? Car il ne s'agit pas en vérité d'un simple hash mais d'un calcul auquel la spécification bitcoin adjoint des contraintes. 

La preuve de travail ( POW : proof of work)

Par exemple le nœud de vérification ( appelé "miner", métaphore d'aller creuser dans les blocs...) devra calculer un hash qui commence par quatre zéro. La seule manière de faire sera d'inclure dans ce calcul un index dans les données qui sera incrémenté à chaque essai infructueux jusqu'à respecter la contrainte prescrite des quatre zéros. Autrement dit cela représente un gros travail de calcul. Ce long calcul limité dans le temps, garantit une "preuve de travail" d'un ordinateur autrement dit une puissance de calcul. Il s'agit donc d'une sorte d'astuce qui garantit une puissance de calcul minimale pour valider un bloc de transaction. N'importe qui ne peut donc pas se faire passer pour un mineur authentique s'il n'a pas suffisamment de cpu's. Comme le réseau est distribué, plusieurs "miner" sont actifs en même temps pour valider le même bloc, le plus rapide sera rémunéré par des bitcoins ( ce qui constitue le seul moyen actuel de créer la monnaie) , et le vendeur sera notifié plusieurs fois de la validation de sa transaction ce qui lui permet de considéré qu'il a bien été payé.

Évidemment il est possible d'imaginer de faux "miner" dans le réseau qui collaborent pour truquer les résultats de la validation, mais le pari de la preuve de travail dans ce réseau distribué sera d'assumer qu'il y aura toujours plus de nœuds honnêtes ( totalisant plus de puissance de travail) que de nœuds malhonnêtes. Dans un processus de vote en cas de désaccord sur le résultat de la validation, ces nœuds honnêtes seront plus nombreux à refuser une transaction incohérente que les nœuds malhonnêtes qui la diffusent.  Cependant cela détermine une faiblesse pour le bitcoin:  celle d'être susceptible d'attaques désastreuses si 51% des nœuds manifestent des intentions hostiles.


La suite

  La "blockchain" qui au départ n'est qu'un algorithme de chaînage de liste connaît un succès phénoménal en tant qu'outil permettant l'intégrité des données. Des dizaines de monnaies numériques ont vu le jour qui ont adopté la technique "blockchain" comme moyen de conserver les transactions. La gestion distribuée de l'information et la sécurité des transactions supportées par la preuve de travail ont permis la naissance de monnaies qui s'affranchissent des banques. La monnaie n'est plus dans nos poches mais sur le réseau, la confiance repose sur l'exactitude des algorithmes et sur la redondance des informations.

Mais l'avenir de la "blockchain" est plus radieux encore puisqu'elle peut servir d'autres objectifs tels qu'une base de données des propriétés foncières libérée du joug des notaires. En effet dans chaque acte de vente il faut récapituler d'où les vendeurs tenaient leur bien , idem dans l'acte précédent où les vendeurs étaient les acheteurs. Nous sommes bien dans l'effet "vache qui rit" qui sied si bien à la blockchain.