Actu-crypto

🔒
❌ About FreshRSS
There are new articles available, click to refresh the page.
Before yesterdayCrypto FR

Le sabotage de Bitcoin : une critique de Hijacking Bitcoin

November 21st 2024 at 09:00

En avril dernier, l'homme d'affaires américain Roger Ver, connu pour son implication dans les premières années d'existence de Bitcoin, a publié un ouvrage pour le moins controversé. Il s'agit de Hijacking Bitcoin: The Hidden History of BTC, dont le titre peut être traduit par « Le Détournement de Bitcoin : l'histoire cachée de BTC », qu'il a coécrit avec Steve Patterson, philosophe et auteur professionnel. Ce livre, au ton pour le moins provocateur, revient sur l'évolution qu'a connue la création de Satoshi Nakamoto au fil du temps, pour montrer que le projet a été détourné de ses objectifs initiaux.

Roger Ver et Steve Patterson offrent en particulier un point de vue alternatif sur la guerre des blocs, le conflit qui a eu lieu dans la communauté de Bitcoin entre 2015 et 2017 à propos de la limite de taille des blocs (le paramètre qui restreint le nombre de transactions pouvant être effectuées sur le réseau) et qui a mené à la scission entre Bitcoin-BTC et Bitcoin Cash (BCH). Les auteurs font assez largement l'apologie de l'augmentation de la taille des blocs comme moyen de passer à l'échelle, et se rangent de ce fait dans le camp des big blockers, qui ont échoué à faire appliquer leur volonté sur le réseau principal de Bitcoin. Avec cet ouvrage, ils cherchent (entre autres) à faire concurrence à The Blocksize War, le rapport détaillé de Jonathan Bier relatant cette « guerre civile », qui est sorti en 2021 et dont une traduction en français a été réalisée en 2024. La publication de ce récit alternatif est donc une tentative de faire en sorte que l'histoire ne soit pas « écrite par les gagnants » comme le dit l'adage.

Si la vision présentée par Hijacking Bitcoin a ses faiblesses (qui seront évoquées ici), j'ai la conviction que l'ouvrage ouvre un débat à propos d'un sujet primordial et c'est pourquoi j'écris le présent article. Ayant défendu Bitcoin Cash plus que de raison par le passé, et continuant de le faire dans une moindre mesure, je pense avoir une critique originale à faire, à mi-chemin entre le mépris automatique et l'éloge dithyrambique. J'expliquerai notamment en quoi la communauté de BTC a effectivement perdu une part de son âme au cours du temps, et pourquoi, à l'inverse, les partisans invétérés de BCH se trompent quand ils prétendent que leur version de Bitcoin finira par remplacer la première.

Qui est Roger Ver ?

Hijacking Bitcoin est indissociable de son principal co-auteur, Roger Ver, qui est un personnage emblématique de l'histoire de Bitcoin. Celui-ci est en effet un influenceur de premier plan dans le secteur de la cryptomonnaie. Excellent orateur, il a su vanter les mérites de Bitcoin, répétant à l'envi que ce système novateur permettait d'envoyer de l'argent à n'importe qui, à n'importe quel moment et à n'importe quel endroit dans le monde, sans avoir à demander l'autorisation.

Roger Ver est un homme d'affaires américain. À la fin des années 90, il a fondé l'entreprise MemoryDealers, une société de revente de composants informatiques en ligne, grâce à laquelle il est devenu millionnaire au bout de quelques années. En parallèle, il a développé des convictions libertariennes, notamment en lisant Murray Rothbard. Il entretient également une passion pour l'évolution technique et le transhumanisme, ayant été influencé par le futurologue Ray Kurzweil.

Il a découvert Bitcoin à la fin de l'année 2010 grâce à un épisode de Free Talk Live, une émission de webradio libertarienne aux États-Unis. Il s'est rapidement pris de passion pour la création de Satoshi Nakamoto, et s'est procuré ses premiers bitcoins « pour moins d'un dollar chacun » (p. 2). Au printemps 2011, il a commencé immédiatement à accepter les paiements en bitcoins avec sa société MemoryDealers. Il a investi dans les premiers projets liés à Bitcoin comme le processeur de paiement BitPay, le portefeuille Blockchain.info ou le service de change BitInstant. En 2013, suite à la hausse du cours du BTC, il a fait un don à hauteur d'un million de dollars à la Foundation for Economic Education, un think tank libertarien dédié à la promotion de la liberté individuelle, de l'économie de marché et de l'entrepreneuriat.

Entre 2012 et 2014, il a géré la plateforme BitcoinStore.com, qui vendait du matériel informatique en bitcoins. Depuis 2015, il est propriétaire de l'entreprise Bitcoin.com, qui héberge un site d'actualité et maintient un portefeuille mobile performant.

Il est devenu au fil du temps l'un des promoteurs les plus zélés de Bitcoin, ce qui lui a valu le surnom de « Bitcoin Jesus » : le « Jésus de Bitcoin ». Il est apparu dans le documentaire The Bitcoin Gospel diffusé le 1er novembre 2015 sur la chaîne Youtube du groupe audiovisuel néerlandais VPRO. Nombre de bitcoineurs le sont devenus grâce à lui.

En outre, Roger Ver a été un acteur influent dans la communauté au cours de la guerre des blocs. En 2016, après les tentatives infructueuses de Bitcoin XT et de Bitcoin Classic, il a soutenu l'initiative de Bitcoin Unlimited, qui voulait modifier la façon de calculer la limite de taille des blocs. En 2017, il a ensuite soutenu le plan de modification de SegWit2X qui visait à activer SegWit et à doubler la taille limite des blocs, contre l'avis des développeurs de Bitcoin Core et d'une partie de la communauté. Après l'échec de ce plan en novembre 2017, il est devenu un fervent partisan de Bitcoin Cash, ce qu'il est resté jusqu'à aujourd'hui malgré les difficultés rencontrées par cette version alternative de Bitcoin.

