La b-money de Wei Dai : une préfiguration conceptuelle de Bitcoin

Comme nous l’avons vu dans l’article d’introduction, Bitcoin n’est pas sorti de nulle part et a émergé d’un contexte général mêlant technique, idéologie et expérimentations. Cependant, les systèmes de monnaies numériques ayant eu du succès avant Bitcoin, comme e-gold et Liberty Reserve, ont connu un destin tragique, et ont dû cesser de fonctionner sous la contrainte des autorités. À côté de cela, les cypherpunks, conscients que les États ne laisseraient jamais de telles devises se développer librement, ont réfléchi à une autre manière de procéder en construisant des modèles décentralisés qui résisteraient à la contrainte légale. C’est le cas du cryptographe Wei Dai et de sa b-money, qu’il a conceptualisé en 1998 mais qui n’a jamais été mise en pratique.

Cliquez ici pour lire le précédent opus »

Le 20 juillet 2010, au sein d’une discussion sur le forum Bitcointalk parlant de la potentielle suppression de l’article concernant Bitcoin par Wikipédia, Satoshi Nakamoto écrivait :

« 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. »

Cette phrase est restée gravée dans les esprits, à tel point que la b-money et le bit gold sont régulièrement cités comme des précurseurs du bitcoin. Cependant, comme on le verra, Satoshi Nakamoto n’avait pas connaissance de ces deux tentatives au moment de concevoir son système. En réalité, ce message servait à montrer comment Bitcoin s’inscrivait dans l’histoire des monnaies électroniques et pourquoi il devrait être considéré sérieusement par les contributeurs de Wikipédia.

Aujourd’hui, nous allons donc nous intéresser au premier exemple donné par Satoshi Nakamoto : la b-money, présentée en 1998 et citée en référence dans le livre blanc de Bitcoin. Mais avant cela, découvrons qui est son créateur, Wei Dai.

Citation Wei Dai b-money livre blanc Bitcoin
Citation de b-money dans le livre blanc de Bitcoin

Wei Dai, le cryptographe philosophe

Wei Dai est un cryptographe de renommée mondiale, notamment connu pour avoir participé activement au mouvement crypto-anarchiste durant les années 1990. Avec Nick Szabo et Hal Finney, il fait partie des personnes soupçonnées d’être Satoshi Nakamoto et d’avoir inventé Bitcoin.

Comme tout cypherpunk qui se respecte, Wei Dai est très secret et contrôle méticuleusement les informations qu’il laisse passer sur Internet. C’est pour cela que nous ne disposons que de peu de détails personnels sur cet homme. Nous savons cependant qu’il est d’origine chinoise (Wei Dai est le pinyin de 戴维) et qu’il a obtenu un diplôme de sciences informatiques à l’Université de Washington, dans l’État du même nom aux États-Unis. Curieuse coïncidence : Nick Szabo a fréquenté la même université à quelques années d’intervalle, mais Wei Dai affirme qu’ils ne sont jamais croisés dans la vraie vie.

Wei Dai commence sa carrière d’ingénieur en informatique au début des années 90. Il travaille en tant que développeur pour TerraSciences, avant d’être engagé par Microsoft en tant que cryptographe. Il y publie notamment deux brevets (US5724279A et US6081598A), tous deux assignés à l’entreprise.

Parallèlement à son activité professionnelle chez Microsoft, il travaille sur des projets personnels dans le domaine de la cryptographie et de l’open source. On peut notamment citer Crypto++, une bibliothèque de fonctions cryptographiques en C++, qu’il développe en 1995 (et qu’il continuera de maintenir jusqu’à ce jour). Tout au long de sa carrière, ses contributions dans le domaine seront notables : le 6 février 2002, il découvrira une vulnérabilité dans SSH2 qu’il signalera immédiatement, et en avril 2007, il développera avec Ted Krovetz l’algorithme VMAC, un modèle de code d’authentification de message basé sur le chiffrement par bloc.

Possible photographie de Wei Dai
Possible photographie de Wei Dai (Source)

À côté de l’aspect purement académique de la cryptographie, Wei Dai s’intéresse aussi de près au mouvement cypherpunk. Dans la présentation de sa b-money en 1998, il dira :

« Je suis fasciné par la crypto-anarchie de Tim May. Contrairement aux communautés traditionnellement associées au mot ‘anarchie’, en crypto-anarchie le gouvernement n’est pas temporairement anéanti mais définitivement oublié et inutile. C’est une communauté où la menace de violence est impuissante parce que la violence est impossible, et où la violence est impossible parce que ses membres ne peuvent pas être reliés à leur vrai nom ou leur localisation géographique. »

