Le bit gold de Nick Szabo : l’or numérique avant Bitcoin
Comme nous l’avons constaté dans le premier article sur la préhistoire de Bitcoin, ce dernier n’est pas sorti de nulle part et a émergé d’un contexte général mêlant technique, idéologie et expérimentations. Au cours des années 1990, les cypherpunks, désireux de créer une monnaie numérique, mais conscients que les systèmes comme eCash et e-gold ne pouvaient pas fonctionner à cause de leur architecture centralisée, ont réfléchi à des modèles qui ne dépendaient pas d’un tiers de confiance. En 1998, Wei Dai proposait ainsi b-money, un modèle distribué de devise électronique. La même année, un individu nommé Nick Szabo conceptualisait un système d’or numérique décentralisé : bit gold.
Cliquez ici pour lire le précédent opus »
Le système bit gold (toujours orthographié en minuscules sauf en début de phrase) est un précurseur de Bitcoin, reconnu comme tel a posteriori par Satoshi Nakamoto en 2010 :
« Bitcoin est une implémentation de la b-money proposée par Wei Dai sur la liste de diffusion Cypherpunks en 1998 et du Bitgold proposé par Nick Szabo. »
Ce système était censé gérer la création et les échanges d’une ressource virtuelle appelée aussi le bit gold. Contrairement à l’e-gold qui était garanti par de l’or physique, ou la b-money indexée en théorie sur un panier de marchandises, le bit gold ne devait être adossé à aucun autre bien, mais posséder une rareté infalsifiable, et constituer ainsi un or entièrement numérique. Nick Szabo avait donc, avant Bitcoin, prophétisé qu’une unité électronique pouvait obtenir de la valeur sans pour autant être liée à une autre marchandise au préalable.
Tout comme b-money, bit gold n’a jamais été implémenté, mais constitue une concept assez intéressant pour que l’on s’attarde sur son fonctionnement et sur son créateur, Nick Szabo.
Nick Szabo, un esprit universel
Nicholas J. Szabo, est un informaticien, juriste et cryptographe américain connu pour ses travaux sur les contrats numériques (appelés aujourd’hui smart contracts) et sur la monnaie, ainsi que pour son implication dans le mouvement crypto-anarchiste des années 1990. Avec Wei Dai et Hal Finney, il fait partie des personnes soupçonnées d’être Satoshi Nakamoto et d’avoir inventé Bitcoin.
Nick Szabo naît aux États-Unis vraisemblablement à la fin des années 60, d’un père hongrois ayant fui le régime soviétique après l’insurrection de Budapest de 1956, et d’une mère américaine. Il a une enfance studieuse, il apprend à lire très tôt grâce à sa mère, et s’initie à la programmation en Basic sur l’Apple II.
À la fin des années 80, Szabo étudie à l’université de Washington dans le nord-ouest des États-Unis. Il y obtient un diplôme de sciences informatiques en 1989, à peu près à la même époque que Wei Dai. Il travaille ensuite pour des entreprises technologiques comme JPL, Cuesta Technology ou Arcot Systems. En particulier, il occupe un poste de consultant pendant 6 mois pour Digicash, l’entreprise de David Chaum qui développe et qui gère le système eCash.
De son expérience à Digicash, il apprend les techniques et les problématiques liées aux monnaies numériques. Mais surtout il retiendra le rôle néfaste (et, finalement, fatal) des tiers de confiance.
Dans les années 1990, il s’implique pleinement dans le courant cypherpunk, si bien qu’il déménage dans la région de la baie de San Francisco pour assister aux réunions en personne auxquelles participent régulièrement Timothy May et Hal Finney. Sur Internet, il contribue à différentes listes de diffusion crypto-anarchistes et mène notamment le mouvement d’opposition contre la puce Clipper, un cryptoprocesseur conçu par la NSA ayant pour but de faciliter l’écoute des communications. Comme beaucoup d’autres cypherpunks de cette époque, il s’intéresse aussi à la science-fiction et à l’extropianisme, un type optimiste de transhumanisme désireux d’améliorer radicalement la condition humaine à l’aide de la technologie.
Nick Szabo est également connu pour être la personne qui a théorisé les smart contracts, ces programmes autonomes qui s’exécutent sans le besoin d’un tiers de confiance, et qui sont aujourd’hui mis en application grâce à Bitcoin et Ethereum. En 1994, il invente le terme smart contract qu’il définit comme “un protocole de transaction informatisé qui exécute les termes d’un contrat” dans son premier écrit public sur le sujet. En 1996, il publie l’article Smart Contracts: Building Blocks for Digital Markets dans le magazine Extropy, et en 1997, il finit de formaliser le concept dans son essai Formalizing and Securing Relationships on Public Networks.
Son intérêt pour les contrats le pousse à retourner étudier dans les années 2000, afin d’appronfondir sa connaissance de la loi humaine et d’affiner sa compréhension. En 2006, il obtient un diplôme en droit (Juris Doctor) de l’université George-Washington à Washington D.C.
Nick Szabo est donc une personne curieuse, éclectique, qui s’intéresse à beaucoup de domaines. Tout au long des années, il écrira de manière prolifique, d’abord sur sa page personnelle, puis sur son blog, Unenumerated, un endroit où “la liste des sujets […] est si vaste et si variée qu’elle ne peut pas être énumérée”. Nick Szabo parlera ainsi (entre autres) de droit, d’informatique, d’économie, de politique, de biologie, et cette diversité fera qu’il sera considéré par certains comme un “esprit universel”.
Une vision libérale de la monnaie
Parmi toutes les choses dont Nick Szabo a pu parler, la monnaie a toujours été un sujet central pour lui. De ce fait, il développé une vision originale autour de ce sujet que “quasiment personne ne comprend en réalité”, et c’est cette vision qui l’a poussé à concevoir bit gold.
Dès 1998, Nick Szabo possède une conception libérale du monde, et considère, à l’instar de nombreux auteurs libéraux comme John Locke, Frédéric Bastiat ou Lysander Spooner, que le droit commun provient de la nature de l’homme, et non pas du contexte politique. Unenumerated, le titre de son blog actuel, n’évoquera pas seulement la diversité des sujets abordés, mais fera également référence aux unenumerated rights, les droits naturels qui ne sont pas inscrits dans la loi positive, qui sont évoqués dans le Neuvième amendement de la Constitution des États-Unis. Il a aussi une bonne connaissance de l’école autrichienne (Menger, Hayek, von Mises, Rothbard, Hoppe), ce qui va l’amener à considérer que la monnaie émerge du marché et non de l’intervention de l’État.
Dans son essai central écrit en 2002, Shelling Out: The Origins of Money, il décrit ainsi comment une protomonnaie a pu émerger dans les sociétés du Paléolithique supérieur. Sa thèse, qui repose sur les travaux évolutionnistes de John Maynard Smith et de Richard Dawkins, est que les êtres humains ont été poussés (pour des raisons partiellement génétiques) à collectionner des objets qui satisfaisaient des propriétés précises comme les coquillages, les dents d’animaux, les lames, les pierres précieuses ou les métaux précieux, et le plus souvent à les assembler sous forme de bijoux (colliers, bracelets, etc.) Ce trait a permis à Homo Sapiens de devenir l’espèce dominante, en aidant au développement de l’altruisme en dehors des liens de parenté, et en lui permettant d’aller au-delà des instincts propres aux autres espèces. Bien qu’elle n’avait pas encore un rôle de monnaie à part entière, la protomonnaie servait aux chasseurs-cueilleurs pour l’échange entre tribus antagonistes, l’héritage, le mariage, le paiement de tributs ou le règlement de disputes.
Dans son étude de ce qu’il nomme les “collectionnables”, Nick Szabo établit ainsi les critères qui font qu’un bien peut convenir à un usage protomonétaire. Les caractéristiques que ce bien doit posséder sont les suivantes :
- Il résiste à la perte accidentelle et le vol. Au Paléolithique, cela signifiait qu’il était aisément transportable par une personne et qu’il se cachait facilement.
- Sa valeur est difficile à contrefaire. Cela implique, entre autres, une cherté infalsifiable (unforgeable costliness) du bien, c’est-à-dire un coût nécessaire pour le produire, ce qui le rend rare.
- Cette valeur peut être précisément approximée par de simples observations ou mesures. Ces observations doivent avoir une intégrité fiable et un coût moindre.
Bien sûr, au fil du temps et avec la progressive mondialisation de la planète, beaucoup de ces protomonnaies ont disparu pour faire de la place aux collectionnables qui satisfaisaient le plus ces propriétés : les pièces de métal précieux, de préférence frappées par un gouvernement. Néanmoins, certaines pratiques anciennes se retrouvent encore dans le langage contemporain, comme le verbe “to shell out” en anglais américain qui signifie simplement “payer” et qui provient du paiement en coquillages pratiqué par les amérindiens et repris par les colons.
Ce n’est que très récemment dans l’histoire évolutive de l’être humain que la monnaie a perdu l’une de ces propriétés : la fin de l’étalon-or et l’avènement des monnaies fiat au cours du XXème siècle ont en effet marqué la disparition de cette cherté infalsifiable rendant possible la fonction de réserve de valeur de la monnaie. Comme le dit Szabo :
« Le problème, en bref, est que la valeur de notre monnaie repose actuellement sur la confiance en un tiers. Comme beaucoup d’épisodes d’inflation et d’hyperinflation du XXème siècle l’ont démontré, ceci n’est pas une situation idéale. »
L’idée de Szabo est donc de créer une monnaie numérique selon cette conception : une devise rare, dont il serait impossible d’augmenter la masse monétaire en dehors des règles prévues, qui ne serait indexée sur aucun autre actif et dont la valeur existerait “purement pour ses fonctions monétaires”. Ce concept, il l’a appelé bit gold.
Bit gold, un système de monnaie de réserve
En 1994, peu après s’être impliqué dans le mouvement cypherpunk, Nick Szabo crée sa propre liste de diffusion privée appelée libtech-l. Celle-ci regroupe un certain nombre de personnes dont Wei Dai, Hal Finney, ainsi que les économistes Larry White et George Selgin. Le sujet de la monnaie et la théorie de la banque libre sont discutés passionnément, ce qui donnera l’idée à Szabo de concevoir un système de monnaie de réserve, au-dessus duquel serait construit un système de paiement.
Au cours de l’année 1998, Szabo développe son idée de bit gold qu’il décrit sur cette liste de diffusion (sur laquelle Wei Dai décrira par ailleurs sa b-money). Sur son site personnel, il héberge à l’époque une ébauche de livre blanc intitulée Bit Gold: Towards Trust-Independent Digital Money, qui contient surtout les échanges qu’il a pu avoir avec Hal Finney. Bit gold sera finalement présenté au grand pubic en décembre 2005 dans un article publié sur Unenumerated.
La logique derrière bit gold est la minimisation de la confiance. Cette dernière, en réduisant le rôle des tiers de confiance au minimum, permettrait de reproduire la cherté infalsifiable des métaux précieux dans le cyberespace.
L’élément central du protocole est que la création monétaire se fait par preuve de travail : les morceaux de bit gold sont ainsi créés grâce à la puissance de calcul des ordinateurs. Chaque solution est calculée à partir d’une autre, formant une chaîne de preuve de travail. Pour ce faire, bit gold n’utilise pas un algorithme basé sur l’inversion partielle d’une fonction de hachage comme Hashcash (et comme Bitcoin), mais ce que Szabo appelle une secure benchmark function. L’idée, vaguement définie par Szabo, est de mesurer précisément la difficulté et donc d’évaluer la valeur d’une solution.
Le processus est le suivant :
- Une information de référence publique
c0
(“challenge bits”) est créée. - Un “mineur de bit gold” génère la preuve de travail
s0
à partir dec0
. - Cette preuve de travail est horodatée (
t0
) de manière sécurisée et distribuée grâce à de multiples services d’horodatage. - Le mineur ajoute cette preuve de travail et son horodatage au registre de propriété, qui est un registre distribué.
- La preuve de travail devient la nouvelle information de référence
c1
, à partir de laquelle est calculée une nouvelle preuve de travails1
, etc.
Dans ce modèle, ce sont les preuves de travail horodatées qui représentent les morceaux de bit gold. Afin de vérifier la validité d’un morceau, n’importe qui peut consulter l’information de référence, la preuve de travail et l’horodatage qui sont des données publiques.
Les échanges se font par le biais d’un registre public de titres de propriété décrit par Szabo dans l’article Secure Property Titles with Owner Authority. Les utilisateurs sont identifiés par leur clé publique et signent les transactions grâce à leur clé privée. Le registre est vérifié et maintenu par un réseau de serveurs appelé “club de propriété”, serveurs qui se mettent d’accord sur qui possède quoi par l’algorithme de tolérance aux pannes byzantines appelé Byzantine Quorum System. Ainsi, n’importe qui peut se référer à ce registre pour connaître le propriétaire d’un morceau de bit gold.
Bien évidemment, le système imaginé par Szabo possède quelques problèmes conceptuels. Tout d’abord, le caractère fixe des règles fait que les morceaux de bit gold produits ne sont pas fongibles, c’est-à-dire qu’ils ne peuvent pas être mélangés entre eux. En effet, avec l’augmentation de l’efficacité des machines ou l’avancement de la cryptanalyse, un morceau de bit gold produit à une époque peut ne pas avoir la même valeur qu’un morceau produit des années plus tard. C’est pourquoi Szabo imagine un modèle de marchés mis en place pour évaluer la valeur de chaque morceau de bit gold, l’idée étant que ces morceaux de bit gold seraient combinés et divisés pour former une réelle devise échangeable et fongible.
Ensuite, outre le problème de la fongibilité, afin de situer les preuves de travail dans le temps, bit gold repose sur des services d’horodatage centralisés. Ces derniers, bien qu’ils soient censés être multiples et indépendants, forment des points de défaillance uniques.
Enfin, pour son registre de propriété, bit gold repose sur un protocole de consensus classique qui requiert que les serveurs soient choisis à l’avance, connus par tous, et que 66 % d’entre eux se comportent bien, c’est-à-dire qu’ils ne mentent pas sur les informations qu’ils relaient. Le système n’est ainsi pas très robuste et la seule solution (très imparfaite) qu’imagine Szabo en cas d’attaque est une migration des services honnêtes et qui conduirait à la formation d’un nouveau club de propriété – que les serveurs honnêtes copient le registre et forment un nouveau club de propriété. “Si les règles sont violées par les votants qui gagnent, les perdants qui ont raison peuvent quitter le groupe et former un nouveau groupe, héritant des anciens titres”, explique-t-il. Une telle mesure serait aujourd’hui appelée un hard fork, et un exemple proche serait la création d’Ethereum Classic en 2016.
À l’époque, bit gold est pensé comme un système de règlement permettant de gérer une monnaie de réserve rare, et au-dessus duquel serait construit un système de paiement, qui pourrait être, par exemple, un modèle proche de eCash. Nick Szabo réfléchira longtemps à comment mettre en application son idée, redemandant même de l’aide le 10 avril 2008, dans un commentaire sur Unenumerated :
« [Bit gold] bénéficierait grandement d’une démonstration, d’un marché expérimental (avec par ex. un tiers de confiance pour se substituer à la sécurité complexe nécessaire au système réel). Quelqu’un veut m’aider à en programmer une ? »
Cependant, l’implémentation de bit gold ne verra jamais le jour à cause de ses défauts majeurs, et il faudra attendre quelques mois pour qu’un système qui les corrige se matérialise : Bitcoin.
Ce que Bitcoin doit à bit gold et à Nick Szabo
On ne peut pas s’empêcher de constater que bit gold et Bitcoin sont très proches conceptuellement : outre leurs noms respectifs, on retrouve en effet les éléments constitutifs de bit gold dans Bitcoin (une chaîne de preuve de travail, un service d’horodatage et un registre de propriété) à la seule différence que, dans ce dernier, ces trois élements sont fusionnés en un seul concept : la chaîne de blocs. Bit gold ressemble donc beaucoup à Bitcoin, à tel point que certains s’imaginent que Bitcoin n’est qu’une mise en pratique directe de l’idée derrière bit gold, allant jusqu’à affirmer que Nick Szabo est Satoshi Nakamoto. Cependant, en apparence, tout indique que ce n’est pas le cas.
Comme on l’a vu dans l’article précédent, quand il finit de concevoir Bitcoin lors de l’été 2008, Satoshi n’a pas connaissance de la b-money de Wei Dai et apprend son existence grâce à un échange avec Adam Back. Il contacte Wei Dai par courriel pour avoir des précisions sur l’année de publication de de la description de b-money et pour lui demander son avis sur ce qui deviendra Bitcoin. Dai suggérera que Satoshi ne connaissait pas le bit gold de Nick Szabo non plus :
« Dans les premiers courriels que Satoshi m’a envoyés, il semblait ignorer les idées de Nick Szabo. »
Wei Dai dira aussi au passage que Nick Szabo n’est pas Satoshi :
« [Satoshi] parle de comment bitcoin ‘étend mes idées à un système complètement fonctionnel’ et ‘atteint presque tous les objectifs que je m’étais proposé de résoudre dans mon papier sur b-money’. Je ne vois pas pourquoi Nick, s’il était Satoshi, me dirait des choses comme cela en privé. »
Ainsi, le système imaginé par Nick Szabo n’est pas cité dans le livre blanc au moment de sa publication, le 31 octobre 2008. Satoshi apprend l’existence du système imaginé par Szabo plus tard, probablement grâce à l’intervention de Hal Finney sur la Cryptography Mailing List le 7 novembre, qui remarque la similarité du bitcoin avec le bit gold de Szabo :
« Je crois aussi qu’il y a une valeur potentielle dans une forme de jeton infalsifiable dont le taux de production est prédictible et qui ne peut pas être influencé par des personnes corrompues. Ceci serait plus comparable à l’or qu’aux monnaies fiat. Nick Szabo a décrit il y a plusieurs années ce qu’il appelait ‘bit gold‘ et ceci serait une implémentation de ce concept. »
La référence à bit gold est finalement ajoutée sur bitcoin.org au début de l’année 2009, aux côtés de la b-money de Wei Dai.
De son côté, Nick Szabo apprend visiblement l’existence de Bitcoin assez tôt et il l’évoque dans un article de blog le 7 mai 2009. Il est néanmoins plutôt sceptique au début, un tel projet n’étant pas si nouveau pour lui. Deux ans plus tard, soit à peu près au même moment où Satoshi Nakamoto disparaît complètement, Szabo écrit un texte sur Bitcoin, où il explique pourquoi le concept a mis autant de temps à arriver, et quels sont les problèmes que bit gold n’a pas su résoudre.
À partir de la fin de l’année 2013, avec la montée du cours, le soupçon Satoshi se répand au sein du grand public, notamment à cause d’études linguistiques qui révéleraient une proximité entre les termes utilisés par Szabo et par Nakamoto. Nick Szabo dément fermement. Comme il le dira à Nathaniel Popper en mai 2015 :
« Comme je l’ai déclaré à plusieurs reprises auparavant, toute cette spéculation est flatteuse, mais incorrecte — je ne suis pas Satoshi. »
À partir de 2015, il devient plus actif dans l’écosystème des cryptomonnaies, en intervenant sur divers podcasts et en donnant des présentations de sa conception de la monnaie et des contrats autonomes. Il participe notamment à la devcon 1 d’Ethereum, un projet qui lui paraît prometteur, mais dont il se désintéressera par la suite.
L’année 2015 marque aussi l’apogée du débat sur la scalabilité de Bitcoin, débat durant lequel Nick Szabo se prononce en faveur d’une stricte limitation de la taille des blocs et d’un passage en seconde couche, par l’intermédiaire de solutions comme les chaînes latérales ou le réseau Lightning. Et pour cause : cette méthode est tout à fait conforme au modèle à deux couches qu’il imaginait pour bit gold, avec une couche de base dont le rôle est de garantir la rareté infalsifiable de la monnaie, et une couche supérieure pour réaliser les paiements effectifs.
Il est difficile de mesurer l’impact qu’a eu l’opinion de Szabo sur le débat, mais Bitcoin a finalement suivi sa conception des choses. Ainsi, à défaut d’inspirer originellement Bitcoin (ce qu’envisageait Satoshi Nakamoto était sensiblement différent), bit gold aura influencé son évolution : en effet, la visions selon laquelle Bitcoin devrait servir de système de monnaie de réserve au-dessus duquel fonctionneraient des surcouches semble aujourd’hui largement répandue dans la communauté.
Bit gold constitue donc un prédécesseur majeur de Bitcoin : une monnaie numérique, possédant une rareté infalsifiable garantie par la preuve de travail, dont la valeur émerge directement de cette caractéristique, et non d’un adossement à une autre marchandise. Bien que l’influence de bit gold sur Bitcoin n’ait pas été directe (à supposer que Wei Dai et Nick Szabo ne mentent pas), la création de Satoshi Nakamoto a émergé du même terreau technique et idéologique. De plus, comme on vient de le voir, les idées véhiculées par Nick Szabo ont joué un rôle dans l’évolution de Bitcoin, dont la fonction principale tend aujourd’hui à devenir un système de monnaie de réserve semblable à l’or numérique.
À Nick Szabo, il a manqué la mise en œuvre. Concentré sur la théorie monétaire, qu’il a étudié en long, en large et en travers, il n’a jamais concrètement essayé de mettre son système en pratique. Cependant, d’autres individus ont tenté après lui d’implémenter des idées similaires : c’est le cas de Hal Finney, et de son système de preuves de travail réutilisables (RPOW) mis au point en 2004.
Cliquez ici pour découvrir la suite »
Pour écrire cet article, je me suis inspiré du texte d’Aaron van Wirdum sur bit gold, The Genesis Files: With Bit Gold, Szabo Was Inches Away From Inventing Bitcoin, ainsi que de l’article de “In Search Of Satoshi” intitulé Bit Gold and Bitcoin. J’ai bien évidemment utilisé les éléments écrits par Nick Szabo lui-même, disponibles sur les archives de sa page personnelle (www.best.com/~szabo/, szabo.best.vwh.net), sur son blog Unenumerated et sur son compte Twitter.