"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".
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.
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 :
- L’horodatage doit être supérieur à la médiane des 11 précédents ;
- 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.
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
Il 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.