En 1994, il se met donc naturellement à participer sur la liste de diffusion cypherpunk de l’époque. Il y aborde des sujets variés comme la réputation numérique, la théorie des jeux, la vie privée et l’anonymat dans les systèmes de monnaie électronique, faisant preuve d’une vivacité d’esprit au-dessus de la moyenne. Il propose également des outils pour faire avancer l’idéal crypto-anarchiste, dont un système d’horodatage, un protocole de communication anonyme (nommé PipeNet), et un système de partage de fichiers sécurisé.

En avril 1997, il développe un concept de crédit anonyme, concept qui fait réagir beaucoup de personnes, dont le célèbre Hal Finney, lui aussi présent sur la liste de diffusion. Quelques mois plus tard, l’idée de Dai est reprise par Nick Szabo dans sa formalisation des smart contracts.

Par la suite, il s’éloignera du mouvement cypherpunk, mais ne quittera pas le réseau Internet pour autant, et s’intéressera à d’autres sujets comme le transhumanisme, l’extropianisme, l’intelligence artificielle, l’éthique et l’épistémologie. À partir de 2009, il passera beaucoup de temps sur le site web LessWrong, une plateforme de blogging axée sur la rationalité humaine.

b-money, un système aux allures de Bitcoin

Comme nous l’avons dit dans l’introduction, les monnaies numériques basées sur des systèmes centralisés comme e-gold et Liberty Reserve n’ont jamais pu se développer correctement à cause de l’inévitable intervention étatique. C’est la raison pour laquelle Bitcoin se base sur un système pair-à-pair de nœuds entièrement décentralisé – pour répartir le risque et éviter de reposer sur un point de défaillance unique. En revanche, Bitcoin n’a pas été le premier système à avoir été conçu de la sorte : b-money, décrit en 1998, le préfigurait.

Wei Dai travaille sur son idée de monnaie électronique à partir de 1995. Interrogé par la journaliste Morgen Peck en 2012, il expliquera pourquoi il souhaitait mettre en place un tel système :

« Ma motivation pour b-money était de rendre possible une économie en ligne qui soit purement volontaire, une économie qui ne puisse pas être taxée et réglementée par la menace de violence. »

Le 26 novembre 1998, Wei Dai annonce fortuitement, au détour d’un courriel sur la liste de diffusion cypherpunk, la présence d’un texte descriptif sur son site web :

« Il y a également une description de b-money, un nouveau protocole d’échange monétaire et d’exécution des contrats pour les pseudonymes. »

Le texte est court (un peu plus de 1000 mots) mais riche conceptuellement. Comme pour Bitcoin, “b-money” désigne à la fois le protocole (l’ensemble des règles à respecter pour participer) et la monnaie en elle-même. Dans sa description du modèle, Wei Dai décrit deux versions du protocole légèrement différentes : l’une est irréalisable mais simple, l’autre est plus complexe mais fait des hypothèses plus réalistes.

b-money suppose l’existence d’un réseau intraçable où les participants sont identifiés par des pseudonymes numériques (c’est-à-dire des clés publiques) et où chaque message transactionnel est signé par l’envoyeur et chiffré pour le destinataire. Chaque participant maintient une base de données séparée qui recense combien d’unités de b-money possède chaque pseudonyme. Le transfert de monnaie a donc lieu comme dans Bitcoin, à la seule différence que le système est basé sur des comptes, plutôt que sur des pièces / UTXO.

Dans la première version du protocole, la création monétaire peut être réalisée par tous les participants. Il suffit pour l’un d’entre eux de diffuser la solution d’un problème informatique connu et précédemment non résolu. Le nombre d’unités créées dépend alors du coût de cet effort exprimé par rapport à un panier standard de marchandises (pouvant inclure des métaux précieux par exemple). Il s’agit d’une sorte de preuve de travail permettant de garantir une certaine stabilité de la b-money : lorsque son cours par rapport au panier de marchandises augmente, les acteurs économiques déploient plus de puissance de calcul pour inonder le marché ; à l’inverse lorsque son cours baisse, les acteurs économiques sont incités à utiliser moins de puissance de calcul et donc la création monétaire est ralentie. Un stablecoin, pourrait-on dire.

Une caractéristique de b-money est également la possibilité de créer et d’exécuter des contrats directement sur le système, bien que le procédé soit rudimentaire. Dans un contrat, les parties impliquées sont contraintes de mettre en jeu une caution pour s’assurer que personne ne fasse défaut. De plus, elles désignent un arbitre qui a pour rôle d’intervenir s’il y a un litige. Chaque partie (y compris l’arbitre) diffuse sa signature, ce qui permet de créer un compte spécial, crédité par les cautions des parties.