Anarcho-capitaliste, Roger Ver a très vite entretenu une relation conflictuelle avec l'État. En 2002, il a passé 5 mois en prison pour avoir vendu des feux d'artifice sans licence, et s'est par la suite expatrié au Japon. En 2014, il a abandonné sa nationalité étasunienne, en vue d'arrêter de financer l'État fédéral depuis l'étranger (ce à quoi il était contraint jusqu'alors, conformément au principe de l'impôt sur la nationalité). Il a pour cela acquis la citoyenneté de Saint-Christophe-et-Niévès, une petite île des Caraïbes reconnue pour être un paradis fiscal.

Les États-Unis ne l'ont cependant pas oublié. À la fin du mois d'avril 2024, juste après la publication de son livre, il a été arrêté en Espagne en vue d'une extradition vers les États-Unis. Il a été accusé de ne pas avoir déclaré tous les bitcoins qu'il avait emporté avec lui en 2014, pour lesquels il aurait dû payer une taxe sur la plus-value (le « manque à gagner » revendiqué par l'IRS est estimé à 48 millions de dollars). Il est vraisemblable que cette arrestation (dix ans après les faits !) a un objectif politique, et qu'elle s'inscrit dans l'offensive récente contre l'utilisation anonyme de la cryptomonnaie, ouverte par l'arrestation des fondateurs de Samourai Wallet le 24 avril dernier.

Même si l'engagement de Roger Ver dans ce livre est fort, il ne l'a — à mon avis — pas rédigé lui-même et a délégué la tâche à Steve Patterson, dont le métier est de produire du contenu sur Internet et ailleurs. Ce dernier, qui est un big blocker convaincu et qui a soutenu Bitcoin SV pendant un temps, a ainsi pu influencer fortement le texte et y inclure quelques-unes de ses conceptions.

L'altération de la vision originelle

L'ouvrage commence par présenter la vision originelle de Bitcoin telle qu'exposée par Satoshi Nakamoto lorsqu'il était encore là. Puis, les auteurs expliquent en quoi elle a été dévoyée au profit d'une vision centrée sur l'appât du gain. Cette lente évolution s'est traduite par une intégration progressive dans le système financier traditionnel et par une collaboration accrue avec les autorités, allant à l'encontre du caractère rebelle et anarchiste du Bitcoin initial.

Au début, Bitcoin était vanté comme un moyen permettant de réaliser des paiements sans tiers de confiance. Le livre blanc, publié le 31 octobre 2008 par Satoshi Nakamoto, était consacré au problème des paiements en ligne, qui est évoqué dans le résumé et qui est le sujet de l'introduction. Au cours des quelques années où il a été actif, Satoshi a parlé de ce sujet à plusieurs reprises, allant même jusqu'à concevoir que Bitcoin pourrait finir par être utilisé pour les micropaiements ! Même s'il a évoqué la notion d'investissement et la limite des 21 millions, cette propriété était secondaire à ses yeux, et était plus un argument de vente pour amorcer le système qu'autre chose.

En 2011, alors que Satoshi disparaissait, cette idée d'un bitcoin qui servirait de moyen de paiement était claire. Les utilisateurs étaient principalement des technophiles et des libertariens, qui étaient intéressés pour réaliser des transactions. Les premiers portefeuilles légers, permettant de gérer des fonds sur mobile, faisaient leur apparition. On voyait aussi émerger des processeurs de paiement comme BitPay. Enfin, la place de marché du dark web Silk Road était en plein essor, et allait devenir le premier cas d'utilisation majeur de Bitcoin !

Ainsi, durant les premières années d'existence de Bitcoin, c'était bel et bien la fonction de moyen de paiement qui était à l'honneur, en paroles et en actions, mais la situation a peu à peu changé au cours du temps. À partir de 2013–2014, le discours a commencé à se transformer et à se focaliser de plus de plus sur la fonction de réserve de valeur, Bitcoin devenant un « or numérique ». Cette vision est devenue majoritaire en 2017, suite à quoi elle a été promue par des personnes comme Saifedean Ammous (l'auteur de L'Étalon-bitcoin), Tuur Demeester (analyste pour Adamant Research) ou encore Dan Held (directeur du marketing chez Kraken). Comme l'expliquent Roger Ver et Steve Patterson :

« Au sein de la communauté de Bitcoin, le discours s'est peu à peu éloigné du concept d'argent liquide numérique pour s'orienter vers la notion de réserve de valeur en l'espace de quelques années. Encore en 2016, la majorité des bitcoineurs continuaient à promouvoir le système en tant que monnaie en ligne – ou, comme ils aimaient l'appeler, "la monnaie magique d'Internet" – raison pour laquelle on se réjouissait chaque fois qu'une nouvelle entreprise annonçait qu'elle acceptait le bitcoin comme moyen de paiement. Avec chaque nouveau commerçant qui commençait à l'accepter, Bitcoin gagnait en crédibilité et en utilité. Mais après la flambée des frais fin 2017, les partisans les plus influents de BTC, plutôt que d'admettre qu'il y avait un problème, se sont clairement mis à changer leur discours – car si Bitcoin n'était qu'une réserve de valeur, alors les frais élevés n'avaient pas d'importance après tout. Ces dernières années, on a même encouragé les gens à ne pas dépenser leurs bitcoins dans le commerce, le BTC étant destiné à être acheté et détenu indéfiniment. » (p. 29)

Cette dérive désole profondément Roger Ver et Steve Patterson, qui lui reprochent notamment son manque d'ambition idéologique. Plutôt que de dépenser ses bitcoins, cette conception de Bitcoin incite les gens à conserver leurs bitcoins et à utiliser plutôt leurs euros. Or, d'après eux (p. 7), un tel résultat se situe bien en dessous de l'objectif révolutionnaire initial. Dans cette situation, L'État pourrait garder son contrôle sur l'économie, tout en autorisant les individus à « stocker de la valeur » dans un nouvel actif à la mode, similaire à l'or, à condition qu'ils paient leurs impôts évidemment. Pour reprendre l'expression de John Ratcliff (citée dans le livre à la page 168) : « l'État se fiche éperdument de l'existence d'une nouvelle "classe d'actifs" [...] ce qui le préoccupe, c'est le fait que les gens puissent transférer cette valeur sans qu'il puisse la suivre et l'intercepter ».

Ce dévoiement a mené à une intégration de plus en plus poussée dans le système financier traditionnel. Cette dernière évolution s'est manifestée en début d'année aux États-Unis par l'approbation des ETF au comptant par la SEC, qui permettent aux institutions de détenir du bitcoin de manière simple, et par la récente promesse faite par le président élu, Donald Trump, de mettre en place une réserve stratégique en bitcoin pour l'État fédéral. La tendance est à l'autorisation de la conservation de bitcoin dans la limite des réglementations financières. Cette tendance, si elle se poursuivait, mènerait le bitcoin à n'être transféré qu'occasionnellement et à servir principalement de garantie dans le cadre de prêts collatéralisés. Il ne s'agirait plus d'un concurrent au dollar comme on l'entendait dans ses premières années d'existence, et c'est précisément le reproche fait par Roger Ver ici.

La question du passage à l'échelle

Dans un deuxième temps, les auteurs mettent en relation cette lente évolution du discours avec la question du passage à l'échelle, c'est-à-dire de l'impact de l'utilisation de la chaîne sur la décentralisation du réseau. Comme nous l'avons laissé entendre, Roger Ver et Steve Patterson sont des big blockers, qui prônent l'accroissement de l'activité sur la chaîne pour répondre à la demande, ce qui passerait par l'augmentation significative (voire la suppression) de la taille limite des blocs. Cette conception correspond bien à leur vision de Bitcoin comme un système de paiement avant tout.

C'est pourquoi ils prétendent que le maintien de la taille des blocs à un niveau bas provient d'une volonté de faire de Bitcoin une réserve de valeur, fonction qui ne requiert pas une capacité transactionnelle énorme. Ils voient cette limitation comme une façon d'handicaper le réseau pour les paiements. En effet, en limitant la taille maximale des blocs, on fait augmenter les frais de transaction : plus l'espace de bloc est limité à un niveau bien inférieur à la demande, plus le prix pour l'inclusion dans un bloc est élevé. De ce fait, les transferts déplaçant peu de valeur ont tendance à être exclus : en 2017, la hausse des frais liée à l'atteinte de la limite a ainsi commencé à décourager les transactions courantes, poussant de nombreux commerçants à ne plus recevoir de bitcoin, comme Steam en 2017. Ç'a été une tragédie pour l'utilisation du bitcoin comme moyen de paiement.

Bien entendu, les small blockers ont un discours complètement différent. Pour eux, la restriction de la capacité du réseau vise à minimiser le coût de fonctionnement des nœuds, de sorte à maximiser la décentralisation potentielle du réseau, et donc sa résistance aux attaques. Durant la guerre des blocs ils n'étaient pas nécessairement opposés à son usage comme moyen de paiement courant, mais voyaient les effets néfastes d'une telle utilisation sur la chaîne. C'est pourquoi ils prônaient plutôt le passage par des solutions de surcouche comme le réseau Lightning pour satisfaire cet usage, ce qui est devenu la vision majoritaire dans la communauté de BTC aujourd'hui.

Roger Ver et Steve Patterson critiquent cette façon de voir les choses de façon acerbe. Ils pensent qu'il n'y a pas lieu de limiter la capacité transactionnelle à ce point. Pour eux, les utilisateurs de BTC « paient des frais extrêmement élevés sans raison valable » (p. 30). Les auteurs rejettent notamment l'importance des nœuds complets mise en avant par les small blockers, qualifiant leur argumentaire de « religion des nœuds » (p. 52). Ils avancent (conformément à Brian Armstrong en 2016) que les mineurs décident des règles du protocole de manière collective, mais qu'ils n'ont pas intérêt à modifier arbitrairement le protocole. Le rôle des nœuds non miniers est ainsi secondaire, n'intervenant que pour signaler un changement de règle aux utilisateurs.

De ce point de vue, les auteurs ignorent sciemment les enseignements qui ont pu émerger au cours des dernières années et conservent une vision grossière des choses. Ils peinent à voir le compromis qui est réalisé à chaque bloc sur la chaîne de Bitcoin. De plus, ils continuent de soutenir que les mineurs décident des règles, ce qui a été largement invalidé par la raison et par la pratique (annulation de SegWit2X) depuis la guerre des blocs.

Cette position est dommageable, car elle renforce le préjugé négatif contre les auteurs, rendant le reste du discours inaudible. En particulier, elle détourne la réelle critique qu'il y aurait à apporter à l'endroit du niveau arbitraire choisi pour la taille des blocs. En effet, l'inflexibilité à propos de ce critère n'a en effet pas de raison d'être, hormis la stabilité à long terme du système, et le niveau actuel n'a de toute évidence pas été déterminé scientifiquement.

Une histoire alternative de la guerre des blocs

Outre ces deux prises de position concernant l'utilisation et le passage à l'échelle de Bitcoin, Hijacking Bitcoin à la mérite d'apporter une autre version de l'histoire de la guerre des blocs, émanant du point de vue des big blockers. Roger Ver et Steve Patterson y dénoncent les méthodes de communication des partisans des petits blocs, qu'ils jugent être de la « pure propagande » (p. 121), et les manœuvres utilisées par les partisans des petits blocs pour parvenir à leurs fins, qui n'ont pas (il faut le dire) toujours été honorables.

Les auteurs reviennent d'abord sur la modification du discours sur la taille des blocs, qui s'est produite à partir de 2013. Ils insistent sur le rôle du développeur Peter Todd (récemment désigné comme étant Satoshi Nakamoto par Cullen Hoback dans son documentaire diffusé sur HBO) dans ce lent glissement. Peter Todd est en effet à l'origine d'une vidéo sortie en 2013 qui promouvait une restriction de la taille maximale des blocs à 1 Mo (p. 112). Il a également été le promoteur principal de Replace-by-Fee, une méthode de remplacement des transactions avant inclusion dans un bloc, qui affaiblit considérablement l'acception instantanée en 0-conf, viable pour les petits montants (p. 117). Les auteurs évoquent les échanges que Peter Todd a eu avec John Dillon, un personnage mystérieux qui le soutenait financièrement et qui a admis travailler pour une agence de renseignement (p.122).

Les auteurs laissent ainsi entendre qu'il y a eu un effort de l'establishment politique et financier pour neutraliser Bitcoin. Dans la même veine, ils évoquent aussi la création de Blockstream en 2014 et son financement par AXA et d'autres acteurs financiers du monde traditionnel (p. 130). Blockstream a été fondée pour mettre sur pied des solutions de seconde couche où elle gagnerait de l'argent (Liquid) et avait tout intérêt à ce que Bitcoin ne soit pas efficace on-chain. De ce fait, en employant plusieurs développeurs de Bitcoin Core (l'implémentation logicielle principale de Bitcoin), elle a pu influencer la direction prise par BTC (p. 141).

Les éléments sont sourcés et il serait étonnant que Bitcoin ait entièrement échappé à certaines influences des autorités en place. Toutefois, les auteurs ont tendance à renverser la causalité et à voir un complot où il n'y en a pas forcément. Dans le cas de Blockstream, ce n'est pas parce que la société développait des solutions de seconde couche qu'elle a cherché à « bloquer le flux » (block the stream) des transactions sur la chaîne ; c'est plutôt parce que ses fondateurs étaient convaincus que Bitcoin ne passe pas à l'échelle qu'ils ont créé Blockstream pour mettre sur pied ces solutions.

Par la suite, les auteurs rappellent quelques-unes des méthodes malhonnêtes employées pendant la guerre des blocs. Ils évoquent la censure des discussions sur Reddit à partir de 2015 (p. 164), les attaques par déni de service contre les nœuds de Bitcoin XT (pp. 168–170), la proposition de modifier le livre blanc en 2016 (pp. 193–194), l'utilisation du site Bitcoin.org dans le débat sur SegWit2X en 2017 (pp. 207–209), l'envoi d'une lettre à la SEC pour qu'elle prenne position dans ce même débat (pp. 210–211) et enfin l'emploi du terme péjoratif « Bcash » pour délégitimer Bitcoin Cash en tant que candidat au nom de Bitcoin (pp. 224–225). Il est salutaire que ce côté de l'histoire soit rappelé : toutes ces méthodes sont discutables et il est normal de rappeler qu'elles ont été employées, même si l'objectif final pouvait être louable.

Bitcoin Cash, un remède ?

Dans la dernière partie du livre, Roger Ver et Steve Patterson abordent le sujet de Bitcoin Cash. Cette cryptomonnaie est préconisée comme remède, comme une façon de « reconquérir Bitcoin » (p. 217). Ce soutien n'est pas exclusif : de manière générale, Roger Ver n'est pas maximaliste et promeut l'utilisation de « tout ce qui fonctionne », recommandant d'autres cryptomonnaies comme Monero, ZCash ou encore Zano. Cependant, Bitcoin Cash est le système mis en avant dans le livre, en raison de sa filiation historique.

Bitcoin Cash a été créé le 1er août 2017 par un hard fork, en continuité de la chaîne de blocs de Bitcoin. Il différait de Bitcoin par le fait qu'il augmentait la taille maximale des blocs à 8 Mo et n'intégrait pas SegWit. Après des débuts difficiles, il a connu son heure de gloire suite à l'annulation du doublement de la capacité transactionnelle (SegWit2X) pour BTC en novembre 2017. À la fin de l'année, le prix du BCH atteignait les 3 000 $ et représentait 20 % de la valeur d'échange du BTC.

Pour défendre Bitcoin Cash, les auteurs prétendent qu'il s'agit du « vrai Bitcoin » (p. 220) car il respecte davantage les objectifs initiaux de Satoshi Nakamoto. Si je suis sceptique sur le fait qu'il existe un « vrai Bitcoin », je peux au moins leur accorder qu'il est tout à fait légitime de réaliser une scission comme celle-ci, si l'on sent que la version principale a dévié de ce qu'on considérait être le but de Bitcoin.

En plus de l'augmentation de la capacité transactionnelle, Bitcoin Cash a adopté un certain nombre de changements au cours des années (p. 233–237) : l'augmentation de la taille d'inscription sur la chaîne (OP_RETURN), la réactivation d'anciens codes opération (OP_CAT, OP_MUL, etc.) ainsi que l'ajout de nouvelles instructions améliorant la flexibilité du langage de script (OP_CHECKDATASIG, Native Introspection Opcodes), l'intégration des signatures de Schnorr, l'amélioration de l'algorithme de difficulté (aserti3-2d), le support de jetons natifs (CashTokens) et une taille limite des blocs adaptative (Adaptive Blocksize Limit Algorithm) ajoutée en mai 2024. Ces innovations ont soutenu l'apparition de services intéressants comme le module de mélange de pièces CashFusion et le service de finance décentralisée BCH Bull.

Toutefois, ces améliorations n'ont pas su attirer le public voulu. Bitcoin Cash n'a jamais pu retrouver l'exposition qu'il avait réussi à obtenir à ses débuts et n'a pas connu le succès escompté. Il a en particulier souffert de son effet de réseau moindre par rapport à Bitcoin, qui a fait que les gens ont préféré Bitcoin par défaut, quand bien même ce dernier convenait moins à leurs besoins transactionnels.

De plus, la communauté de Bitcoin Cash a été en proie à une série de conflits internes (p. 239). L'ouverture du débat et le fait que les hard forks étaient relativement bien vus, ont mené à deux scissions majeures, dans lesquelles Roger Ver a joué un rôle de premier plan. La première a été celle avec BSV en 2018, la cryptomonnaie de Craig Wright (prétendant au titre de Satoshi Nakamoto), qui avait supprimé la règle limitant la taille des blocs et dont la communauté s'était mis en tête d'inscrire tout sur la chaîne (Métanet). La seconde scission a été celle avec XEC en 2020, le système « eCash » d'Amaury Séchet, le développeur principal de Bitcoin ABC, l'implémentation de référence de Bitcoin Cash jusqu'à cette date.

Les auteurs croient que le relatif échec de Bitcoin Cash peut être inversé et qu'il peut remplacer BTC sur le trône de la première cryptomonnaie. Pour eux, BTC n'a pas d'utilité et est un objet spéculatif sans valeur. Cependant, il s'agit encore une fois d'une demi-vérité : certes, le prix du BTC est augmenté par le phénomène spéculatif, mais cela ne veut pas dire qu'il y a pas d'utilisation non spéculative. Même si les frais sont élevés, l'utilisation de la chaîne de Bitcoin peut toujours se borner aux transferts déplaçant beaucoup de valeur : financements d'initiatives politiques, achats de biens onéreux, paiements de salaires, échanges contre de la monnaie fiat, ouvertures de canaux Lightning, etc. Bitcoin est un système d'« or numérique » dans le sens où il est particulièrement adapté aux grosses transactions.

Dans cet ordre des choses, Bitcoin Cash ne deviendra pas le protocole numéro 1. Mais il peut rester une cryptomonnaie complémentaire, dédiée aux transferts de petites sommes et aux smart contracts de tous les jours, une résurgence de l'argent ou du cuivre dans le numérique, si l'on reprend l'analogie avec les métaux précieux. Bitcoin Cash est le candidat idéal pour cela : il constitue en effet l'une des cryptomonnaies alternatives les moins corruptibles aujourd'hui avec Monero.

Un livre qui invite à la réflexion

Sans surprise, conformément au ton tranchant de Roger Ver, Hijacking Bitcoin a le mérite d'être un livre entier, avec des forces et des faiblesses. On y retrouve l'essentiel de l'argumentaire tenu par les big blockers au cours des années, sous une forme organisée et bien documentée. Le bitcoineur (même s'il est maximaliste) y trouvera une source de réflexions sans pareille : si les critiques peuvent être partiellement invalidées, elles ne sont pas dénuées de fondement, et cela est bon pour Bitcoin.

Je crois que la principale conclusion à tirer de cet ouvrage, c'est que Bitcoin peut être corrompu, et qu'il l'a bien été dans une certaine mesure, même si cette corruption est plus subtile que Roger Ver et Steve Patterson ne l'imaginent. Les êtres humains sont profondément faillibles et influençables, si bien qu'un mouvement social qui prend de l'ampleur va toujours se voir être « infiltré de l'intérieur ». Si Bitcoin représente bien une menace pour le pouvoir en place, alors il est logique qu'il soit « récupéré », d'une façon ou d'une autre.

Aujourd'hui, le conflit majeur ne porte plus sur la taille des blocs. La question a été largement débattue, et même si nous pouvons discuter du niveau de ce critère, le principe de la limite n'est plus vraiment remis en question.

Ainsi, l'ennemi de BTC n'est pas le « big-blockisme », Bitcoin Cash ou Roger Ver, qui sont largement minoritaires. L'ennemi, c'est plutôt le saylorisme, la doctrine soutenue par Michael Saylor, le patron de Microstrategy, qui veut faire du bitcoin un outil de conservation de valeur entièrement réglementé qui servirait de garantie dans les prêts collatéralisés. L'ennemi, c'est l'idée selon laquelle seul le prix compte, quitte à revenir sur les principes fondateurs de Bitcoin pour le faire augmenter. L'ennemi, c'est la progression insidieuse de l'avarice dans la communauté, qui nous coupe de nos inspirations initiales et qui décourage la bonne adoption. Mais nous en reparlerons une autre fois.

Merci à Édouard pour sa relecture.

Le bloc de genèse de Bitcoin

March 24th 2022 at 09:00

Lorsqu'il a conçu le prototype de Bitcoin en janvier 2009, Satoshi Nakamoto a dû construire un premier bloc à partir duquel la chaîne s'est allongée. Ce bloc il l'a appelé le bloc de genèse (« genesis block » en anglais) en référence au premier livre de la Torah et de la Bible, qui raconte la création du monde par Dieu.

Par convention, on considère qu'il s'agit du bloc de hauteur 0 (ou « bloc 0 ») au-dessus duquel les autres blocs sont successivement empilés. Examinons plus en détail ce que contient cet élément fondateur de Bitcoin en procédant à une dissection minutieuse !

 

Un bloc fondateur

Le bloc de genèse est une donnée essentielle du protocole Bitcoin car il constitue la base à partir de laquelle on peut déterminer la chaîne la plus longue (c'est-à-dire celle ayant le plus de preuve de travail accumulée) et par conséquent la validité des transactions du registre. Il est théoriquement le seul bloc à devoir être inscrit en dur dans le protocole, même si d'autres l'ont été par la suite.

Tel que l'écrivait Satoshi Nakamoto :

« La chaîne de blocs est une structure en forme d'arbre qui a pour racine le bloc de genèse, chaque bloc pouvant avoir plusieurs candidats à sa suite. »

Bloc de genèse embranchements

Le code de novembre 2008 (fourni par Satoshi à Hal Finney, Ray Dillinger et James A. Donald notamment) contenait déjà une première version du bloc de genèse, horodatée au 10 septembre 2008, 18:02:08 UTC. Néanmoins, un nouveau bloc a été construit en janvier 2009 spécialement pour le lancement du prototype.

Le bloc de genèse que nous connaissons est ainsi présent dans la version 0.1 du logiciel de Bitcoin, publiée le 8 janvier 2009. Un commentaire au sein du code le décrit :

Genesis Block:
GetHash()      = 0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
hashMerkleRoot = 0x4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
txNew.vin[0].scriptSig     = 486604799 4 0x736B6E616220726F662074756F6C69616220646E6F63657320666F206B6E697262206E6F20726F6C6C65636E61684320393030322F6E614A2F33302073656D695420656854
txNew.vout[0].nValue       = 5000000000
txNew.vout[0].scriptPubKey = 0x5F1DF16B2B704C8A578D0BBAF74D385CDE12C11EE50455F3C438EF4C3FBCF649B6DE611FEAE06279A60939E028A8D65C10B73071A6F16719274855FEB0FD8A6704 OP_CHECKSIG
block.nVersion = 1
block.nTime    = 1231006505
block.nBits    = 0x1d00ffff
block.nNonce   = 2083236893
CBlock(hash=000000000019d6, ver=1, hashPrevBlock=00000000000000, hashMerkleRoot=4a5e1e, nTime=1231006505, nBits=1d00ffff, nNonce=2083236893, vtx=1)
  CTransaction(hash=4a5e1e, ver=1, vin.size=1, vout.size=1, nLockTime=0)
    CTxIn(COutPoint(000000, -1), coinbase 04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73)
    CTxOut(nValue=50.00000000, scriptPubKey=0x5F1DF16B2B704C8A578D0B)
  vMerkleTree: 4a5e1e

Ce bloc pèse très exactement 285 octets. Le voici représenté en hexadécimal brut :

0100000000000000000000000000000000000000000000000000000000000000000000003ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a29ab5f49ffff001d1dac2b7c0101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff4d04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73ffffffff0100f2052a01000000434104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac00000000

Le bloc de genèse est composé d'un entête de 80 octets et d'une unique transaction, la transaction de récompense. Son identifiant (le résultat du hachage de l'entête par double SHA-256) est 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f. Les zéros qui débutent cet identifiant indiquent qu'une preuve de travail a été réalisée.

Notez que les différentes informations contenues dans le bloc sont souvent transmises avec un ordre des octets inverse (dit « little-endian » ou « petit-boutiste »). Nous donnerons ici les informations dans l'ordre ordinaire (qu'on appelle « big-endian » ou « gros-boutiste ») à l'aide du préfixe 0x.

 

L'entête

Comme tous les blocs dans le protocole, le bloc de genèse possède un entête donnant 6 informations différentes. Voici cet entête en détail :

01000000 - version
0000000000000000000000000000000000000000000000000000000000000000 - identifiant du bloc précédent
3ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a - racine de Merkle
29ab5f49 - horodatage
ffff001d - valeur cible
1dac2b7c - nonce

 

La version du bloc

0x00000001

La version du bloc indique l'ensemble des règles respectées par le bloc. Cette version 1 indiquait un respect des règles du protocole originel défini par Satoshi. D'autres versions ont été introduites plus tard : la version 2 pour l'application du BIP-34 en mars 2013, la version 3 pour l'activation du BIP-66 en juillet 2015, et la version 4 pour celle du BIP-65 en décembre 2015. Le champ de version a par la suite été utilisé pour que les mineurs signalent leur intention d'appliquer un soft fork (conformément au BIP-9).

 

L'identifiant du bloc précédent

0x0000000000000000000000000000000000000000000000000000000000000000

Puisqu'il s'agit du premier bloc de la chaîne, le champ utilisé pour donner l'identifiant du bloc précédent est fixé à zéro par convention.

 

La racine de Merkle

0x4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b

La racine de Merkle correspond à l'empreinte finale de l'arbre de Merkle des transactions. Puisqu'il n'y a qu'une seule transaction dans le bloc de genèse, il s'agit simplement de l'identifiant de cette transaction.

 

L'horodatage

0x495fab29

L'horodatage indique la date et l'heure à laquelle le mineur a trouvé le bloc. Il est donné par le nombre de secondes depuis le 1er janvier 1970 00:00:00 UTC. Ici, le nombre correspond à 1 231 006 505 secondes : le bloc de genèse est donc horodaté au 3 janvier 2009 à 18:15:05 UTC.

Toutefois, il ne faut pas croire que cet horodatage indique l'instant précis du lancement effectif du réseau. Ce dernier a en effet été réalisé un peu plus tardivement : le bloc 1 est ainsi horodaté au 9 janvier 2009 à 02:54:25 UTC, soit 5 jours, 8 heures, 39 minutes et 20 secondes plus tard.

 

La valeur cible

0x1d00ffff

La valeur cible est la valeur minimale que l'identifiant du bloc peut avoir pour que ce dernier constitue une solution au problème de preuve de travail de Bitcoin. Moins cette valeur cible est haute, plus il est facile de trouver une solution et de miner un bloc. Elle est donc inversement proportionnelle à la difficulté du réseau.

La valeur cible du bloc de genèse correspond à la plus grande valeur possible dans Bitcoin, ou la difficulté la plus basse pour le dire autrement. Elle est encodée comme un nombre flottant où le premier octet représente un exposant et où la mantisse est déterminée par les 3 octets suivants. Ici, elle est égale à 0x00ffff × 256(0x1d - 3) c'est-à-dire 0x00000000ffff0000000000000000000000000000000000000000000000000000.

La preuve de travail du bloc est valide car l'identifiant est effectivement (largement) inférieur à cette valeur cible :

0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f ≤
0x00000000ffff0000000000000000000000000000000000000000000000000000

On définit la difficulté du minage comme l'inverse de la valeur cible multipliée par la valeur cible de base :

difficulté = cible_de_base / cible

La difficulté du bloc de genèse est donc de 1.

Après le lancement du réseau, la difficulté a stagné à ce niveau pendant près d'un an avant d'enfin commencer à augmenter le 30 décembre 2009.

Au sein du code, le champ de la valeur cible est appelé nBits, car ce paramètre désignait (avant que Satoshi n'en modifie le sens) le nombre de bits de tête à mettre à zéro pour que la solution soit valide. Dans la version de novembre 2008, le champ était en effet fixé à 20, ce qui correspondait à 5 zéros de tête en représentation hexadécimale, soit une valeur cible de 0x00000fffff....

 

Le nonce

0x7c2bac1d

Le nonce (mot qui provient de l'expression anglaise « for the nonce » signifiant « pour la circonstance, pour l'occasion ») désigne le nombre que le mineur fait varier pour calculer la preuve de travail. Il n'a aucune signification particulière, étant déterminé au hasard.

 

L'ensemble des transactions

L'ensemble des transactions forme la seconde partie du bloc. Le voici en détail :

01 - nombre de transactions
01000000 - version
01 - nombre d'entrées
0000000000000000000000000000000000000000000000000000000000000000 - identifiant de transaction de la sortie précédente
ffffffff - index de la sortie précédente
4d - taille du script de déverrouillage
04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73 - script de déverrouillage
ffffffff - numéro de séquence
01 - nombre de sorties
00f2052a01000000 - montant
43 - taille du script de verrouillage
4104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac - script de verrouillage
00000000 - temps de verrouillage

 

Le nombre de transactions

0x01

Le bloc contient une seule transaction : la transaction de récompense qui rémunère le mineur (ici Satoshi) pour la preuve de travail réalisée. Le bloc ne comporte ainsi aucune autre transaction, tout comme les blocs minés dans les premiers jours. Il a fallu attendre le 12 janvier et le bloc 170 pour voir la première transaction effective du réseau être confirmée : celle entre Satoshi et Hal Finney.

Toutes les données restantes du bloc appartiennent à la transaction de récompense.

 

La version de la transaction

0x00000001

La version de la transaction indique comment celle-ci doit être interprétée. Elle est fixée à 1 conformément au protocole initial. Aujourd'hui, il existe également une version 2 qui autorise l'usage des verrous temporels relatifs (voir BIP-68).

 

Le nombre d'entrées de la transaction

0x01

La transaction contient une seule entrée : la base de pièce, ou coinbase, qui permet de créer ex nihilo les nouveaux bitcoins et de recueillir les frais de transaction. Cette entrée est donc purement superflue, mais permet de conserver une certaine cohérence dans l'implémentation logicielle. Elle est constituée des champs identifiant la sortie précédente (théorique), d'un script de déverrouillage et d'un numéro de séquence.

 

L'identifiant de transaction de la sortie précédente

0x0000000000000000000000000000000000000000000000000000000000000000

Ce champ est utilisé dans les transactions pour dire à quel sortie transactionnelle correspond une entrée, en donnant l'identifiant de la transaction qui a créé la sortie. Puisqu'il s'agit d'une transaction de récompense qui ne fait pas référence à une sortie transactionnelle précédente, ce champ est fixé à 0 par convention.

 

L'index de la sortie précédente

0xffffffff

Ce champ est utilisé dans les transactions pour dire à quel sortie transactionnelle correspond une entrée, en donnant la position de la sortie dans la transaction qui l'a créée. Puisqu'il s'agit d'une transaction de récompense qui ne fait pas référence à une sortie transactionnelle précédente, ce champ est fixé au maximum par convention.

 

Le script de déverrouillage (scriptSig)

0x04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73

Dans Bitcoin, le script de déverouillage est combiné à un script de verrouillage précédent et détermine la validité d'une dépense. Il contient généralement les signatures nécessaires à la dépense d'une pièce et est par conséquent souvent appelé scriptSig. Dans le cas d'une transaction de récompense, l'entrée ne fait référence à aucune sortie transactionnelle existante et ce script peut donc contenir des données arbitraires.

Ici, le script se présente de la manière suivante :

<valeur cible> <nonce supplémentaire> <chaîne de caractères>

Ainsi, il est constitué de trois informations :

  • Tout d'abord, la valeur cible du bloc, donnée en sens inverse, conformément à la façon dont elle est représentée dans le code : 0xffff001d
  • Ensuite, un nonce supplémentaire (0x04), ou extra nonce, mis en place par Satoshi dans le code du logiciel. Le nonce supplémentaire du bloc de genèse a pour valeur 4, et ceux des blocs suivants sont croissants : celui du bloc 1 est aussi égal à 4, celui du bloc 2 à 11, celui du bloc 3 à 14, etc. La variation de ce nonce supplémentaire au sein des blocs a permis de mettre en évidence un motif particulier, appelé le « Patoshi Pattern », qui détermine précisément les blocs minés par Satoshi et qui démontre que sa fortune s'élève à plus de 1 125 150 bitcoins.
  • Enfin, une chaîne de caractères aujourd'hui emblématique, encodée en UTF-8, qui est :
    The Times 03/Jan/2009 Chancellor on brink of second bailout for banks

    Cette courte phrase correspond à la une du Times du 3 janvier 2009, qui annonçait que le ministre des finances du Royaume-Uni était sur le point de renflouer les banques pour la deuxième fois. Le Times étant un quotidien anglais, cela a mené à des spéculations quant à l'identité de Satoshi, qui écrivait également dans un anglais britannique.

The Times 3 janvier 2009 chancelier ministre des finances renflouement des banques

Cette phrase présente dans le script de la transaction de récompense possède un rôle double :

  • Premièrement, elle prohibe l'antidatage : sa présence dans le premier bloc, à partir duquel toute la chaîne est construite, prouve que le réseau de Bitcoin n'a pas été lancé avant le 3 janvier 2009. Cependant, cela ne veut pas dire que le bloc de genèse date bien du 3 janvier : en effet, il a pu être construit entre le 3 janvier (date de l'horodatage déclaré) et le 8 janvier (date de publication du code).
  • Deuxièmement, elle indique symboliquement ce à quoi Bitcoin s'oppose en faisant référence au contexte monétaire et financier de l'époque : le renflouement des grandes banques d'investissement par les États et par les banques centrales suite à la crise financière de 2007-2008. Il est d'ailleurs possible que Satoshi ait choisi cette date précisément pour sélectionner cette une.

Ce script de la base de pièce est encore utilisé de nos jours par les mineurs pour de multiples raisons. À l'instar de Satoshi, ils peuvent inclure des informations arbitraires dans le bloc et faire passer un message public au monde. Ç'a été le cas de la coopérative F2Pool qui, le 11 mai 2020, a évoqué l'injection de liquidité de la Réserve Fédérale en réaction à la crise du covid-19 au sein du bloc 629 999 (le bloc précédant le troisième halving) :

NYTimes 09/Apr/2020 With $2.3T Injection, Fed's Plan Far Exceeds 2008 Rescue

Les regroupements de mineurs peuvent également s'identifier en indiquant leur nom, ce qui permet de juger de la décentralisation du réseau, même si cette pratique reste purement déclarative.

Enfin, les mineurs se servent encore de ce champ pour faire varier un nonce supplémentaire, le nonce de l'entête ne permettant plus depuis 2012 d'essayer suffisamment de possibilités par rapport à la difficulté élevée du réseau.

 

Le numéro de séquence (nSequence)

0xffffffff

Le numéro de séquence de l'entrée est maximal, ce qui fait que la transaction est considérée comme finale.

À l'origine, le numéro de séquence dans les entrées avait pour objectif de permettre les échanges répétés au sein de contrats, tels que les canaux de paiement. Ce modèle imaginé par Satoshi n'était pas suffisamment sécurisé et a par conséquent été abandonné. Cependant, la règle de finalité, qui fait que la transaction est considérée comme finale (pas de temps de verrouillage) si les numéros de séquence de toutes les entrées sont maximaux (comme ici), a été conservée.

Aujourd'hui, ce numéro de séquence est utilisé pour déterminer le temps de verrouillage relatif d'une entrée et pour signaler Replace-by-Fee.

 

Le nombre de sorties de la transaction

0x01

La transaction contient une seule sortie, celle créditant Satoshi de son revenu de minage. Cette sortie est constituée d'un montant et d'un script de verrouillage.

 

Le montant

0x000000012a05f200

Le montant de la sortie est donné dans la plus petite unité du système, unité qu'on a appelé le satoshi en hommage au créateur de Bitcoin. Ce montant correspond ici à 5 milliards de satoshis, soit 50 bitcoins. Il s'agit de la limite maximale du taux de création monétaire de l'époque (50 bitcoins par bloc).

 

Le script de verrouillage (scriptPubKey)

0x4104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac

Le scrpt de verrouillage est l'ensemble des conditions à fournir pour pouvoir dépenser la pièce correspondante. Ici, il possède la forme :

<clé publique> CHECKSIG

où la clé publique est 04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f. Il s'agit donc d'une sortie transactionnelle de type Pay to Public Key (P2PK), un schéma utilisé dans les débuts de Bitcoin, qui demande une simple signature pour débloquer les fonds. Cela explique le nom donné couramment à ce script : scriptPubKey.

Bien souvent, cette sortie est rétrospectivement attribuée à l'adresse 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa, obtenue en prenant l'empreinte de la clé publique. Cela est néanmoins purement esthétique car c'est bien la clé publique elle-même qui a servi à recevoir les bitcoins, pas l'adresse.

Fait intéressant : cette sortie transactionnelle n'est pas considérée comme dépensable par le protocole en raison de la façon dont le bloc de genèse est exprimé dans le code. Cette erreur de programmation pourrait être corrigée par un hard fork, mais cela ne serait ni utile (Satoshi n'a pas touché à ses bitcoins depuis qu'il a disparu), ni même souhaitable (incompatibilité du protocole). Les 50 premiers bitcoins créés sont donc probablement brûlés à tout jamais.

 

Le temps de verrouillage (nLocktime)

0x00000000

Le temps de verrouillage (donnée globale appartenant à la transaction) détermine la date à partir de laquelle cette transaction pourra être confirmée. En étant fixé à zéro, celui-ci est désactivé.

 

Les autres chaînes

Si le bloc de genèse constitue un fondement du protocole Bitcoin, il sert également de base aux différentes branches minoritaires de Bitcoin qui possèdent le même historique jusqu'à leurs scissions respectives : Bitcoin Cash, Bitcoin SV, Bitcoin Gold ou encore eCash/XEC. D'autres protocoles possèdent leur propre bloc de genèse et certains d'entre eux ont également incorporé la une d'un journal ou d'un magazine pour garantir que le lancement du réseau ne s'est pas réalisé avant la date donnée. Ainsi, le bloc de genèse de Litecoin (datant du 7 octobre 2011) contient la phrase suivante :

NY Times 05/Oct/2011 Steve Jobs, Apple’s Visionary, Dies at 56

Celui de Dash (datant du 19 janvier 2014) inclut la une suivante :

Wired 09/Jan/2014 The Grand Experiment Goes Live: Overstock.com Is Now Accepting Bitcoins

 


Source

Bitcoin Wiki, Genesis block

❌