"Bitcoin is Time" a été rédigé et publié par DerGigi le 14 janvier 2021 sur son blog . Il s'agit du deuxième chapitre de son livre, intituté "21 ways".
« Une horloge incandescente dans le ciel annonça que l’heure n’était ni exacte ni inexacte » — Robert Frost, Acquainted with the Night
« Le temps demeure pour nous le plus grand mystère. Ce n’est rien de plus qu’un concept, nous ne savons même pas s’il existe » — Clifford D. Simak, Shakespeare’s Planet
Comme dit l’adage, « le temps c’est de l’argent ». Il en résulte que la monnaie aussi c’est du temps : une représentation de l’énergie économique collectivement stockée par l’ensemble de l’humanité. Néanmoins, le lien entre la monnaie et le temps est plus ténu qu’il n’y paraît à première vue. Si la création de monnaie n’est pas chronophage, c’est que la monnaie en question ne fonctionne pas bien, ou en tout cas, ne fonctionnera pas bien longtemps. Plus fondamentalement, comme nous le verrons par la suite, enregistrer un état des choses dans le royaume informatique, ça implique avant tout de mesurer le temps.
Dès que la monnaie se numérise, il devient impératif de s’accorder sur une définition du temps, et ce n’est pas une mince affaire. On pourrait croire que dire l’heure ce n’est rien de plus que jeter un coup d ‘œil à l’horloge la plus proche. Dans la vie courante, c’est vrai. Mais lorsqu’il s’agit de la synchronisation d’un réseau distribué dans un contexte hostile, donner l’heure devient un problème insoluble. Comment connaître l’heure si aucune horloge n’est réputée de confiance ? Comment arriver à un concept de temps absolu quand votre système s’étend sur une galaxie entière ? Et d’ailleurs, qu’est-ce que le temps?
Pour répondre à ces questions, nous devons d’abord examiner de plus près le concept de « temps » lui-même, et comprendre comment Bitcoin génère sa propre conception du temps : le temps de bloc (que l’on connaît mieux comme « hauteur de bloc »). Nous allons essayer de comprendre en quoi lire l’heure est intimement lié au fait de garder en mémoire un historique, pourquoi il ne peut exister de notion de temps absolu dans un système décentralisé, et comment Bitcoin utilise la causalité et l’imprévisibilité pour former sa propre conception du « présent ».
Les outils utilisés pour donner l’heure ont transformé la civilisation plus d’une fois. Comme Lewis Mumford le fit remarquer en 1934 : « C’est l’horloge et non pas le moteur à vapeur qui est la machine clé de l’âge industriel ». Aujourd’hui encore, c’est un outil de mesure du temps qui est en passe de transformer la civilisation : c’est une horloge, et non un ordinateur, qui est la machine clé à l’âge informationnel. Cette horloge s’appelle Bitcoin.
Garder la trace des choses
« Laissez l’enfant apprendre à compter des choses, pour qu’il acquiert ainsi la conception des nombres. Pour ce qui est de compter, toutes ces choses se valent, et peuvent être des objets comme des groupes. » — David Eugene Smith, The Teaching of Elementary Mathematics (1900)
De manière générale, il y a deux façons de garder les choses en mémoire : des jetons physiques et des registres. On peut utiliser des artefacts physiques issus du monde réel, ex : donner un coquillage, une pièce ou n’importe quoi d’autre de tangible à quelqu’un, ou alors, répliquer l’état du monde en couchant les évènements sur le papier.
Imaginez que vous soyez un berger désireux de s’assurer que l’ensemble de son troupeau soit bien rentré à bergerie. Vous pouvez mettre un collier sur chaque mouton, et à chaque fois qu’un mouton revient à la bergerie, vous enlevez simplement le collier et le suspendez à un crochet. Si vous avez un crochet par collier, vous saurez que tous les moutons sont arrivés à bon port à condition qu’il y ait un collier sur chaque crochet. Bien entendu, vous pouvez aussi simplement compter les moutons et dresser une liste. Cependant, il vous faudra alors dresser une nouvelle liste à chaque décompte et vous assurez également que vous n’avez pas compté deux fois le même mouton (ou que vous n’avez pas oublié d’en compter un).
La monnaie est un outil servant essentiellement à garder en mémoire ce qui est dû, à qui et par qui. En gros, tout ce que nous avons jamais utilisé comme monnaie peut être scindé en deux catégories : les artefacts physiques et les listes informationnelles. Ou, pour le dire dans un langage moderne : des jetons et des registres.
Il est important de noter la différence fondamentale entre ces deux catégories, donc laissez-moi le dire explicitement : avec la première méthode (les jetons physiques) l’état des choses est représenté directement ; avec la seconde (un registre) cela est représenté indirectement. Chacune comporte son lot d’avantages et d’inconvénients. Par exemple, les jetons sont physiques et distribués, tandis que les registres sont informationnels et centralisés. Les jetons sont intrinsèquement dignes de confiance ; les registres ne le sont pas.
Dans le monde numérique (et quoiqu’en dise les gurus du marketing) nous ne pouvons utiliser que des registres. C’est un royaume informationnel et non physique. Même si vous appelez un certain type d’information un « jeton », cela reste une information malléable/modifiable, stockée dans un disque dur ou autre dispositif similaire, ce qui en fait donc un registre informationnel.
Le fait, que toute information numérique soit une entrée dans un registre, est à la racine du problème de double-dépense. L’information ne représente jamais directement la réalité. Qui plus est, le transfert d’information implique la copie. L’information existe donc à un endroit donné, et pour la transporter véritablement vous devez la dupliquer à un autre endroit et l’effacer de sa source originelle. C’est un problème étranger au monde physique. Dans le monde physique, on peut réellement bouger un objet d’un point A à un point B. Le monde informatique ne le permet pas. Si l’on veut « déplacer » de l’information de la liste A à la liste B, on doit la copier de A à B. On ne peut faire autrement.
On peut aussi regarder ce problème sous l’angle de l’unicité. Les jetons physiques sont des amas d’atomes uniques dont l’assemblage n’est pas facilement reproductible. Ce n’est pas le cas de l’information. Toute information lisible peut également être parfaitement répliquée. D’un point de vue pratique, il en résulte que les jetons physiques sont uniques, tandis que les jetons numériques ne le sont pas. J’irais même jusqu’à dire que « jeton digital » est une appellation fallacieuse. Un jeton peut effectivement représenter une information secrète, mais il ne peut en aucun cas représenter une information singulière, unique et résistante à la copie.
Cette différence de propriété démontre qu’il n’y a pas de moyen pratique de « remettre » une information. On ne peut pas transmettre un jeton numérique comme on passerait le sel, car on ne peut pas s’assurer que le propriétaire initial a bien détruit l’information de son côté. Les jetons numériques, comme toute information, ne peuvent qu’être partagés, à la manière des idées.
« … si j’ai une pomme et que vous aussi, et que l’on se les échange, nous finissons tous deux avec une pomme. En revanche, si nous avons tous deux une idée et que nous les échangeons, nous finissons chacun avec deux idées. » — Charles F. Brannan (1949)
Les jetons physiques (ce que l’on appelle des "actifs au porteur", ou du "cash") sont exempts de cette ubiquité. Dans le monde réel, si vous me donnez votre pièce, vous ne l’avez plus. Il n’y a pas de réplication magique de la pièce, et la seule manière que vous avez de me la donner c’est de me la remettre physiquement. Les lois de la physique vous empêchent de la dépenser deux fois.
Bien que la double dépense puisse exister en dehors du monde numérique (l’arnaqueur George Parker a très fameusement « dépensé deux fois » de célèbres monuments comme le pont de Brooklyn), cela exige des manipulations subtiles et des acquéreurs crédules. C’est moins le cas dans le monde numérique.
Dans le monde numérique, puisque nous traitons toujours avec de l’information, la double-dépense est un problème inhérent. Comme le savent tous ceux qui ont déjà fait un copier-coller, l’information est quelque chose qui se copie parfaitement et qui n’est pas irrémédiablement rattaché à son contenant. Si vous avez une photo numérique, vous pouvez, par exemple, la copier un million de fois, stocker ces copies sur une clé USB et les envoyer à des milliers de personnes. Les copies parfaites sont possibles parce que l’information peut être entièrement et exactement reconstituée, ce qui prémunit de la dégradation. Par ailleurs, la réplication est quasiment gratuite et rend la copie indifférenciable de l’original.
Répétons-le : en ce qui concerne l’information, il ne s’agit que de copier. Il n’y a tout simplement pas de méthode pour déplacer de l’information d’un point A à un point B. L’information est toujours copiée de A à B, et si le processus de copie est effectif, le fichier original de A est détruit. C’est pourquoi le problème de la double-dépense est si insidieux. En l’absence d’une autorité centrale, il n’existe aucun moyen fiable et direct de déplacer quoique ce soit d’un point A à un point B. Vous devez toujours avoir confiance dans le fait que le fichier originel sera détruit. La conséquence naturelle de cela est que, dans le monde numérique, on ne peut connaître ni la localisation, ni le nombre des copies existantes.
Pour cette raison, les « jetons numériques » ne fonctionnent pas, et ne fonctionneront jamais, comme monnaie. Puisque la fiabilité des jetons provient de leur nature physique, en ce qu’elle les rend résistants à la copie, leur dématérialisation signe la perte de cet avantage. Dans le monde numérique, on ne peut faire confiance à un jeton. Du fait des propriétés naturelles de l’information, la seule forme de monnaie numérique sensée, c’est le registre (ce qui nous ramène à la question du temps).
Les jetons sont atemporels, contrairement aux Registres
« Parce que nous regardons, non point aux choses visibles, mais à celles qui sont invisibles ; car les choses visibles sont passagères, et les invisibles sont éternelles. » — Saint-Paul, Les Corinthiens 4 :18b
En ce qui concerne les jetons physiques, le moment de réalisation d’une transaction n’a pas d’importance. Soit vous avez les pièces dans votre poche, soit vous ne les avez pas ; soit vous pouvez les dépenser, soit vous ne le pouvez pas. Le simple fait de posséder physiquement la pièce est le seul prérequis de la dépense. Les lois de la nature s’occuperont du reste. En ce sens, les jetons physiques se passent de tiers de confiance et sont atemporels.
En ce qui concerne les registres en revanche, la possession physique disparaît. La personne en charge du registre, qui qu’elle soit, doit s’assurer que tout est en ordre. Ce qui nous était donné par les lois de la physique, à savoir l’impossibilité de dépenser de l’argent qui ne vous appartient pas, ou de dépenser deux fois la même somme, doit désormais être garanti par un système de règles conçu par l’homme. C’est ce système de règles qui est responsable du maintien et du fonctionnement correct du registre, et non les lois de la nature.
Le passage des lois de la physique aux règles humaines est au cœur du problème. Les règles instaurées par les hommes peuvent être enfreintes ou contournées, tandis que les lois physiques ne peuvent l’être. Par exemple, nul ne peut « créer » une pièce d’or. Il faut d’abord extraire l’or du sol. En revanche, vous pouvez totalement créer de l’or-papier. Pour ce faire, vous n’avez qu’à ajouter une entrée au registre et vous attribuer quelques pièces. Ou, dans le cas des banques centrales, vous pouvez tout simplement ajouter quelques milliers de milliards de dollars en pressant une touche du clavier. (Les gens sophistiqués appellent cela de la « réhypothécation », « banque à réserve fractionnaire » ou « assouplissement quantitatif », mais ne vous laissez pas berner, cela revient à chaque fois à la même chose : créer de la monnaie).
De manière à s’assurer que les registres et ceux qui les tiennent demeurent honnêtes, il faut régulièrement réaliser des audits indépendants. Le fait de pouvoir justifier chaque entrée dans le registre n’est pas un luxe. Les auditeurs doivent pouvoir remonter chronologiquement les entrées du registre sans inconsistance, sinon le registre ne peut être considéré comme fiable. De fait, sans horodatage fiable, vérifier la consistance interne du registre est une tâche impossible. On ne peut se passer d’un mécanisme établissant un ordre univoque.
Sans une notion absolue du temps, il n’est pas possible de définir un ordonnancement des transactions. Or, en l’absence d’ordonnancement univoque des transactions, les règles du registre ne peuvent être appliquées. De quelle autre manière pouvez-vous savoir quelle somme d’argent vous détenez réellement? De quelle autre manière pourriez-vous savoir que les choses sont bel et bien ordonnées ?
L’Estampillage de Pièces Centralisé
« Le Temps : grand inscripteur, ou effaceur » — Yahia Lababidi (b. 1973)
La manière habituelle de résoudre le problème de double-dépense (c’est-à-dire de s’assurer qu’un transfert numérique n’a eu lieu qu’une fois) c’est de dresser une liste centrale de toutes les transactions. Une fois que vous disposez d’une telle liste, vous avez un registre unique qui est seule source de vérité. Résoudre le problème de la double dépense, c’est aussi simple que de parcourir la liste et de s’assurer que les comptes sont justes. C’est de cette manière que PayPal, Venmo, Alipay, et toutes les banques du monde (banques centrales comprises) résolvent ce problème : par le biais d’une autorité centrale.
« Le problème, bien entendu, c’est que le récipiendaire ne peut vérifier que l’un des propriétaires n’a pas déjà dépensé cette somme auparavant. Une solution classique consiste à introduire une autorité centrale qui vérifie qu’il n’y a pas eu double-dépense. […] Le problème avec cette solution est que le destin du système monétaire se retrouve placé tout entier entre les mains de cette autorité centrale, et que chaque transaction doit passer par cette institution, exactement comme avec les banques. » — Satoshi Nakamoto (2009)
Il est important de souligner que Satoshi n’est pas parvenu à rendre l’information résistante à la copie. Chaque partie de Bitcoin (son code source, le registre, les clés privées, etc. peuvent être copiées). Tout peut être répliqué et modifié. Cependant, Satoshi a réussi à concevoir un système dans lequel toute copie enfreignant les règles du jeu est rendue complètement et irrémédiablement inutile. Le réseau Bitcoin réalise une danse subtile pour parvenir à décider quelles copies sont utiles et lesquelles ne le sont pas, et c’est cette danse qui apporte la rareté dans le monde numérique. Et comme avec toute danse, il faut un métronome pour battre le rythme.
Même un registre centralisé doit disposer d’un moyen fiable de donner l’heure s’il veut parer au problème de double dépense. On doit toujours être capable de dire qui a donné quoi, à qui, et, surtout, à quel moment. Dans le monde informationnel, il ne peut y avoir d’estampillage de monnaie sans horodatage.
« Il faut souligner que l’impossibilité, au sein d’un système distribué, d’associer des événements à un moment défini dans le temps était le problème irrésolu qui empêchait l’invention d’un registre décentralisé, et que Satoshi Nakamoto a surmonté ». — Gregory Trubetskoy (2018)
Le Temps Décentralisé
« Le temps, en vieillissant, anéantit toutes les choses » — Eschyle (- 525 à -456)
Le temps et l’ordre entretiennent une relation intime. Comme le fit remarquer Leslie Lamport dans sa publication de 1978 intitulée « Le Temps, les Horloges et l’Ordonnancement des Évènements dans les Système Distribués » : « Le concept de temps est au fondement de notre manière de penser. Il dérive du concept plus basique d’ordre dans lequel les évènements arrivent. » En l’absence d’un point central de coordination, les notions, en apparence évidente, d’avant, d’après et de simultané s’effondrent. Pour citer Lamport : « Le concept de « est arrivé avant » définit un ordonnancement partiel et invariant des évènements au sein d’un système distribué multitâche ».
Pour le dire autrement : qui devrait être responsable de donner l’heure, si définir des responsables est prohibé ? Comment disposer d’une horloge fiable s’il l’on ne peut établir de cadre temporel de référence ?
Vous pouvez penser que résoudre ce problème est facile car tout le monde pourrait utiliser sa propre horloge. Cela ne fonctionne que si la montre de chacun est précise, et, surtout, si tout le monde est honnête. Dans un contexte hostile, se reposer sur les horloges individuelles équivaudrait au désastre. Et en plus, à cause de la relativité, cela ne fonctionnerait pas sur des distances importantes.
Faites l’expérience de pensée qui consiste à se demander comment vous pourriez truquer le système si chaque personne avait la charge de définir le temps pour son propre compte. Vous pourriez prétendre que la transaction que vous envoyez actuellement date en réalité d’hier (elle a juste été retardée pour une raison quelconque), et ainsi vous conserveriez tout l’argent que vous avez dépensé aujourd’hui. Parce que les communications dans un système distribué sont fondamentalement asynchrones, ce scénario n’est pas juste une expérience de pensée. En effet, les messages sont retardés, les horodatages sont imprécis, et du fait de la relativité et de la vitesse naturelle de notre univers, il est tout sauf simple de donner la chronologie d'événements en l’absence d’une autorité centrale ou d’un observateur de référence.
« Qui est-ce ? Il tape à la porte » — Une blague asynchrone
Pour mieux comprendre l’inhérente impossibilité du problème, penchons-nous sur des exemples concrets. Imaginez que vous et votre associée ayez tous deux accès au compte joint de l’entreprise. Vous avez des affaires partout dans le monde et du coup votre compte est en Suisse, vous êtes actuellement à New York et votre associée, elle, est à Sydney. Pour vous, on est le 3 janvier, et vous profitez d’une magnifique soirée dominicale à votre hôtel. Pour elle, on est déjà lundi matin, et elle décide donc de s’offrir un petit-déjeuner en utilisant la carte bancaire associée à votre compte joint. L’addition s’élève à 27$. Le solde de votre compte est de 615$. Il est 8h21 à Sydney.
Au même moment, vous êtes sur le point de régler votre séjour à l’hôtel en utilisant votre carte, qui est reliée au même compte. L’addition est de 559$. Le solde du compte est de 615$, et chez vous, il est 17h21.
Il se trouve que vous insérez tous les deux votre carte exactement au même moment. Que se passe-t-il ? (Chers physiciens, excusez mon emploi de la formule « exactement au même moment » ; pour l’instant, nous allons ignorer les effets de la relativité et le fait qu’il n’existe pas de temps absolu dans notre univers. Nous allons aussi ignorer le fait que « des événements simultanés », ça n’existe pas. Bitcoin est déjà suffisamment compliqué comme cela !)
Le registre central à votre banque va probablement recevoir une transaction avant l’autre, et du coup, seule une personne verra sa transaction validée. Si, en revanche, les deux transactions arrivent exactement au même moment (en l’espace d’une milliseconde), c’est la banque qui va décider quelle transaction est valide.
Maintenant, imaginons ce qu’il se passerait s’il n’y avait pas de banque. Qui décide quelle transaction a été effectuée la première ? Et qu’en serait-il si le problème était étendu à des centaines de personnes se coordonnant pour payer au même moment ? Et si vous ne faisiez pas confiance à ces gens ? Et qu’adviendrait-il si une partie décidait de retarder leurs montres de quelques minutes pour faire comme si leur transaction avait été effectuée préalablement ?
« En l’absence de coordinateur central, un instrument de mesure temporelle est requis pour l’établissement, et d’un ordonnancement canonique, et d’un historique unique » — Giacomo Zucco, Discovering Bitcoin (2019)
Ce problème est l’exact raison pour laquelle toutes les tentatives de création de monnaie numérique ont eu recours à un registre centralisé. On doit toujours faire confiance à quelqu’un pour établir l’ordonnancement des choses. Une institution centrale définissant l’heure exacte demeurait nécessaire.
Bitcoin résout ce problème en réinventant le temps lui-même. Il dit non aux secondes, et dit oui aux blocs.