PS187 – Bitcoin, monnaie numérique et politique

Cet article est un dossier pour PodcastScience épisode 187, n’hésitez pas à vous y balader sur le site www.podcastscience.fm!

Créé en 2009 par un ou plusieurs anonymes dont on connaît seulement un nom, le Bitcoin est connu aujourd’hui de nom par la plupart. Pour autant, la majorité d’entre nous ne sait pas vraiment ce que c’est, comment ça marche, et finalement pourquoi tout le monde fait autant de bruit autour de ce qui n’est qu’une “monnaie numérique”.

« Monnaie » et « numérique », deux mots bien communs mais que finalement on connait peu. Car si l’on navigue et paye sur l’internet mondial, nous sommes bien en mal de décrire pourquoi cette navigation, ces échanges, sont sécurisés. Car si l’on est prêt à passer la moitié de notre temps à travailler pour en gagner un peu, on aurait tous bien du mal à définir et à expliquer le fonctionnement de la monnaie. Pourtant, pour comprendre ce qu’apporte le Bitcoin, il va justement comprendre comment fonctionne notre monde aujourd’hui avant d’appréhender comment il fonctionnera peut-être demain.

 

Le grand foutoir de l’internet mondial

Imaginons que nous soyons deux personnes qui cherchons à communiquer. Dans le monde réel, loin du clavier, on ouvre la bouche pour donner le message à son voisin. On peut garder la même métaphore sur l’internet mondial, avec quelques modifications. Cette fois-ci, la salle où l’on discute serait remplie de monde, avec quelque part le destinataire et on fait une sorte de bouche à oreille pour transmettre le message. En fait, on fait plutot un bouche à oreille à voix haute. Imaginez alors dans ce contexte transmettre un numéro de carte bleue, il faut avoir sacrément confiance en toutes les personnes de cette salle….

Comme on ne peut faire confiance à personne (©Dr House), on a heureusement inventé un système efficace pour transmettre des informations sensibles sans pour autant que tout le monde soit au courant. Le principe le plus utilisé aujourd’hui, dit asymétrique, consiste en gros à posséder un cadenas et une clé. Notre destinataire nous envoie alors une boite avec son cadenas ouvert, on met notre message dedans et on referme le cadenas. Alors, personne, à part ce même destinataire, ne peut ouvrir le cadenas, c’est simple mais très efficace… Pour peu bien sûr qu’on arrive à faire un cadenas numérique!

Pour construire un tel objet, il faut réfléchir à ce qu’est, de manière très pragmatique, un cadenas :

– Un truc facile à ouvrir avec la clé
– Un truc facile à fermer
– Un truc très dur, voir impossible à ouvrir sans clé

Illustration de Puyo

Illustration de Puyo

Trois hommes, Ronald Rivest, Adi Shamir et Leonard Adleman ont donné le premier exemple de cadenas numérique en utilisant de manière tout a fait étonnante des outils connus de longue date. Certains problèmes sont connus en mathématiques comme étant très difficiles, c’est à dire qu’on sait qu’il faut énormément de temps pour les résoudre au grand dam de pas mal de chercheurs qui voient leur recherches grandement ralenties (mais qui aussi développe beaucoup l’imagination des mathématiciens). Cela est d’autant plus frustrant que pour certains de ces problèmes, quand on a une solution possible, il est très rapide de vérifier que c’est effectivement une solution. Par exemple, si je vous demande par quels nombres je peux diviser le nombre

345 306 139

vous aurez bien du mal à me le dire rapidement. En revanche, si je vous affirme que l’un de ses diviseurs est 18059, il sera très facile de vérifier en faisant l’opération :

345 306 139 : 18059 = 19121

Une telle fonction, qui donne une solution d’un problème très complexe est un bon candidat à un cadenas numérique. Il est très rapide de fermer le cadenas, de fabriquer le grand nombre, il est très compliqué d’ouvrir le cadenas fermé (pour peu que l’on choisisse des nombre suffisament grands) et surtout avec la clé, l’un des deux nombres, on peut ouvrir très rapidement le cadenas.

Le système R.S.A., du nom de ses auteurs, qu’utilisent la plupart des transactions sécurisées sur l’internet mondial repose sur ces problèmes un peu particuliers : très durs à inverser mais très faciles à vérifier. Cela veut donc dire que toute cette sécurité repose sur le fait que ce problème est vraiment dur à résoudre, sachez quand même que le fait de savoir si les problèmes simples à résoudre ne sont pas forcément simples à vérifier est une question ouverte, qui vaut 1 million de dollars !

Maintenant vous savez donc comment on peut communiquer de manière sécurisée sur l’internet mondial. Une monnaie numérique doit donc être grosso-modo la monnaie qu’on utilise tous les jours mais via une connexion numérique? C’est en général vrai, mais pas pour le Bitcoin et cela change tout et représente sa principale innovation. Et pour comprendre cela, il faut un peu parler de monnaie.

Une monnaie numérique

Dans la famille des définitions difficiles, on connaissait le “temps”, il faudra aussi compter la monnaie. Pour parler convenablement de la monnaie, de ce qu’elle a été, de ce qu’elle est, il faudrait beaucoup de dossiers et je ne suis pas vraiment sûr que je serais l’homme de la situation. On va donc se limiter à quelques éléments basiques mais essentiels. Il y a en gros trois principales règles :

  •  Les gens lui accordent une valeur ;
  • Des commerçants et autres l’acceptent comme paiement et indiquent leur prix avec ;
  • C’est un medium d’échange.

Tout en respectant ces simples règles, il y a eu de nombreuses formes de monnaies parfois tout ce qu’il y a de plus exotiques. Contrairement à la croyance commune, la monnaie n’est pas vraiment apparu comme un remplacement plus efficace du troc. Il n’y a jamais eu, du moins nous n’en avons aucune preuve, une période où, pour acheter des pommes quand on était éleveur de vaches, il fallait trouver un producteur de pommes qui avait envie de vaches… Représentantes de ces possessions, les monnaies ont plutôt directement été mises en place (sans pour autant que ce soit tout de suite de la monnaie marquée dans un matériau rare…)

Une des "pièces" de la monnaie utilisée sur l'archipel de Yap (crédit Wikipedia)

Une des « pièces » de la monnaie utilisée sur l’archipel de Yap (crédit Wikipedia)

 

Le principe consistant à utiliser un matériau de valeur est assez simple : Ces matériaux rares peuvent représenter une grande valeur sans prendre beaucoup de place et font donc parfaitement preuve d’une possession.

Cette solution s’avère malgré tout assez limitée car plus les échanges augmentent plus il faut avoir sous la main de l’or pour créer les pièces. Arrive alors un moment où un État décide de remplacer cela par un matériau sans valeur intrinsèque, la valeur est donnée par l’État. On touche ici à un élément essentiel ; à partir de ce moment, la monnaie ne correspond plus qu’à la valeur donnée par un état et tient grâce à la confiance que peut avoir la population dans cet État. Un rôle primordial est alors donné aux banques, qui représentent en quelque sorte cette autorité de la monnaie nationale et qui stockent dans leur coffre la quantité d’or correspondant à la monnaie en circulation.

Le troisième stade important dans l’évolution de la monnaie consista à se rendre compte que garder en réserve la quantité d’or correspondant à la monnaie en circulation n’est pas vraiment utile tant que la population a confiance et ne demande pas à récupérer son équivalent or. Cela présente l’avantage en particulier de faire facilement fonctionner “la planche à billets” en créant de la monnaie à partir de rien! Depuis lors, il y a bien plus de monnaie en circulation que ce qu’en possèdent les banques et les états. Et la chose tient bien car tout le monde ne demande pas en même temps de récupérer son argent en équivalent or ou dans une autre monnaie. Le rôle des banques est d’autant plus central.

Enfin, arrive Internet et la monnaie physique disparaît presque complètement. Soyons honnêtes, pourquoi utilisez vous encore des billets ou des chèques? Le plus souvent car vous payez à un endroit qui n’accepte pas les cartes car les frais de transaction sont trop élevés.

Aujourd’hui, on ne possède pratiquement plus de monnaie physique, de pièces. La monnaie n’est qu’une écriture comptable dans le carnet de comptes des banques. Dépenser de l’argent correspond donc à faire une soustraction alors que recevoir de l’argent une addition. Et parfois, lors des prêts par exemple, une nouvelle ligne apparait de nulle part, de l’argent est créé. Dans ce contexte, le rôle des banques et de l’État est prépondérant. Si du jour au lendemain la banque annonce que vous n’avez plus d’argent, vous n’en avez plus ; ce n’est qu’une ligne dans un carnet de compte ! Si demain un État décide d’imprimer des billets sans interruption – faisant perdre toute valeur à la monnaie – vous êtes ruinés !

Aujourd’hui donc, aucun échange financier ne se fait sans passer par une autorité centrale, votre banque. À chaque fois que vous payez par carte, une communication indique à la banque de soustraire une somme de votre compte et elle seule a autorité pour autoriser ou non la transaction, c’est ce qui permet aujourd’hui à nos échanges de fonctionner de manière fiable. Les banques ont le monopole de la gestion des comptes et sont en quelque sorte mandatées par les États pour le faire.

De ce fait, parfois les banques, pourtant en très faible nombre et non représentatives de la population, peuvent faire des erreur et cela peut se révéler dramatique pour le plus grand nombre comme dans la crise financière de 2007. C’est dans ce contexte qu’arrive le Bitcoin en 2009 avec un but énoncé clairement : permettre des transactions financières sans intermédiaire.

De la coordination dans un vaste bordel

L’idée est merveilleusement utopique ! Comment deux personnes peuvent-elles établir un contrat entre elles sans une autorité qui le valide ? Comme on a pu le voir, c’est impossible, et c’est pour ça que le protocole Bitcoin ne supprime pas cette notion d’autorité de validation des comptes ; il propose juste de le mettre dans les mains de tout le monde en même temps. Au lieu d’avoir une banque qui met à jour et tient en ordre un livre de compte, avec le protocole Bitcoin, tout le monde peut lire le registre de comptes (donc vérifier si quelqu’un possède de l’argent) et tout le monde peut (en théorie) écrire dessus.

Il s’agit donc que tout le monde stocke le livre de comptes et mette à jour chaque modification de tous les côtés en même temps. Il se trouve qu’une des technologies récentes nées d’internet permet parfaitement ce genre d’approche : le peer to peer (P2P). Connu principalement pour le téléchargement illégal d’images disque ubuntu, le P2P consiste à établir des connexions directes entre chaque élément du réseau pour échanger et synchroniser des informations. Dans le cas de vos téléchargements par exemple, on s’assure juste qu’il existe dans tout le réseau le fichier complet et vous allez télécharger chez un peu tout le monde les morceaux qu’ils possèdent tout en envoyant les morceaux que vous possédez.

Si l’on reprend notre métaphore du bordel de l’internet avec cette salle où tout le monde fait du bouche à oreille, gérer un livre de comptes par peer to peer consisterait donc à recopier le livre de comptes en regardant sur tout les voisins et dès que l’un fait une modification, les autres la copient. On imagine alors qu’en l’état ça ne peut absolument pas fonctionner!

Si tout le monde écrit sur le livre de compte a peu près en même temps, on peut avoir à la fois :

  • Ceux qui ajoutent une nouvelle transaction en France ;
  • Ceux qui ajoutent une nouvelle transaction en Suisse ;
  • Ceux qui ajoutent des transactions imaginaires pour frauder.

On arrive très rapidement à plusieurs livres de comptes différents sans aucune possibilité de les rassembler en un seul avec une suite unique de transactions. Or c’est indispensable pour avoir un système de monnaie, si l’on ne peut pas établir une liste ordonnée des transactions, on ne peut pas s’assurer que la même pièce de monnaie n’a pas été dépensée plusieurs fois. De plus sans autre protection, ce système permet aux truands comme aux gens honnêtes de remplir le livre de comptes.

Le grand pas en avant du protocole Bitcoin consiste à établir des règles d’écriture dans le livre de compte pour pallier ce problème. D’abord, le livre de compte trouve son équivalent numérique dans la “chaîne de blocs”. Comme son nom l’indique, la chaîne de blocs est une suite de blocs d’informations sur les transactions ; on peut imaginer chaque bloc comme une page du livre de compte. Une des particularités est que dans chaque bloc est codée une information sur la liste des blocs qui le précèdent, de manière à ce qu’il soit impossible de rajouter le tel bloc sans connaître l’existence des précédents ; cela permet d’assurer un ordre unique des blocs. Si l’on garde notre image du livre de comptes, cela consiste en gros à mettre un numéro de page et à relier la page au livre. Cette première étape d’abord permet donc d’assurer un ordre dans les transactions mais il reste le plus important : signaler au reste du réseau que l’on a ajouté une transaction.

Dans l’exemple du P2P basique, un des problèmes est que si l’on écrit les transactions trop vite, on n’a pas le temps de prévenir tout le réseau de l’avancée de l’arbre de transactions et on ne parvient alors pas à construire un livre de comptes unifié pour tout le monde. Pour parvenir donc à nos fins, il va falloir temporiser l’ajout d’une nouvelle transaction. Or, sans autorité centrale, comment “forcer” les acteurs à prendre leur temps? Grâce à une nouvelle utilisation étonnante des preuves de travail que nous avons vues tout à l’heure !

Illustration de Puyo

Illustration de Puyo

Rappelez-vous, les preuves de travail sont des problèmes durs à résoudre mais faciles à vérifier. On peut en plus, dans certain cas, en moduler la difficulté. Pour temporiser l’écriture dans le livre de comptes, on utilise ces propriétés : les transactions doivent vérifier une de ces propriété difficiles pour avoir le droit d’être ajoutées au livre de comptes ! Ainsi, l’ajout d’une transaction prend du temps, qui dépend directement de la puissance de calcul du réseau. Et une fois le problème résolu, c’est très rapidement que l’on peut notifier aux autres que c’est le cas, ils peuvent le vérifier que c’est bien le cas et alors mettre à jour leur propre livre de comptes et chercher à résoudre le problème correspondant aux transactions suivantes. Pour le Bitcoin, le problème est ajusté régulièrement pour assurer qu’une nouvelle transaction soit ajoutée au livre de compte toutes les 10 minutes environ.

Est-ce que ça marche?

Alors c’est bien beau de créer un nouveau système mais encore faut-il vérifier que cela respecte bien les propriétés qu’on attend. D’abord, imaginons que deux ordinateurs en même temps résolvent le problème lié à la transaction et donc ajoutent un bloc différent au bout de la chaîne : une partie des ordinateurs du réseau vont alors accepter l’un des blocs et les autres le deuxième bloc et travailler chacun sur la construction du prochain élément de la chaîne de blocs. Coexistent alors deux livres de comptes, mais statistiquement l’un des deux groupes validera la nouvelle transaction avant l’autre et notifiera tout le monde. Les ordinateurs voyant alors une chaîne de transactions plus longue que la leur, ils arrêteront leur travail courant et repasseront sur la chaîne la plus longue ; le livre de compte reste bien cohérent. Cela veut bien sûr dire, et c’est le cas, qu’une transaction Bitcoin prend une heure environ avant d’être validée de manière complètement fiable.

Maintenant, imaginons que des pirates cherchent à compromettre la chaîne de blocs en ajoutant leur propre bloc de transaction à la chaîne. Pour faire accepter leur transaction frauduleuse par le réseau, il faut qu’ils résolvent avant tout le monde la preuve de calcul, c’est à dire qu’ils doivent avoir une puissance de calcul plus grande que la moitié du réseau. D’une part, cela est aujourd’hui difficile, vu la taille du réseau Bitcoin, et plus des ordinateurs rejoindront le réseau, plus ce sera difficile. Mais en plus, le fait de valider une transaction et ajouter une page au livre de comptes dans le protocole Bitcoin vous permet de gagner quelques Bitcoins. C’est par ce biais que sont créés les bitcoins : comme une rémunération pour les ordinateurs qui vérifient les transactions. Or aujourd’hui, il est moins intéressant financièrement (du fait de la puissance demandée) d’insérer une transaction frauduleuse que de chercher à gagner des bitcoins à la loyale. Le système est donc particulièrement sécurisé et le sera d’autant plus qu’il y aura des gens sur le réseau.

Par une utilisation originale des preuves de calcul,  Satoshi Nakamoto (pseudo de l’inventeur du Bitcoin) a réussi à se passer d’une autorité de confiance pour faire une transaction financière !

Plus qu’une innovation technique, une proposition politique

On vient de voir les grandes lignes du fonctionnement du Bitcoin mais se limiter à cela serait perdre de vue les aspects les plus intéressants de cette proposition. Car aussi étonnant que cela puisse paraître, le Bitcoin est à mon goût avant tout une proposition politique et de société.

D’abord j’ai passé sous silence un aspect technique absolument pas indispensable au protocole mais pourtant implémenté et utilisé aujourd’hui. Comme nous l’avons vu, l’ordinateur qui parvient à valider une transaction se voit récompensé d’un certain nombre de Bitcoins. En fait, ce nombre évolue au cours du temps. Au début, la somme était de 50BTC mais cette valeur est divisée par deux tous les quatre ans, si bien qu’au final, il n’y aura en tout et pour tout que 21 millions de bitcoins produits. Encore une fois, ce choix n’a rien de technique, c’est une méthode anti-inflation codée dans la monnaie. Le Bitcoin est né dans une période de peur de l’inflation ; le fait qu’une monnaie perde sa valeur en particulier a cause d’un excès de planche à billets, il est donc inscrit dans son code source que l’inflation est impossible.

Podcast Science n’est pas le lieu de la discussion du bienfondé ou non d’un tel choix, en revanche il est tout à fait intéressant de noter que cette règle est inscrite dans le protocole de transaction et personne n’a le pouvoir de la changer. Jusqu’alors, ce genre de rôle était fixé par les états ou les groupement d’états et donc dépendait du sérieux des responsable politiques. Le fait de fixer une règle dans la monnaie l’inscrit dans le marbre et rend impossible tout retour en arrière.

Le Bitcoin est un brouillon, une première proposition, il y aura pour sûr d’autres monnaies et l’on peut imaginer d’autre types de règles inscrites dans leurs algorithmes. Pourquoi par exemple ne pas empêcher l’utilisation de cette monnaie pour certains type de transactions : l’achat d’armes, de stupéfiants, etc. Tout est imaginable ! Cela pourrait amener beaucoup de stabilité dans nos systèmes.

Dans le même ordre d’idée, plusieurs aspects de ce que l’on a déjà vu du fonctionnement forme un grand changement dans notre manière d’imaginer la monnaie : les banques et les élus remplacés par un algorithme, la création de monnaie pour récompenser la vérification des transactions, la rapidité de transaction limitée. Toutes ces règles se posent en face de la plupart des raisons des crises successives qu’a connu notre système financier actuel. Le Bitcoin n’est pas exempt de défauts mais il marque une première étape vers une forte refonte de notre système monétaire en remettant en cause des choses que nous considérons aujourd’hui encore comme immuables.

Limites d’un brouillon

Le Bitcoin a beaucoup de défauts, énormément de critiques très souvent légitimes, qui m’amènent à la conviction que ce ne sera pas ce protocole-là qui se démocratisera ; nous allons en voir quelques autres. En particulier, je ne parlerai pas de l’aspect volatile de cette monnaie (qui limite aujourd’hui fortement son utilisation généralisée, imaginez un café qui coûterait 1BTC le matin et 3BTC le soir…) ni des limitations purement techniques ou juridiques (vous avez tout plein d’éléments dans les livres cités ci-dessous). Il me paraît bien plus intéressant d’aborder plutôt les limites liées aux choix  politiques évoqués plus haut justement, en particulier le point de départ : se passer d’une autorité.

Se passer d’une autorité présente de nombreux avantages comme on a pu le voir mais il y a aussi bien des défauts. Aujourd’hui, quand vous dépensez de l’argent sur un site frauduleux, la banque peut annuler la transaction. De même, si une banque se fait voler de l’argent, vous ne vous faites pas voler, c’est la banque qui est volée. Avec le Bitcoin, une transaction est définitive, si vous vous faites voler vos bitcoins ou si vous les perdez, personne ne peut vous aider. Les autorités centrales sont bien pratiques en cas de conflit et il n’est pas évident que les éliminer totalement soit vraiment une bonne solution souhaitée par tous.

En revanche, le Bitcoin a le mérite de soulever des questions, de montrer que d’autres systèmes sont possibles et qu’ils préviendraient bien des problèmes actuels. Démocratiser les “crypto-monnaies” (c’est leur petit nom) ne se fera probablement pas sans les états et donc sans le peuple, sans nous, qui nous devons de nous intéresser à cet outil que nous utilisons chaque jour et pour lequel nous livrons le plus gros de notre énergie.

Bibliographie :

  • Bitcoin: And the Future of Money de Jose Pagliery : excellent livre qui couvre énormément d’aspects de cette invention sans tomber dans trop de technique. Il a aussi l’avantage de prendre beaucoup plus de recul que les autres livres sur le sujet. Si ça vous intéresse, je ne saurais trop vous recommander de commencer par celui-là ;
  • Bitcoin Internals: A Technical Guide to Bitcoin de Chris Clark : un peu l’opposé du précédent ; il va dans le gras comme aucun autre bouquin que j’ai lu sur le sujet. Il y a des extraits de code source et tout ! N’attendez pas du recul, utile uniquement si vous voulez TOUT comprendre voire vous implémenter une cryptomonnaie…