Bitcoin, c’est le Temps

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.

« Ledger » pour « registre », et « Token » pour « jeton ».

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.

Donner l’Heure, un Bloc à la fois

« La gloire du temps est d’apaiser les rois rivaux, De démasquer la fausseté et de faire lumière sur la vérité, De marquer du sceau temporel les vieilles choses, De réveiller le matin et d’accompagner la nuit, De châtier le malin jusqu’à ce qu’il fasse le bien »

— William Shakespeare, Le Viol de Lucrèce


Toutes les horloges reposent sur un mécanisme périodique, quelque chose qu’on pourrait appeler un « tic-tac ». Le « tic-tac » familier des montres de notre grand-père est, au fond, identique à la résonance moléculaire de nos montres modernes à quartz ou au césium. Quelque chose balance, ou oscille, et nous nous contentons de compter les oscillations jusqu’à ce qu’on obtienne une minute ou une seconde.

Pour les horloges à pendule, ces oscillations sont longues et faciles à discerner. Pour des horloges plus petites et spécialisées, un équipement spécial est requis. La fréquence d’oscillation d’une horloge (la fréquence à laquelle elle fait « tic-tac »), dépend de son usage.

La plupart des horloges admettent une fréquence fixe. Après tout, ce que nous voulons c’est connaître l’heure précisément. Il existe cependant des horloges qui ont une fréquence d’oscillation variable. Un métronome, par exemple, a une fréquence variable que l’on peut paramétrer avant de le mettre en marche. Tandis que le métronome garde un rythme constant une fois lancé. Bitcoin, lui, oscille selon une fréquence irrégulière parce que son mécanisme interne est probabiliste. Le but recherché est néanmoins le même : faire tourner la musique pour que la danse continue.


Que Bitcoin soit une horloge, est un fait dissimulé en pleine lumière. En effet, Satoshi fait remarquer que le réseau Bitcoin agit dans son ensemble comme une horloge, ou selon sa formulation, comme un serveur d’horodatage distribué.

« Dans ce papier, nous proposons une solution au problème de double-dépense en utilisant un serveur d’horodatage distribué et pair-à-pair afin de générer une preuve calculatoire de l’ordonnancement des transactions.

— Satoshi Nakamoto (2009)


Que l’horodatage soit le cœur du problème à résoudre se remarque aussi lorsque l’on examine les références situées à la fin du papier-blanc de Bitcoin. Sur les huit références, 3 portent sur l’horodatage.

  • Comment horodater un document numérique par S. Haber et W.S. Stornetta (1991)
  • Améliorer l’efficacité et la fiabilité de l’horodatage numérique par D. Bayer, S. Haber et W.S. Stornetta (1992)
  • Conception d’un service d’horodatage sécurisé à partir de prérequis de confiance minimaux par H. Massias, X.S. Avila et J. -J Quisquater (mai 1999).

Comme le firent remarquer Haber et Stornetta en 1991, l’horodatage numérique c’est, en fin de compte, établir des procédures numériques basées sur du calcul informatique afin de rendre l’anti-datage et le post-datage impossible de la part des utilisateurs (ou d’un agent malveillant). Contrairement aux documents physiques, les documents numériques sont faciles à modifier, et les changements opérés ne laissent pas de traces sur le contenant physique lui-même. Dans le monde numérique, les faux et les manipulations peuvent être parfaits.

La nature malléable de l’information fait de l’horodatage de document numérique un processus élaboré et sophistiqué. Les solutions naïves ne fonctionnent pas. Prenez un document textuel par exemple. Vous ne pouvez pas simplement inscrire une date à la fin du document, car n’importe qui, vous-même inclus, pourrait changer la date dans le futur. Vous pourriez d’ailleurs avoir initialement inscrit une date inexacte.

Le Temps est une Chaîne de Causalité

« En prenant un point de vue extrême, on peut voir le monde comme un ensemble de connections, rien de plus. »

— Tim Berners-Lee, Weaving the Web (1999)


Définir des dates est un problème général, même en dehors du monde numérique. Ce qui est bien connu dans le monde du kidnapping comme « l’authentification par le journal » est une solution générale au problème de l’horodatage.

Une image contenant texte, mur, intérieur, arme

Description générée automatiquement