L’exécution du contrat peut alors se faire de deux manières. D’une part, la plupart du temps, elle se fait à l’amiable, avec ou sans l’intervention de l’arbitre : les parties se mettent d’accord sur une répartition des fonds prenant en compte ce qui a été réalisé dans la réalité.

D’autre part, si un accord n’est pas trouvé entre les parties, même avec l’aide de l’arbitre, la résolution se passe comme dans un procès. Chacun diffuse une répartition possible et les éléments (arguments, preuves) en faveur de cette répartition, et c’est alors le réseau entier qui tranche (quels comptes doivent être mis à jour et de quelle manière), la position de l’arbitre étant en théorie privilégiée.

La seconde version du protocole diffère de la première par le fait que le registre de propriété n’est plus conservé par tout le monde, mais uniquement par un sous-ensemble de participants appelés serveurs. Les participants à une transaction doivent alors vérifier que leur transaction a bien été traitée en envoyant des requêtes à un échantillon aléatoire de serveurs.

Puisqu’il est nécessaire de faire confiance aux serveurs dans une certaine mesure, un mécanisme économique rappelant la preuve d’enjeu est mis en place pour faire en sorte qu’ils restent honnêtes. Chaque serveur dépose un montant de b-money sur un compte spécial afin d’être pénalisé en cas de mauvaise conduite. De plus, il est contraint de publier régulièrement sa création de monnaie et son registre. De leur côté, les participants vérifient que leur solde est correct et que la somme des soldes des différents comptes n’excède pas le montant annoncé de monnaie créée, ce qui permet d’empêcher une inflation arbitraire.

On reconnaît ainsi beaucoup des caractéristiques de Bitcoin dans ce modèle, bien qu’il soit loin d’être parfait et présente des défauts évidents. La première version du protocole est ainsi impossible à mettre en place à grande échelle, notamment parce qu’elle n’est pas tolérante aux pannes byzantines et qu’elle ne résout donc pas le problème de la double dépense. La seconde version semble beaucoup plus réaliste, mais centralise considérablement le système en un petit nombre de serveurs, le rendant ainsi plus vulnérable aux attaques et à la corruption. Enfin, l’idée que les contrats dépendent du consensus social (menant à la création de plusieurs b-moneys en cas de désaccord profond) semble aujourd’hui complètement farfelue.

b-money attirera un intérêt certain parmi les cypherpunks, et en particulier celui d’Adam Back. Néanmoins, Wei Dai n’implémentera jamais le système, en particulier à cause de son éloignement progressif de la crypto-anarchie.

« Je n’ai pris aucune mesure pour coder b-money, dira-t-il. Cela a en partie été dû au fait que b-money n’était pas encore un concept complètement pratique, mais je n’ai pas continué à travailler sur ce concept parce que j’étais un peu désenchanté par la cryptoanarchie au moment où j’ai fini d’écrire b-money, et que je ne prévoyais pas qu’un système comme celui-ci, une fois mis en œuvre, pourrait attirer autant d’attention et d’utilisation en dehors d’un petit groupe de cypherpunks inconditionnels. »

L’héritage de la b-money et de Wei Dai

Si Wei Dai a abandonné son idée en 1998, elle a laissé une grande trace dans l’histoire des monnaies numériques et elle est régulièrement citée comme l’un des ancêtres incomplets de Bitcoin. Cependant, son influence sur Bitcoin est à minimiser, car d’après Wei Dai lui-même, Satoshi Nakamoto n’avait pas connaissance de la b-money avant de créer Bitcoin. Comme il le dit dans un commentaire de février 2011 :

« Ce que je comprends c’est que le créateur de Bitcoin, qui se fait appeler Satoshi Nakamoto, n’a même pas lu mon article avant de réinventer l’idée lui-même. Il l’a appris par la suite et m’a crédité dans son papier. Donc ma connexion avec le projet est assez limitée. »

En effet, si la b-money est citée dans le livre blanc de Bitcoin, ce n’est pas parce que Satoshi s’en est inspiré, mais parce qu’Adam Back lui en a parlé. Tel que ce dernier l’écrit sur Bitcointalk en 2013 :

« Je crois que c’était grâce à moi si la référence à la b-money de Wei Dai a été ajoutée au papier de Bitcoin lorsque Satoshi m’a envoyé un courriel à propos d’Hashcash en 2008. »

Par conséquent, en août 2008, après être entré en communication avec Adam Back, Satoshi a écrit plusieurs courriels à Wei Dai. Quelques uns de ces courriels sont publiés au sein d’un article de Gwern Branwen et sont, si l’on en croit Wei Dai lui-même, authentiques.

