Les premiers pas de Bitcoin en 2010

Après une première année difficile, Bitcoin a acquis rapidement une petite popularité. En 2010, il s’agissait encore d’un projet très expérimental et personne n’en avait entendu parler en dehors d’un cercle restreint de passionnées d’informatiques et d’activistes poltiques. Néanmoins c’est durant cette année que Bitcoin a pu être réellement éprouvé sur de nombreux plans.

Le minage s’améliore

L’année 2010 est l’année où le minage commence à prendre tout son sens. Contrairement à 2009 où Satoshi Nakamoto était quasiment le seul à miner sur une base régulière, en 2010 de nombreuses personnes se mettent à participer de manière soutenue.

En février, le taux de hachage dépasse pour la première fois les 10 millions de hachages par seconde (10 MH/s) en moyenne. En avril, ce sont les 100 MH/s qui sont dépassés, pour atteindre les 200 MH/s en juillet.

Taux de hachage Bitcoin janvier juillet 2010
Taux de hachage de Bitcoin (MH/s) entre janvier et juillet 2010. Source : CoinWarz.

Parmi ces nouveaux mineurs, se trouve Laszlo Hanyecz, un développeur américain d’origine hongroise de 28 ans. Ce dernier s’intéresse en effet à comment Bitcoin fonctionne et cherche à expérimenter avec. Début avril, il se procure des bitcoins en les achetant à NewLibertyStandard et génère ses propres bitcoins. Après une brève tentative de submerger le réseau de transactions en s’envoyant des bitcoins sur son adresse personnelle, il se met à tenter d’optimiser le processus de minage. Grâce à ses connaissances en informatique, il développe le minage par processeur graphique (GPU) : jusqu’alors restreint au processeur central (CPU) des ordinateurs, le minage peut en effet être réalisé de manière beaucoup efficace en utilisant une carte graphique. En ayant un avantage technique sur ses concurrents, Laszlo occupe rapidement une place importante dans la production des blocs et accumule ainsi des dizaines de milliers de bitcoins.

Ceci attire l’attention de Satoshi Nakamoto qui le contacte en mai et lui demande de ralentir ses opérations afin que tout le monde puisse participer. Satoshi explique qu’il est dans l’intérêt du projet que la difficulté de minage n’augmente pas trop vite :

« Je ne veux pas passer pour un socialiste, je m’en fiche si la richesse est concentrée, mais pour l’instant, nous obtenons plus de croissance en donnant cet argent à 100 % des gens qu’en le donnant à 20 %. »

En dépit d’un ralentissement à court terme du déploiement de puissance de calcul sur le réseau, le mal est fait. À partir de là, la difficulté de minage ne cessera de croître de manière exponentielle, avec un matériel qui se spécialisera de plus en plus. À partir de juillet, le réseau dépasse ainsi le milliards de hachages effectués à la seconde (GH/s).

Taux de hachage Bitcoin juillet octobre 2010
Taux de hachage de Bitcoin (GH/s) entre juillet et octobre 2010. Source : CoinWarz.

À la fin de l’année 2010, cet effet se ressent particulièrement et les gens minant avec un simple processeur ne parviennent plus à trouver de blocs. C’est tout naturellement que, le 27 novembre, apparaît la première coopérative de minage (mining pool). L’opérateur de cette coopérative, connu sous le pseudonyme de slush, écrit sur le forum :

« Une fois que les gens ont commencé à utiliser des ordinateurs équipés de GPU pour miner, le minage est devenu très difficile pour les autres personnes. Je suis sur Bitcoin depuis quelques semaines et je n’ai pas encore trouvé de bloc. […] Mais la nouvelle fonctionnalité du client bitcoin officiel appelé ‘getwork’ permet désormais à de nombreux ordinateurs de travailler ensemble, afin qu’ils ne soient pas en concurrence. »

Pour cet opérateur, la tâche consiste à requérir des mineurs des preuves de travail de degré moindre et de les rémunérer en fonction du travail fourni lorsque l’un d’entre eux réussit à atteindre la difficulté demandée par le réseau. Le lendemain de cette annonce, Satoshi réagit favorablement à l’idée.

Par la suite, la coopérative formée, alors appelée Bitcoin.cz Mining, prendra le nom de Slush Pool et constituera l’une des pionnières du minage collaboratif, notamment en développant le protocole Stratum. Elle est aujourd’hui toujours active sur le réseau Bitcoin.

Un enthousiasme renouvelé

L’année 2010 est intéressante car elle marque une année de renouvellement pour Bitcoin, avec des évènements fondateurs et l’arrivée de nouveaux contributeurs.