Ce genre de mécanisme fonctionne, car un journal est difficile à falsifier bien que facile à vérifier. C’est difficile à falsifier parce que l’éditorial fait mention d’événements qui se sont passés la veille, et qui n’auraient donc pas pu être prévus par le kidnappeur s’il avait pris la photo des semaines auparavant. Par le truchement de ces évènements, nous avons la preuve que la victime était bel et bien vivante au moment où le journal a été mis en vente.

Cette méthode révèle un des concepts fondamentaux à propos du temps : la causalité. La flèche du temps décrit la relation causale entre des événements. Sans causalité, pas de temps. La causalité est aussi la raison pour laquelle les fonctions de hachage cryptographique sont cruciales lorsqu’il s’agit d’horodater des documents dans le cyberespace : elles introduisent une relation causale. Puisque, d’un point de vue pratique, il est impossible de produire un hachage valide sans disposer du document en premier lieu, une relation causale entre le hachage et le document est introduite : la donnée en question existait préalablement à son hachage. En d’autres mots : Sans la propriété de non-réversibilité des fonctions à sens uniques, il n’y aurait aucune relation causale dans le cyberespace.


Une fois ce mécanisme de relation causale en place, on peut créer des schémas générant des chaînes d’événements liés causalement les uns aux autres ; lier A à B, B à C, etc. En ce sens, l’horodatage numérique sécurisé nous fait quitter un monde atemporel éthéré pour rejoindre un royaume doté d’une histoire numérique.

« La causalité fixe les évènements dans le temps. Si un événement a été déterminé par certains événements précédents, et détermine certains événements subséquents, alors il est intercalé en toute sécurité à sa place dans l’historique. »

— Bayer, Haber, Stornetta (1992)


Il va sans dire que la causalité est de la plus haute importance en matière de calcul économique. Et puisqu’un registre comptable ce n’est jamais que l’incarnation de calculs économiques réalisés entre de multiples participants coopérants les uns avec les autres, la causalité est essentielle à tous les registres comptables.

« Nous avons besoin d’un système permettant aux participants de se mettre d’accord sur un historique unique […]. La solution que nous proposons commence par un serveur d’horodatage. »

— Satoshi Nakamoto (2009)


Il est fascinant que toutes les pièces nécessaires au fonctionnement de Bitcoin existaient préalablement. Déjà en 1991, Haber et Stornetta introduisirent deux astuces rendant « difficile voire impossible la production de faux horodatages ». Le premier reposait sur un tiers de confiance, le second, plus élaboré et basé sur la confiance distribuée, n’en admet pas. Les auteurs identifiaient même l’inhérent problème derrière le fait de faire confiance à une chaîne causale d’évènements, ainsi que les prérequis nécessaires à une réécriture de l’historique. Selon leurs propres mots, « le seul trucage possible consiste à produire une fausse chaîne d’horodatage suffisamment longue pour qu’elle épuise la patience/les ressources du contradicteur le plus tenace que l’on puisse envisager ». Un type d’attaque similaire existe dans Bitcoin, ce que l’on appelle une attaque des 51% (nous reviendrons à cela plus loin).

Un an plus tard, Bayer, Haber et Stornetta améliorent leur travail originel et proposent d’utiliser des structures en arborescence plutôt que de simples listes liant les événements les uns aux autres. Ce que nous connaissons aujourd’hui comme des arbres de Merkle, sont simplement des structures de données permettant de générer efficacement des hachages déterministes à partir de plusieurs hachages initiaux. En ce qui concerne l’horodatage, ceci signifie que vous pouvez efficacement concaténer une multiplicité d’événements en un « tic-tac ». Dans le même papier, les auteurs proposent que le modèle de confiance distribué ainsi introduit en 1991 soit amélioré par la tenue régulière d’un « championnat du monde » au cours duquel un unique « vainqueur » sera déterminé et pourrait publier, aux yeux du plus grand nombre, comme dans un journal, le hachage résultant. Ça ne vous rappelle rien ?

Comme nous allons le voir, il se trouve que les journaux sont aussi un excellent moyen d’appréhender le second ingrédient qui compose le temps : l’imprévisibilité.

Causalité et Imprévisibilité

« Le temps n’est pas une réalité [hupostasis], mais un concept [noêma] ou une mesure [metron] … »

— Antiphon le Sophiste, De la Vérité (3ème siècle avant J.C.)

Bien que la causalité soit essentielle, elle n’est pas suffisante. Pour saisir le passage du temps, nous devons aussi comprendre l’imprévisibilité. Dans le monde physique, nous observons des phénomènes naturels pour décrire le passage du temps. Nous observons une augmentation générale de l’entropie et nous appelons cela la flèche du temps. Bien que dans la plupart des cas, les lois de la nature semblent ignorer la direction de la flèche du temps, d’un point de vue pratique, certaines choses ne peuvent être défaites. On ne peut « dé-brouiller » un œuf, comme on dit.

Similairement, des fonctions augmentant l’entropie sont nécessaires à l’établissement d’une flèche du temps dans le monde numérique. De la même manière qu’il est impossible de « dé-brouiller un œuf », il est, d’un point de vue pratique, impossible « dé-brouiller » un hachage SHA256 ou une signature cryptographique.

En l’absence de cette augmentation de l’entropie, nous pourrions voyager dans le temps, vers le passé, ou vers le futur, indistinctement. La suite des nombres de Fibonacci, par exemple, est causale mais non-entropique. Chaque nombre dans la séquence est la cause des deux précédents. En ce sens, c’est une chaîne causale. Cependant, ça ne peut pas être utilisé pour dire l’heure car c’est un phénomène totalement prévisible. De la même manière qu’un kidnappeur ne peut pas simplement se planter devant un calendrier indiquant la date actuelle, nous ne pouvons pas utiliser des processus prévisibles pour générer des preuves temporelles. On doit toujours recourir à quelque chose qui ne peut pas être prédit, comme la page principale d’un quotidien.

Bitcoin repose sur deux sources d’imprévisibilité : les transactions et la preuve-de-travail. Au même titre que personne ne peut prédire quelle sera l’aspect de la première page du journal de demain, personne ne peut prédire à quoi ressemblera le prochain bloc Bitcoin. On ne peut pas prédire quelles transactions seront incluses dans le bloc car on ne peut pas prédire quelles transactions seront effectuées dans le futur. Et plus important, on ne peut ni prévoir qui trouvera la solution du problème actuel de preuve-de-travail, ni ce que sera cette solution.

Contrairement au journal du kidnappeur, la preuve-de-travail créée un lien physique et direct avec ce qui vient de se passer. Ce n’est pas juste un enregistrement d’événements ; c’est l’événement lui-même. C’est la directionnalité probabiliste de la preuve-de-travail qui élimine la confiance de l’équation. La seule manière de trouver une preuve-de-travail valide, c’est d’effectuer de nombreuses tentatives, et effectuer une seule tentative demande un peu de temps. La somme probabiliste de ces tentatives est ce qui construit la chaîne temporelle qu’est Bitcoin.

En utilisant la causalité du chaînage par hachage et l’imprévisibilité de la preuve-de-travail, le réseau Bitcoin fournit un mécanisme permettant d’établir un historique indiscutable des événements observés.  Sans causalité, impossible de distinguer l’avant de l’après. Et, sans imprévisibilité, la causalité est inconséquente.

Ce qui est compris intuitivement par tout kidnappeur a été explicitement formulé par Bayer, Haber et Stornetta en 1992 : « Pour établir qu’un document a bel et bien été créé après un certain point dans le temps, il est nécessaire de faire référence à des évènements qui n’auraient pu être prédit avant qu’ils aient lieu ».


C’est la combinaison des concepts de causalité et d’imprévisibilité qui permet la création d’un « maintenant » artificiel dans ce qui est autrement le royaume numérique atemporel. Comme Bayer, Haber et Stornetta le font remarquer dans leur papier de 1991 : « la séquence des clients requêtant des horodatages et soumettant des hachages ne peut être connue à l’avance. De fait, si nous incluons dans le certificat signé, des bits issus de la séquence de requêtes précédente, alors nous savons que l’horodatage a bel et bien été effectué après les requêtes. […] Mais la condition d’inclusion dans le certificat, de bits issus du document précédent, peut également être utilisée pour résoudre le problème inverse, parce que l’entreprise chargée de l’horodatage ne peut émettre des certificats a posteriori, sauf si elle dispose déjà des requêtes actuelles. »

Toutes les pièces du puzzle étaient déjà là, à portée de main. Tout ce que Satoshi a fait c’est de les combiner ensemble d’une manière à éliminer de l’équation « l’entreprise chargée de l’horodatage ».

Preuve de Temps

« Causa latet : vis est notissima »

La cause est cachée, mais l’effet est connu

— Ovid, Les Métamorphoses, IV. 287 (8 ap. J.C.)



Récapitulons : pour utiliser de la monnaie dans le monde digital, nous devons avoir recours à des registres. Pour que ces registres soient fiables, un ordonnancement univoque des éléments est nécessaire. Ainsi, si nous voulons avoir une forme de monnaie numérique qui ne repose sur aucun tiers de confiance, nous devons éliminer toute entité qui créée et gère des horodatages, ainsi que toute entité chargée de donner l’heure.

Il fallait avoir le génie de Nakamoto pour découvrir la solution : « Afin d’implémenter un serveur d’horodatage distribué sur une base pair-à-pair, nous avons besoin d’utiliser un système de preuve-de-travail similaire au Hashcash d’Adam Back ».

On a besoin du système de preuve-de-travail parce qu’il nous faut quelque chose de nativement numérique. Une fois que l’on comprend que le royaume numérique est informationnel par nature, la conclusion évidente est que le calcul informatique est le seul recours. Dans un monde fait de données, la manipulation des données est la seule chose qui existe.

La preuve-de-travail fonctionne dans un environnement pair-à-pair parce qu’elle se passe de tiers de confiance, et elle se passe de tiers de confiance justement parce qu’elle est déconnectée du monde extérieur (elle ignore la date, les journaux, etc.). Elle ne repose que sur une chose, et une chose seulement : le fait que calculer requiert du travail, et que dans notre univers, le travail requiert de l’énergie et du temps.

Réconcilier les Temps

Sans la preuve-de-travail, on rencontrerait toujours le problème de l’Oracle parce que le royaume numérique et le royaume physique sont éternellement déconnectés l’un de l’autre. Les inscriptions sur votre liste de moutons ne sont pas les moutons eux-mêmes, la carte n’est pas le territoire, et ce qui apparaît à la première page du journal d’aujourd’hui n’est pas nécessairement ce qu’il s’est passé dans le monde réel hier. De la même manière, ce n’est pas parce que vous utilisez une horloge du monde réel pour horodater un document, que l’heure inscrite correspond bien à l’heure qu’il était.

Pour le dire sans détour, il n’y a juste aucune manière de s’assurer qu’une certaine donnée représente fidèlement la réalité, sauf si la réalité en question est inhérente à la donnée elle-même. Ce qui est brillant avec la preuve-de-travail à difficulté ajustable qu’utilise Bitcoin, c’est qu’elle génère sa propre réalité, ainsi que son propre espace-temps.

La preuve-de-travail fournit une connexion directe entre le royaume physique et le royaume informationnel. Plus exactement, il s’agit de la seule connexion qui peut être établie en l’absence de tout tiers de confiance. Toute alternative reposerait nécessairement sur des données extérieures.

La difficulté de minage d’un nouveau bloc Bitcoin est ajustée pour garantir que le lien fragile qui existe entre notre temporalité et celle de Bitcoin demeure intact. Comme une horloge, la difficulté se réajuste tous les 2016 « tic-tac ». Le but de ce réajustement est de maintenir l’intervalle entre les « tic-tac » égal à 10 minutes. Ce sont ces 10 minutes qui permettent une connexion stable entre les royaumes physiques et informationnels. Par conséquent, une notion humaine du temps est requise pour le réajustement des tic-tac de l’horloge Bitcoin. Un réajustement uniquement basé sur les blocs ne fonctionnerait pas puisqu’il serait totalement déconnecté de notre monde physique, et que le but même de ce réajustement est de nous empêcher, nous humains, de trouver des blocs trop vite (ou trop lentement).

Comme Einstein l’a démontré, le temps n’est pas une chose inerte. Il n’existe rien de similaire à « un temps absolu » sur lequel nous pourrions nous reposer. Le temps est relatif et la simultanéité est une chimère. Ce simple fait, rend les horodatages (surtout entre de longues distances) fondamentalement peu fiables, même en l’absence d’agents malveillants (C’est d’ailleurs pour ça que les horodatages des satellites doivent être réajustés périodiquement).

Pour Bitcoin, le fait que nos horodatages humains ne soient pas fiables n’est pas vraiment important. Idem, peu importe que nous n’ayons pas de cadre de référence objectif en premier lieu. Ils doivent seulement être assez précis pour permettre le calcul plus ou moins exact d’une moyenne de 2016 blocs. Pour garantir cela, un horodatage de bloc issu du monde réel est accepté seulement s’il remplit deux conditions :

  1. L’horodatage doit être supérieur à la médiane des 11 précédents ;
  2. L’horodatage doit être inférieur au temps ajusté du réseau augmenté de deux heures (le « temps ajusté du réseau » est simplement la moyenne des horodatages retournés par tous les nœuds connectés au vôtre).


Autrement dit, l’ajustement de la difficulté sert à maintenir un temps constant et pas un niveau constant de sécurité, de difficulté ou de dépense énergétique. C’est ingénieux parce qu’une bonne monnaie doit être chronophage à produire, et non pas énergivore. Lier la création de monnaie à l’énergie ne permettrait pas de garantir sa rareté puisque toute amélioration énergétique se traduirait par une inflation monétaire. Le temps est la seule ressource que nous ne pouvons pas produire. L’Ultime Ressource de Julian Simon fait remarquer ce point. Ceci fait de Bitcoin la monnaie ultime, car Bitcoin est directement lié à la ressource ultime de notre univers : le temps.

L’ajustement de la difficulté est essentiel car, en son absence, l’horloge de bitcoin aurait tendance à tourner de plus en plus vite à mesure que de nouveaux mineurs rejoignent le réseau, ou à mesure des améliorations de leurs machines. On reviendrait alors rapidement au problème de coordination que Bitcoin se propose de résoudre. En dessous d’un certain temps entre les blocs, environ 50 millisecondes, il serait techniquement impossible d’établir un état partagé, même d’un point de vue théorique. La lumière met environ 66 millisecondes à voyager d’un bout à l’autre de la Terre. Ainsi, même si nos routeurs et nos ordinateurs étaient parfaits, on reviendrait à la case départ : il serait impossible de déterminer, de deux évènements, lequel est arrivé en premier. Sans un ajustement périodique des tic-tac de Bitcoin, on arriverait au problème insoluble qui consiste à résoudre le problème de coordination plus vite que la vitesse de la lumière. Le temps est aussi à la racine du problème de l’instabilité cryptographique dont nous avons discuté au chapitre 1. La cryptographie fonctionne à cause d’une asymétrie temporelle : il est rapide de fabriquer un mur cryptographique mais très long de le détruire (sauf si vous avez la clé).

De fait, dans un certain sens, la preuve-de-travail (et l’ajustement de la difficulté qui va avec) ralentit artificiellement le temps, en tout cas depuis la perspective du réseau Bitcoin. En d’autres termes : Bitcoin donne un rythme d’une fréquence suffisamment basse pour permettre une marge de latence assez ample dans la communication entre les pairs. Tous les 2016 blocs, l’horloge interne de Bitcoin se réajuste de manière à ce qu’en moyenne, seul un bloc valide sera trouvé toutes les 10 minutes.

D’un point de vue extérieur, Bitcoin canalise dans un univers parallèle, doté de sa propre conception du temps et de l’espace, le chaos bordélique que représente la propagation asynchrone de messages à l’échelle planétaire.  Les transactions dans le mempool sont atemporelles du point de vue du réseau Bitcoin. C’est seulement quand une transaction est incluse dans un bloc valide qu’elle se voit assigner une valeur temporelle : le numéro du bloc dans lequel elle est insérée.

Une image contenant texte, portable, capture d’écran

Description générée automatiquement
Le mempool désigne l’espace de mise en mémoire des transactions propagées mais pas encore validées.

Il est difficile d’exagérer l’élégance de cette solution. Dès lors que vous avez la capacité de produire votre propre définition du temps, il est trivial de définir ce qui est avant et ce qui est après. En retour, se mettre d’accord sur ce qui s’est passé, dans quel ordre, et par conséquent, qui doit à qui, devient également trivial.

L’ajustement de la difficulté garantit que les tic-tac du métronome interne de Bitcoin demeurent relativement constants. C’est le chef d’orchestre de Bitcoin. C’est ce qui fait que la musique continue.

Mais pourquoi peut-on se reposer sur le travail en premier lieu ? la réponse est triple. On peut se reposer dessus parce que le calcul informatique requiert du travail, que le travail demande du temps, et que le travail en question (deviner des nombres aléatoires) ne peut pas être fait de manière efficiente.

Le Temps Probabiliste

Trouver un nonce valide pour un bloc Bitcoin est un jeu de devinettes. Cela ressemble terriblement à un lancer de dé, un lancer de pièce, ou un tour de roulette. En essence, il s’agit de trouver un nombre aléatoire astronomiquement large. Et on ne progresse pas vers une solution au fur et à mesure. Soit on gagne, soit on perd.

À chaque fois que vous lancez une pièce, la probabilité de tirer pile est 50%, même si vous l’avez lancé préalablement 20 fois et obtenu face à chaque fois. De la même manière, à chaque fois que vous attendez l’arrivée d’un nouveau bloc, la probabilité qu’il soit découvert est de ~0,16%. Peu importe quand le dernier bloc a été trouvé. Le temps approximatif d’attente avant le prochain bloc reste le même : ~10 minutes.

Il en résulte que chaque tic-tac individuel de cette horloge est imprévisible. Par rapport à nos horloges habituelles, celle-ci à l’air spontanée et imprécise. C’est pourtant inconséquent, comme le fait remarquer Gregory Trubetskoy : « Il n’est pas important que cette horloge soit imprécise. Ce qui compte c’est que ce soit la même horloge pour tout le monde et que l’état de la chaîne puisse être lié aux tic-tac de l’horloge de manière univoque ». L’horloge de Bitcoin est peut-être probabiliste, mais elle n’est pas illusoire.

« Le Temps est une illusion, l’heure du déjeuner en est une double »

— Douglas Adams (1979)


Le moment présent peut, néanmoins, être une totale illusion dans Bitcoin. Puisqu’il n’y a pas d’autorité centrale dans le réseau, des situations étranges peuvent survenir. Quoiqu’improbable, il est possible que deux blocs valides soient trouvés au même moment (une fois de plus : mes excuses aux physiciens), ce qui induit que l’horloge fait tic-tac à deux endroits simultanément. Cependant, comme le contenu des blocs risque d’être différent, ils contiendront deux historiques différents, tous deux valides.

C’est ce qu’on appelle une séparation de chaîne et c’est un processus naturel du consensus de Nakamoto. Tel un essaim d’oiseau qui va se séparer un moment pour se réunir par la suite, les nœuds du réseau bitcoin vont, après un certain temps, éventuellement converger vers un historique partagé, grâce à la nature probabiliste du jeu de devinette.

Le consensus de Nakamoto stipule seulement que l’historique valide est celui représenté par la chaîne la plus lourde, i.e. la chaîne qui a été produite avec le plus de preuve-de-travail. Ainsi, si nous avons deux historiques A et B, certains mineurs vont travailler sur l’historique A et d’autres sur l’historique B. Dès lors que l’un d’entre eux aura trouvé un prochain bloc valide, le reste du groupe l’acceptera, comprendra qu’il était sur le mauvais historique et reviendra du coup vers la chaîne la plus lourde (la chaîne qui représente la « vérité » dans Bitcoin est littéralement écrite par les vainqueurs).

« Le récipiendaire a besoin de la preuve, qu’au moment de chaque transaction, la majorité des nœuds s’accordait sur le fait qu’elle était arrivée en premier. […] Quand il existe de multiples versions de double-dépense d’une même transaction, une et seulement une seule sera finalement valide. Le récipiendaire du paiement doit attendre environ une heure pour être certain qu’elle soit valide. Dans ce laps de temps, le réseau résoudra n’importe quelle course à la double-dépense. »

— Satoshi Nakamoto (2009)


Dans ce simple énoncé se trouve le secret du problème de coordination en contexte distribué. C’est ainsi que Satoshi résolu le problème de « paiement simultané » que nos associés d’affaire fictifs ont rencontré précédemment. Il l’a résolu une bonne fois pour toute, au diable les effets de la relativité !

Du fait de cette nature probabiliste de l’horloge Bitcoin, le moment présent (ce que l’on appelle le sommet de la chaîne) est toujours incertain. Le passé (les blocs enterrés sous le sommet de la chaîne) est toujours plus certain.

« Plus le besoin de compréhension est important, plus loin est le point dans l’histoire auquel l’on doit revenir. »

— Gordon Clark, Une Perspective Chrétienne des Hommes et des Choses, P.58 (1951)

Par conséquent, il se peut que parfois, pour certains pairs, l’espace d’un tic-tac ou deux, l’horloge Bitcoin marche à rebours. Si votre sommet de chaîne (le moment présent) perd face à un sommet de chaîne concurrent, votre horloge va d’abord rembobiner avant de bondir vers l’avant, et ainsi remplacer les quelques tic-tac récents que vous pensiez déjà être de l’histoire ancienne. Si votre horloge est probabiliste, votre compréhension du passé doit l’être également.

« Tic-tac tic-tac tic-tac – quelle heure est-il ?
Tic-tac tic-tac cela fini en c619.
Es-tu sur que c’est exact ? Sommes-nous peut-être en retard ?
Qu’importe les absolus : avant neuf vient huit.
Cette horloge n’est pas exacte ; parfois elle va à rebours.
Le temps exact implique un centre ; c’est là la racine de cette malédiction !
Pourtant cette horloge continuer de tiquer, toc-tic et toc-tic
l n’y a rien à gagner en trichant ; juste tic-toc et prochain bloc. »

— A Funny Little Rhyme on Bitcoin and Time (2020)

Conclusion

« Le Temps demeure un des grands mystères de la physique, un qui remet en question la définition même de ce qu’est la physique »

— Jorge Cham et Daniel Whiteson : Nous n’en savons rien : Un Guide vers l’Univers Inconnu, PP.117-118 (2017)


Garder la trace des choses dans le royaume informationnel implique de garder la trace d’une séquence d’événements, ce qui en retour demande de garder trace du temps. Garder trace du temps, c’est se mettre d’accord sur un « maintenant » (un moment dans le temps qui lie éternellement le passé révolu et le futur incertain). Dans Bitcoin, ce « maintenant » c’est le sommet de la chaîne de preuve-de-travail la plus lourde.

Deux composants sont essentiels à la structure du temps : les liens causaux et l’imprévisibilité des événements. Les liens causaux sont nécessaires à la définition d’un passé, et l’imprévisibilité permet de construire le futur. Si la séquence des évènements était prévisible, il serait possible de voyager dans le futur. Si les étapes individuelles de la séquence n’étaient pas liées entre elles, il serait trivial de modifier le passé. Du fait de cette notion interne du temps, il est incroyablement difficile de tromper Bitcoin. Pour y parvenir, on devrait pouvoir réécrire le passé ou prédire l’avenir. Or, la chaîne temporelle de Bitcoin l’empêche.

« Une blockchain est une chaîne de blocs »

— Peter Todd

L’idée nouvelle découverte par Satoshi c’est comment plusieurs acteurs peuvent indépendamment se mettre d’accord sur un historique d’événements en l’absence de coordinateur central. Il trouva un moyen de mettre en place un système d’horodatage décentralisé qui (a) ne requiert pas d’entreprise ou de serveur chargé de l’horodatage, (b) ne requiert aucun médium physique, comme un journal, faisant office de preuve, et (c) peut garder des tic-tac plus ou moins constants, même dans le cadre d’un monde où les processeurs sont de plus en plus rapides.

Mesurer le temps requiert causalité, imprévisibilité et coordination. Dans Bitcoin, la causalité est fournie par des fonctions à sens unique : les fonctions de hachage et les signatures cryptographique qui sont au cœur du protocole. L’imprévisibilité est fournie à la fois par le mécanisme de preuve-de-travail et par l’interaction entre les pairs : vous ne pouvez savoir d’avance ce que d’autres sont en train de faire, et vous ne pouvez savoir à l’avance quelle sera la solution du problème de preuve-de-travail. La coordination est rendue possible par l’ajustement de la difficulté, la recette secrète qui lie le temps de Bitcoin au nôtre. Sans ce pont entre les royaumes physique et informationnel, il serait impossible de se mettre d’accord sur l’heure qu’il est en se reposant uniquement sur des données.

Bitcoin c’est le temps de biens des manières. Ces unités sont du temps stocké parce qu’elles sont de la monnaie, et son réseau est du temps parce que c’est une horloge décentralisée. Le battement ininterrompu de cette horloge est ce qui donne vie à toutes les propriétés magiques de Bitcoin. Sans cela, la danse subtile de Bitcoin ne serait que déambulation. Mais grâce à elle, tout le monde sur Terre a accès à quelque chose de véritablement merveilleux : la Monnaie Magique d’Internet.

Laisser un commentaire

Panier

En savoir plus sur Institut Bitcoin

Abonnez-vous pour poursuivre la lecture et avoir accès à l’ensemble des archives.

Continue reading