Le 22 août 2008, Satoshi envoie donc un premier courriel à Wei Dai pour lui dire qu’il “se prépare à publier un document qui étend [ses] idées à un système complètement fonctionnel” et pour lui demander “l’année de publication de [sa] page sur la b-money” afin de la citer dans son papier. Avec ceci, Satoshi lui joint le brouillon du livre blanc (ecash.pdf), dont le titre de l’époque est “Electronic Cash Without a Trusted Third Party” et qui ne mentionne pas encore le nom de Bitcoin, bien que le nom de domaine bitcoin.org soit déjà réservé. En réponse, Dai lui donne le lien vers le courriel d’annonce de la b-money, et lui promet de jeter “un coup d’œil” à son papier et “qu’il l’informera s’il a des commentaires ou des questions”, chose qu’il ne fera pas.

Quelques mois plus tard, en janvier 2009, après le lancement de Bitcoin, Satoshi envoie un autre courriel à Dai pour lui signaler que la première version du logiciel est disponible. Wei Dai ne répondra pas, négligeant la chose et étant passé à autre chose.

Néanmoins, sa curiosité pour le projet est ravivée par un membre de LessWrong en février 2011, et Wei Dai se met à miner du bitcoin avec une carte graphique. Il minera comme cela des centaines de bitcoins, qu’il ne vendra jamais.

Sur le protocole Bitcoin en lui-même, Wei Dai a un avis mitigé. Impressionné par son succès (il avoue qu’il “ne s’était pas attendu à ce que Bitcoin ait le succès qu’il a eu”), il trouve à redire sur la politique monétaire de Bitcoin qui serait un “problème macroéconomique” selon lui. Comme il l’explique en 2013 :

« Je considère que Bitcoin a échoué du point de vue de sa politique monétaire (parce que cette politique entraîne une forte volatilité du prix qui impose un coût élevé pour ses utilisateurs, qui doivent soit prendre des risques indésirables, soit s’engager dans une opération de couverture coûteuse afin d’utiliser la devise). C’est peut-être en partie ma faute parce que, quand Satoshi m’a écrit pour me demander des commentaires sur la première version de son papier, je ne suis jamais revenu vers lui. Sinon, j’aurais peut-être pu le (ou les) dissuader de mettre en place cette idée de ‘masse monétaire fixe’. »

En réalité, si l’on veut trouver une descendance de la b-money et de la vision de Wei Dai, il faut plutôt chercher du côté d’Ethereum. En effet, nombre de caractéristiques d’Ethereum correspondent à ce qu’aurait pu être b-money : l’ether n’a pas de quantité limitée bien que son émission soit restreinte, des stablecoins indexés sur des monnaies fiat ou de l’or fleurissent sur la chaîne, le système est basé sur des comptes et il est prévu qu’il passe à une preuve d’enjeu telle que le proposait la deuxième version du protocole b-money. De plus, Ethereum est une sorte de fils spirituel de b-money puisque la plus petite unité du système Ethereum est nommée le wei (tout comme celle de Bitcoin est le satoshi), et que le premier stablecoin décentralisé de la chaîne, géré par Maker DAO, s’appelle le dai !

Quoi qu’il en soit, Wei Dai et son concept de b-money ont laissé une trace profonde dans la préhistoire de Bitcoin et des cryptomonnaies. Même si la connexion de Wei Dai avec Bitcoin est “limitée” comme il le dit, il a inspiré toute une communauté de cypherpunks par son intelligence et sa curiosité, communauté qui a influencé par la suite le légendaire Satoshi Nakamoto.

Cependant, l’idée d’une monnaie se basant sur un système entièrement décentralisé n’était pas exclusive à Wei Dai. En effet, avec l’émergence prématurée d’eCash, cette idée était dans l’air du temps, et un autre concept de devise numérique a vu le jour à la même époque : le bit gold de Nick Szabo. Mais ceci est une autre histoire.

Cliquez ici pour découvrir la suite »

Pour écrire cet article, je me suis aidé des ressources présentes sur le site personnel de Wei Dai ainsi que de ses interventions sur LessWrong. L’article The Genesis Files: If Bitcoin Had A First Draft, Wei Dai’s B-Money Was It d’Aaron van Wirdum m’a également été utile.

Ludovic Lars

Je suis fasciné par les cryptomonnaies et par l'impact qu'elles pourraient avoir sur nos vies. De formation scientifique, je m'attache à décrire leur fonctionnement technique de la façon la plus fidèle possible.