Le 5 février, NewLibertyStandard propose d’adopter le symbole du baht thaïlandais pour le bitcoin et d’utiliser le sigle boursier BTC (au lieu de BC). Quelques semaines plus tard, le 24 février, Satoshi dévoile le premier vrai logo de Bitcoin qui s’inspire de la proposition de NewLibertyStandard. Ce logo sera largement utilisé avant d’être remplacé par le logo de bitboy, créé le 1er novembre de la même année.

Bitcoin logos satoshi bitboy

D’autres utilisateurs qui marqueront plus tard l’histoire de Bitcoin arrivent dans la même période, comme Michael Marquardt (theymos) ou Christian Decker.

Le 17 mars 2010, le service d’échange Bitcoinmarket.com est lancé : celui-ci permet d’acheter et de vendre du bitcoin grâce à Paypal. Fondé par l’utilisateur dwdollar, il s’agit d’une alternative au service proposé jusqu’alors par NewLibertyStandard.

Puis en mai survient un évènement qui peut être considéré comme anecdotique, mais qui illustre ce pour quoi Bitcoin a été conçu : le premier achat d’un bien physique en bitcoins. Le 18 mai, Laszlo Hanyecz, ayant accumulé des bitcoins grâce à son optimisation du minage par GPU, écrit l’annonce suivante sur le forum :

« Je paierai 10 000 bitcoins pour deux ou trois pizzas… genre peut-être 2 grandes pour qu’il m’en reste le lendemain. J’aime avoir des restes de pizza à grignoter pour plus tard. Vous pouvez faire la pizza vous-même et l’amener jusqu’à chez moi ou la commander pour moi dans un service de livraison, mais mon objectif c’est de me faire livrer de la nourriture en l’échange de bitcoins que je n’ai pas à commander ou à préparer moi-même. […] Si vous êtes intéressé, faites-le moi savoir et nous pourrons nous arranger. »

Le 22 mai 2010, un utilisateur britannique du nom de jercos commande deux pizzas de chez Papa John’s qui sont livrées chez Laszlo, à Jacksonville en Floride. En échange Laszlo lui envoie 10 000 bitcoins, ce qui clôt la première transactions de ce type sur le réseau Bitcoin. La date du 22 mai restera dans les mémoires et sera célébrée tous les ans par la suite comme le Bitcoin Pizza Day.

Vers la fin de mai, un autre contributeur majeur découvre Bitcoin : il s’agit de Gavin Andresen, un développeur américain de 44 ans, qui en entend parler grâce à un article publié sur InfoWorld. De retour d’Australie et n’ayant momentanément pas de travail, il se met à travailler sur son premier projet : un robinet à bitcoin (bitcoin faucet) qui donne 5 bitcoins à quiconque en fait la requête. Le 11 juin, Gavin le lance et le présente sur le forum :

« Pour mon premier projet de programmation sur Bitcoin, j’ai décidé de faire quelque chose qui semble vraiment stupide : j’ai créé un site web qui distribue des bitcoins. (…) Pourquoi ? Parce que je veux que le projet Bitcoin réussisse, et je pense qu’il a plus de chances de réussir si les gens peuvent obtenir une poignée de pièces pour essayer. »

Quelques jours plus tard, Satoshi le félicite :

« Excellent choix pour un premier projet, beau travail. J’avais prévu de faire exactement ceci si quelqu’un d’autre ne le faisait pas. »

Laszlo Hanyecz Gavin Andresen Jeff Garzik

Le 6 juillet 2010 marque la sortie de la version 0.3 du logiciel. Cette sortie sera l’occasion pour un membre du forum (teppy) de proposer de présenter Bitcoin sur Slashdot (/.), un site d’actualités très populaire traitant de sujets pour les intellos comme l’informatique, les jeux vidéo, la science, Internet, etc. Satoshi intervient alors pour corriger la description proposée sur plusieurs points. Il ajoute :

« Désolé d’être un rabat-joie. Écrire une description de ce truc pour le grand public est sacrément difficile. Il n’y a rien à quoi le relier. »

Le 11 juillet, la courte présentation de Bitcoin est publiée sur Slashdot. Ceci provoque un afflux massif de nouveaux visiteurs sur le site et sur le forum, ainsi qu’une augmentation du nombre d’utilisateurs et de personnes qui minent sur le réseau. Ces personnes incluent Jeff Garzik, un ingénieur américain qui jouera son rôle dans le développement de Bitcoin par la suite.

Malgré cette montée en charge, le réseau tient le coup, et, le 14 juillet, Gavin Andresen déclare :

« Au cours des deux derniers jours où Bitcoin a été ‘slashdotté’, je n’ai entendu parler d’AUCUN problème de perte de transactions Bitcoin, ni de panne du réseau en raison de la charge, ni de problème avec les fonctionnalités de base. »

Une autre conséquence de ce « slashdotting » est l’augmentation dramatique du cours boursier. En effet, le prix du bitcoin connaît la première hausse majeure de son histoire, en passant de 0,008 $ le 10 juillet à 0,08 $ le 18 juillet, soit une multiplication par 10 en une semaine !

C’est également à ce moment-là qu’est lancée la plateforme d’échange Mt. Gox, qui est annoncée officiellement sur le forum le 18 juillet par son fondateur, Jed McCaleb. Mt. Gox se distingue de Bitcoinmaket.com par le fait que la plateforme est “toujours en ligne, automatisée”, que “le site est plus rapide et a un hébergement dédié” et que “l’interface est plus agréable”.

Les développements majeurs de l’été

L’été 2010 constitue une période de développement informatique chargée. Avec la hausse du nombre d’utilisateurs, ce n’est pas seulement le prix qui augmente, mais aussi le nombre de problèmes rencontrés dans le système.

Fin juillet, un développeur et mineur allemand utilisant le pseudonyme de ArtForz, découvre une vulnérabilité dans le code de Bitcoin qui fait que n’importe quelle pièce peut être dépensée grâce à un script contenant le code opération OP_RETURN (d’où son futur nom du « 1 RETURN bug » assigné plus tard). Néanmoins, au lieu d’exploiter cette faille et de s’emparer discrètement de la richesse présente sur le réseau (250 000 $ à l’époque) pour la revendre, il choisit de prévenir Satoshi et Gavin par courriel. Satoshi s’empresse d’inclure la correction dans la mise à jour 0.3.6 et alerte tous les utilisateurs de son importance :

« Veuillez passer à la version 0.3.6 dès que possible ! Nous avons corrigé un bogue d’implémentation qui autorisait de fausses transactions à être affichées comme acceptées. N’acceptez pas les transactions Bitcoin comme paiement jusqu’à ce que vous passiez à la version 0.3.6 ! »

Bitcoin échappe ainsi au pire et la vulnérabilité n’est pas exploitée.

Cependant, deux semaines plus tard, Bitcoin n’a pas cette chance et subit un incident majeur, le value overflow incident. Le 15 août à 18 heures (UTC), Jeff Garzik avertit sur la présence d’une transaction étrange créant 184 milliards de bitcoins dans le bloc 74 638 (miné à 17:05).

Cette création ex nihilo exploite une vulnérabilité de dépassement de mémoire (overflow) dans la représentaion des quantités dans Bitcoin. Satoshi réagit vers 21 heures, soit 4 heures plus tard, et publie un correctif (soft fork) créant une chaîne alternative ne contenant pas la transaction incriminée. La situation conflictuelle est résolue lorsque la chaîne correcte devient plus longue que l’autre au bloc 74 689, le lendemain à 8 heures 10 du matin, et devient la chaîne valide par défaut. Cet incident aura impacté le réseau pendant 15 heures environ et aura été résolu grâce à une réactivité forte de la communauté.

Suite à cet incident, Satoshi implémente un système d’alerte dans Bitcoin, lui permettant d’avertir tous les nœuds du réseau en cas de problème technique.

C’est enfin à cette période, en voyant l’affluence augmenter, qu’il procède à deux modifications du protocole qui joueront un rôle majeur dans l’avenir de Bitcoin :

  • La première est l’ajout des codes opération OP_NOP qui permettront, en 2015 et en 2016, l’implémentation de fonctionnalités supplémentaires sous la forme de soft forks. Elle est intégrée dans la version 0.3.6, tout comme le correctif du « 1 RETURN bug ».
  • La seconde est l’implémentation d’une taille limite des blocs de 1 Mo, qui empêche les mineurs de fabriquer des blocs de taille supérieure sans modifier les règles de consensus. Cette limite, dont le but est de restreindre l’activité sur le réseau, est ajoutée au code le 15 juillet au sein de la version 0.3.1 et imposée strictement à partir du 12 septembre (version 0.3.12).

C’est ainsi que Bitcoin a été soumis à rude épreuve lors de l’année 2010, avec l’accroissement du minage, l’afflux de nouveaux utilisateurs, les mentions dans la presse spécialisée, le développement des services d’échange et les problèmes techniques de l’été. À la fin de l’année, la tâche de Satoshi était donc accomplie : Bitcoin avait réellement fait ses preuves. Constatant que de nombreux contributeurs se chargeaient de faire vivre son projet, Satsohi a alors diminué fortement son activité publique, et il a finalement disparu de manière définitive queques mois plus tard lors du printemps 2011.

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.