Bitcoin : un livre blanc, des livres blancs

Le livre blanc (ou white paper en anglais) est le document fondateur de Bitcoin publié le 31 octobre 2008 par Satoshi Nakamoto. Il s'agit d'un court document de 9 pages, présenté comme un article scientifique, qui décrit le fonctionnement technique du système. Le titre en fait « un système d'argent liquide électronique pair-à-pair », c'est-à-dire une monnaie numérique pouvant être échangée sans nécessiter de tiers de confiance sur Internet.

La version généralement partagée du livre blanc est celle qui est disponible actuellement à l'adresse bitcoin.org/bitcoin.pdf, conformément au lien donné par Satoshi dans son premier courriel public sur la liste de diffusion de Metzdowd.com dédiée à la cryptographie. Celle-ci est citée partout sur la toile, dans les livres blancs des autres cryptomonnaies et jusque dans les articles universitaires. Sauf ce que ce n'est pas la bonne version.

Le 31 octobre dernier, à l'occasion du 14ème anniversaire du livre blanc, je me suis en effet rendu compte que cette version n'était pas celle distribuée par Satoshi Nakamoto en 2008. En réalité, il existe au moins deux versions ayant été distribuées antérieurement : l'une précédant la publication publique, et donnée à Wei Dai ; l'autre, correspondant a priori à la version partagée sur la liste de diffusion.

Livres blancs de Bitcoin

 

Une première version

La première version du papier a été donnée par Satoshi à l'ancien cypherpunk Wei Dai, créateur de b-money, un concept de monnaie numérique distribuée datant de 1998.

En août 2008, alors que son projet était en voie d'être concrétisé, Satoshi a contacté Adam Back, le cryptographe britannique à l'origine de Hashcash, la technologie utilisée pour calculer la preuve de travail. Adam Back l'a renvoyé vers Wei Dai, que Satoshi a contacté le 22 août en lui écrivant qu'il se préparait « à publier un document » qui étendrait ses idées « à un système complètement fonctionnel » et qu'il aurait besoin de « l'année de publication de [sa] page sur b-money » afin de citer le concept dans son papier.

Les courriels échangés ont été partagés par Gwern Branwen en mars 2014, qui les avait reçus de Wei Dai lui-même.

Le premier courriel de Satoshi à Wei Dai contenait un lien vers le livre blanc, ainsi que son titre et son résumé (abstract). Le titre du document était alors « Electronic Cash Without a Trusted Third Party » (« Un argent liquide électronique sans tiers de confiance ») et ne faisait pas mention du nom de Bitcoin. D'après le lien transmis, le nom du document était ecash.pdf et non pas bitcoin.pdf comme c'est le cas aujourd'hui. On suppose que Satoshi hésitait encore sur le nom de son invention, car il avait alors réservé (au moins) deux noms de domaine : netcoin.org le 17 août et bitcoin.org le 18 août.

Nous ne disposons néanmoins pas du document intégral, et n'en avons que le résumé, que je reproduis ici dans sa version originale (les passages en gras marquent les différences avec la version finale) :

« Abstract: A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without the burdens of going through a financial institution. Digital signatures offer part of the solution, but the main benefits are lost if a trusted party is still required to prevent double-spending. We propose a solution to the double-spending problem using a peer-to-peer network. The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as honest nodes control the most CPU power on the network, they can generate the longest chain and outpace any attackers. The network itself requires minimal structure. Messages are broadcasted on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone. »

Ce qui peut être traduit par :

« Résumé : Une version purement pair-à-pair d'argent liquide électronique permettrait aux paiements en ligne d'être envoyés directement d'une partie à l'autre sans avoir à passer par une institution financière. Les signatures numériques offrent une partie de la solution, mais perdent leurs principaux avantages si une partie de confiance est nécessaire pour empêcher la double dépense. Nous proposons une solution au problème de la double dépense en utilisant un réseau pair-à-pair. Le réseau horodate les transactions en les hachant dans une chaîne continue de preuves de travail basées sur le hachage, formant un enregistrement qui ne peut être modifié sans reproduire la preuve de travail équivalente. La chaîne la plus longue sert non seulement de preuve du déroulement d'événements constatés, mais aussi de preuve qu'elle provient du plus grand regroupement de puissance de calcul (CPU). Tant que les nœuds honnêtes contrôlent la plus grande puissance de calcul du réseau, ils peuvent générer la chaîne la plus longue et devancer tous les attaquants. Le réseau lui-même ne nécessite qu'une structure minimale. Les messages sont transmis au mieux, et les nœuds peuvent quitter et rejoindre le réseau à volonté, en acceptant la plus longue chaîne de preuves de travail comme preuve de ce qui s'est passé pendant leur absence. »

On note que certains mots et certaines tournures de phrase divergent mais que le sens global est préservé.

 

Une deuxième version

La deuxième version du papier est la version partagée par Satoshi Nakamoto le 31 octobre 2008, comme le prouve le résumé reproduit dans son premier courriel public adressé à la liste de diffusion.

Cette version a été repartagée en janvier 2015 sur la liste de diffusion de Metzdowd.com, suite à une requête d'un dénommé James Evans qui écrivait :

« Quelqu'un dispose-t-il de la version originale de 2008 du livre blanc qui a été publiée sur cette liste de diffusion le 31 octobre 2008 / le 1er novembre 2009 ? La version actuelle du livre blanc téléversée sur Sourceforge date du 24-03-2009. Il s'agit de la deuxième version du livre blanc. La première version a été publiée le 31-10-2008. Elle a été téléversée sur www.bitcoin.org/bitcoin.pdf, où se trouve également la version actuelle. Est-ce que quelqu'un ici l'a téléchargée et enregistrée ? »

Un individu se faisant appeler StealthMonger a répondu le lendemain en disant :

« On dirait que je l'ai. Le texte ne contient pas de numéro de version ou de date, mais la date locale du fichier que j'ai est le 2 novembre 2008. »

Désirant rester anonyme, ce dernier a refusé de partager ce document directement, et l'a transmis à un certain David Johnson, qui l'a partagé publiquement sur son site web. L'empreinte donnée dans l'échange et sur le site (427c63b364c6db914cf23072a09ffd53ee078397b7c6ab2d604e12865a982faa) correspond au document hébergé par Gwern Branwen.

Aperçu du livre blanc de Bitcoin octobre 2008
Version du livre blanc de Bitcoin créée le 3 octobre 2008 et distribuée le 31

Ce document a été créé le 3 octobre 2008 à 13:49:58 UTC-7, si l'on en croit les métadonnées du PDF (que l'on peut retrouver avec la commande pdftk bitcoin-20081003.pdf dump_data sur Linux).

Il s'agit d'une version différente de la première version puisque le titre est cette fois-ci « Bitcoin: A Peer-to-Peer Electronic Cash System » (« Bitcoin : un système d’argent liquide électronique pair-à-pair ») et que son résumé ne contient plus le mot « offer » (offrent) mais « provide » (fournissent). Mise à part cette modification, le résumé reste le même.

Le reste du document (qui est alors disponible) se distingue de la version finale par les éléments suivants :

  • L'adresse de courrier électronique présente est satoshi@vistomail.com et non pas satoshin@gmx.com.
  • Le paragraphe sur l'ajustement de la difficulté se situe dans la section sur l'incitation des mineurs (Incentive) au lieu de se trouver dans la section sur la preuve de travail (Proof-of-Work).
  • Le terme broadcasted, variante incorrecte de broadcast (que je traduis ici dans les deux cas par « transmis »), est présent dans la section sur le fonctionnement du réseau (Network).
  • Dans la section sur la vérification de paiement simplifiée (Simplified Payment Verification), Satoshi fait mention de la vulnérabilité des nœuds complets à un « renversement » (reversal) et emploie le terme « reported transactions » plutôt que « alerted transactions » pour désigner les transactions signalées comme des doubles dépenses.
  • Le document ne mentionne pas les frais de transactions, ni la potentielle substitution de la création monétaire, éléments qui se trouvent normalement dans la section sur l'incitation (Incentive). Le code donné par Satoshi Nakamoto le 16 novembre à Hal Finney, Ray Dillinger et James A. Donald, contient cependant ces caractéristiques fondatrices de Bitcoin, même si les paramètres de la politique monétaire étaient différents. En effet, dans le code de 2008, la réduction de moitié de la subvention intervenait théoriquement tous les 2 ans et 312 jours et la limite d'émission maximale était de 2 millions de bitcoins (COIN), chacun étant divisible en un million d'unités de base.

 

Une troisième et dernière version

La version finale du livre blanc est apparue plus tard. Selon les métadonnées du PDF, elle a été créée le 24 mars 2009 à 11:33:15 UTC-6. On peut supposer que Satoshi l'a mise en ligne dans les jours qui ont suivi.

Aperçu du livre blanc de Bitcoin mars 2009
Version du livre blanc de Bitcoin créée le 24 mars 2009

L'empreinte du document par SHA-256 est b1674191a88ec5cdd733e4240a81803105dc412d6c6708d53ab94fc248f4f553. Une traduction est disponible ici.

Cette version a été lue et commentée par la grande majorité des personnes qui se sont intéressées à l'origine de Bitcoin, de sorte qu'elle constitue aujourd'hui la version de référence, largement citée dans la communauté. Elle contient notamment le passage relatif à la politique monétaire qui indique qu'« une fois qu’un nombre prédéterminé de pièces a été mis en circulation, l’incitation peut être entièrement financée par les frais de transaction et ne plus requérir aucune inflation ». À l'époque, cet aspect était déjà mis en avant par Satoshi par sa description de l'émission des nouveaux bitcoins dans le courriel de lancement du 8 janvier 2009 et par ses interventions sur la liste de diffusion et sur le forum de la Fondation P2P, et on imagine qu'il voulait que cette possibilité de monnaie à quantité fixe figure dans le livre blanc.

Toutefois, bien que ce document constitue la version finale du livre blanc, elle ne décrit pas toutes les caractéristiques de Bitcoin. Il manque d'abord l'aspect programmable des transactions (mis en œuvre au travers des « scripts » dans les entrées et les sorties), une fonctionnalité déjà présente dans le code de novembre 2008, au sujet de laquelle Satoshi a déclaré :

« La nature de Bitcoin est telle que, dès la version 0.1 publiée, sa conception de base était gravée dans le marbre pour le reste de son existence. C'est pourquoi je voulais le concevoir de manière à ce qu'il prenne en charge tous les types de transactions auxquels je pouvais penser. Le problème était que chaque élément nécessitait un code et des champs de données particuliers, que cet élément soit utilisé ou non, et ne couvrait qu'un seul cas particulier à la fois. Ç'aurait été une explosion de cas particuliers. La solution était script, qui généralisait le problème de sorte que les parties transactantes pouvaient décrire leurs transactions comme des prédicats que le réseau de nœuds évaluait. Les nœuds n'ont besoin de comprendre la transaction que dans la mesure où ils évaluent si les conditions de l'émetteur sont remplies. »

Il manque aussi des éléments économiques relatifs à Bitcoin comme la résistance à la censure, la détermination du protocole ou le modèle de sécurité. Bitcoin constitue donc un concept qui dépasse sa description dans le livre blanc, même si l'essentiel s'y trouve.

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.

0 Comments

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *