Bitcoin en 2023 : Ordinals, BRC-20, frais et censure
L’année 2023 dans Bitcoin a été marquée par l’émergence et le succès des métaprotocoles Ordinals et BRC-20. Ce ne sont en effet pas les demandes d’ETF qui ont animé le plus les discussions au cours de cette année, mais la création et l’échange de jetons fongibles et non fongibles (NFT) par l’intermédiaire de ces standards. Cela s’explique par la vague spéculative ayant eu lieu à propos de ces jetons, et par l’encombrement de l’espace de bloc qu’elle a entraîné, menant à une hausse des frais de transaction considérable. Une certaine tension s’est installée et fait ressurgir des questions comme celle de l’utilisation légitime du protocole ou celle de la censure. C’est ce dont nous parlerons ici, en guise de rétrospective.
Ordinals, le protocole d’inscription et de transfert de NFT
Le protocole Ordinals a été conçu par Casey Rodarmor, développeur reconnu dans la communauté de Bitcoin. Ce protocole permet l’émission et le transfert de jetons non fongibles, aussi appelés NFT pour non-fungible tokens. La particularité de ces « artéfacts numériques » est que toutes leurs données sont inscrites sur la chaîne de blocs et qu’ils sont suivis et transférés via une numérotation des satoshis par nombres ordinaux, d’où le nom du protocole. Créer des NFT sur la chaîne de BTC était déjà possible depuis 2014 par le biais du métaprotocole Counterparty, mais le contenu lié n’était pas conservé sur la chaîne.
Cette possibilité d’inscription, même si elle existait antérieurement sous une forme plus indirecte, a été largement facilitée par la mise à niveau Schnorr-Taproot qui s’est produite le 14 novembre 2021. En effet, les inscriptions Ordinals sont réalisées au sein d’un script de déverouillage placé dans le témoin de la transaction et écrit à l’aide de Tapscript. Les inscriptions sont identifiées à l’aide de la structure particulière du script et en particulier par l’indicateur ord
.
Elles bénéficient du calcul des frais lié à SegWit qui pondère les données du témoin de façon quatre fois moins importante que les autres données de la transaction. Cette caractéristique donne a cette méthode un avantage par rapport au schéma d’inscription de données NULLDATA, qui utilise l’opérateur OP_RETURN pour stocker des données dans des sorties « classiques » indépensables. De plus, le fait de passer par Tapscript permettent à ces inscriptions de ne pas être limitées en taille par les restrictions des scripts classiques : celle des 3,6 ko standards, dont le respect est nécessaire à la bonne diffusion de la transaction sur le réseau (règle de mempool), et celle des 10 ko obligatoires, qui doit être respectée pour l’inclusion dans un bloc (règle de consensus). La taille d’une inscription Ordinals est donc plafonnée uniquement par la taille limite des blocs.
Le protocole Ordinals a été lancé officiellement le 20 janvier 2023 (UTC). Il a provoqué immédiatement le débat, comme en témoigne l’article de Pourtreaux publié le 25. Le 2 février, une image de près de 4 Mo a été incluse dans le bloc 774 628, suscitant l’émoi dans la communauté. Il s’agissait d’une image des « Taproot Wizards », détournement du mème de la Magic Internet Money contenant notamment les lunettes de soleil usuellement arborées par Udi Wertheimer, l’un des instigateurs de cette tendance. Le bloc était le plus gros bloc jamais miné sur BTC et l’est toujours aujourd’hui.
Ordinals a connu un succès fulgurant. Présenté comme une nouveauté, ce modèle a tout de suite plu aux artistes et aux spéculateurs en tous genres. Son succès a été tel que le sujet a été abordé par la presse généraliste, particulièrement friande de ce genre de phénomène. Mais il a vite été remplacé par un protocole autrement plus viral : la norme BRC-20.
BRC-20 : des jetons fongibles basés sur les inscriptions Ordinals
Le succès d’Ordinals a donné des idées aux gens. Ç’a été le cas du développeur et analyste domo qui a dévoilé le standard BRC-20 le 9 mars 2023 (UTC). Les jetons BRC-20, appelés comme tels en référence à la norme ERC-20 présente sur Ethereum, sont des jetons fongibles, c’est-à-dire que chaque unité du jeton est interchangeable avec une autre.
Le principe du standard BRC-20 est d’inscrire des fichiers JSON sur la chaîne afin d’effectuer des opérations sur les unités de compte. Trois fonctions existent : deploy
, qui permet de créer un nouveau jeton sur le réseau, mint
, qui permet de forger de nouvelles unités, et transfer
, qui permet de transférer les unités en notre possession. Chaque jeton a son sigle boursier, son plafond d’unités en circulation et sa limite d’émission par transaction. À titre d’illustration, voici le fichier de déploiement du jeton ordi (le premier jeton créé par domo lui-même et leader actuel du marché des BRC-20) inscrit le 8 mars dans le bloc 779 832 :
{ "p": "brc-20", "op": "deploy", "tick": "ordi", "max": "21000000", "lim": "1000" }
Là encore, les jetons fongibles sur Bitcoin ne forment pas quelque chose d’entièrement nouveau. En 2013-2014, on pouvait déjà émettre et utiliser des pièces colorées, qui ont d’ailleurs eu leur petit succès à l’époque, à l’instar des Open Assets de Coinprism, des CoinSpark assets de Coin Sciences, et des Colored Coins de Colu. Les BRC-20 nous rappellent aussi les user currencies qu’il était possible de créer sur le protocole Mastercoin (aujourd’hui appelé Omni), dont faisait partie notamment le stablecoin Tether USD (émis initialement sous le nom de Realcoin en 2014).
L’avantage de la norme BRC-20 est qu’elle est très simple et qu’elle se fonde sur un protocole existant très à la mode. Cependant, elle constitue aussi une piètre implémentation de jetons, non optimisée. Par exemple, les transferts nécessitent deux transactions : l’une pour autoriser le transfert par le biais d’un nouveau fichier JSON et l’autre pour effectuer le déplacement des satoshis à l’adresse souhaitée. Il est donc nécessaire de réécrire à chaque fois toutes les données liées au jeton (l’indicateur ord
, le format du fichier, et le fichier lui-même) sur la chaîne. De plus, des clients d’indexation doivent être déployés pour suivre la distribution des jetons, ce qui est une charge non négligeable.
Dès le début, domo lui-même expliquait dans un avertissement précédant la description technique de son protocole :
« Il s’agit uniquement d’une norme expérimentale amusante démontrant qu’il est possible de créer des états de solde en dehors de la chaîne à l’aide d’inscriptions. Elle ne doit en aucun cas être considérée comme LA norme pour la fongibilité sur Bitcoin avec Ordinals, car je pense qu’il est très certainement possible de faire des meilleurs choix de conception et des optimisations. Par conséquent, il s’agit d’une expérience extrêmement évolutive, et je déconseille fortement de prendre des décisions financières à partir de ce modèle. »
domo, brc-20 experiment, 10 mars 2023
La réelle particularité des BRC-20 est leur procédé d’émission. En effet, les jetons sont forgés par des transactions Bitcoin, contenant l’inscription liée à l’instruction mint
. Une limite d’émission par transaction est déterminée dès le début (pour l’ordi il s’agit de 1000 unités) ainsi qu’un plafond total (21 millions pour l’ordi). N’importe qui peut donc participer à la création initiale des jetons. Une fois qu’ils ont tous été forgés, il n’est plus possible d’en créer de nouveaux, à moins de modifier la norme BRC-20 elle-même.
Cette particularité donne une certaine rareté aux unités et c’est ce qui semble plaire. À ma connaissance, aucun BRC-20 n’a de cas d’utilisation revendiqué. Il s’agit essentiellement de memecoins servant de support à la spéculation.
L’envolée des frais de transaction
Comme on le sait, la taille des blocs de BTC est limitée par un paramètre appelé la limite de poids. Le poids d’une transaction est défini comme étant la moyenne pondérée de la taille des données de base et de la taille du témoin contenant les signatures, cette dernière impactant quatre fois moins la métrique. Le poids d’un bloc est la somme du poids des transactions qu’il contient. Le total est limité à 4 millions d’unités, ce qui correspond à environ 1,8 Mo pour un bloc contenant des transactions « normales » et qui peut aller jusqu’à 4 Mo pour un bloc incluant des transactions « atypiques ». Même si cette limite est complexe à appréhender, elle rend l’espace de bloc rare, ce qui peut soumettre les utilisateurs à une rude concurrence pour la confirmation de leurs transactions et conduire à une hausse significative des frais.
Le succès des Ordinals, et a fortiori des BRC-20, a eu pour effet de remplir l’espace de bloc disponible. Dès février, les inscriptions ont abreuvé les mempools des nœuds et ont commencé à prendre la place des transactions financières dans les blocs de la chaîne. Puis les jetons BRC-20 ont progressivement supplanté les artéfacts numériques au sein des blocs, faisant monter les frais en flèche au début du mois de mai.
Cette tendance s’explique par le fonctionnement particulier de ces jetons, décrit ci-dessus. Ces derniers sont forgés par les utilisateurs qui publient des transactions : quand leur prix monte sur le marché, il est rentable de publier de nouvelles transactions pour s’en procurer, ce qui mène in fine à un encombrement de l’espace de bloc.
Ainsi, c’est la spéculation autour de ces jetons qui est responsable de la montée record des frais qui a suivi. Cette spéculation a été nourrie par le déploiement de places de marché. Dès avril, des services d’échange ont commencé à émerger, comme Ordswap OTC ou UniSat Marketplace. RelayX, un service de swap fonctionnant sur Bitcoin SV, s’est vite adapté pour prendre en charge les principaux BRC-20. Puis des plateformes de change reconnues sont rentrées dans la dance : Gate.io a commencer à intégrer les BRC-20 à son offre avec l’ordi le 8 mai, BitMart l’a fait le 9 mai, OKX le 20 mai et KuCoin le 1er juin. À l’automne, après quelques mois d’accalmie, la tendance est revenue. C’est alors que Binance a listé l’ordi le 7 novembre 2023, ce qui a lancé une nouvelle vague spéculative. Le cours du jeton ordi est passé de 0,10 $ en avril à près de 20 $ en mai, puis est redescendu et est remonté pour atteindre 75 $ le 26 décembre.
Les frais de transaction sont montés en conséquence. Ils ont connu un premier pic en mai, mois durant lequel les frais médians ont pu atteindre 20 $ par transaction au maximum. Puis une nouvelle hausse à eu lieu durant l’automne, bien plus importante et durable que la précédente, et les frais médians ont ainsi effleuré les 25 $ le 16 décembre !
Ces épisodes de hausse de frais ont posé des problèmes fondamentaux, non pas en raison de leur niveau mais de leur volatilité. Après tout, les frais médians gravitaient autour des 50 centimes pendant toute l’année, et personne ne s’attendait à ce qu’ils descendent. C’est leur variation brutale qui vient perturber le bon fonctionnement du système : du jour au lendemain, certains cas d’usage sont anéantis et certaines pièces (UTXO) deviennent « indépensables ».
Ces périodes de congestion du réseau ont également montré les limites des solutions de seconde couche ayant pour but de résoudre le problème du passage à l’échelle. En effet, les hausses des frais ont perturbé l’usage du réseau Lightning, en décuplant parfois le coût d’ouverture et de fermeture des canaux. Les soldes trop petits et les canaux à la capacité trop faible perdaient leur caractéristique de minimisation de la confiance, ceux-ci étant à la merci d’une fermeture non coopérative par un tiers.
La tentation de la censure
Le succès des NFT Ordinals et des jetons BRC-20 a déclenché un fort rejet, qui a été exprimé sous sa forme la plus extrême par le développeur luke-jr, contributeur de longue date à Bitcoin Core et mainteneur de l’implémentation alternative Bitcoin Knots. En effet, en limitant l’espace de blocs et en faisant augmenter les frais, ces épisodes ont réduit l’utilité de Bitcoin en tant que monnaie, ce qui n’a pas manqué d’attiser les tensions. En raison de leur caractère principalement spéculatif, ces jetons ont été qualifiés de « spam », de « déni de service » ou d’« attaque ». La possibilité d’inscription a été elle appelée un « bug » et une « vulnérabilité ».
Ce rejet a fait naître la tentation de procéder à des actions concrètes pour limiter voire supprimer cette activité jugée indésirable. Ces actions préconisées ont été communément appelées de la censure, même si chacune d’entre elles s’appliquait à un niveau différent.
La première action proposée était le non-relai des transactions contenant des inscriptions Ordinals dans les mempools des nœuds. Cette proposition s’est matérialisée par un « correctif » appelé Ordirespector, publié par luke-jr le 1er février pour Bitcoin Core et adapté pour Umbrel et Citadel deux semaines plus tard. Néanmoins, la mesure s’arrêtait au relai de ces transactions : il s’agissait d’une règle de gestion pratique, un filtrage au niveau de la mempool du nœud, et les blocs contenant des inscriptions Ordinals continuaient à être acceptés. Une utilisation généralisée de ce « correctif » aurait permis de gêner la diffusion des inscriptions jusqu’aux mineurs, sans pour autant l’empêcher totalement : on peut parfaitement imaginer que les mineurs, ayant intérêt à miner ces transactions en raison de leurs frais, auraient pu mettre en place un nœud public spécial pour les recevoir.
La deuxième action préconisée et appliquée a été le déploiement de ce rejet au sein d’une coopérative minière, menant à la production de blocs ne contenant pas d’inscription Ordinals. Le déploiement a été réalisé au sein de la coopérative Ocean, lancée le 28 novembre 2023 par luke-jr et Jack Dorsey (ancien PDG de Twitter), qui se voulait être l’héritière de l’ancienne coopérative Eligius, gérée par le même luke-jr entre 2011 et 2017. Ocean se basait initialement sur Bitcoin Knots, qui rejetait les inscriptions Ordinals : cela fait que les quelques blocs qu’elle a produit en 2023 ne contenaient pas ces inscriptions mais uniquement des « transactions financières réelles » (ce qui impliquait tout de même les transferts de NFT). De plus, l’implémentation limitait aussi les sorties NULLDATA à 40 octets de données utiles, de sorte qu’elle ignorait aussi d’autres transactions comme les transactions de répartition (« tx0 ») du service de mélange Whirlpool de Samourai Wallet. Il s’agit ici d’une censure passive, qui consiste à confirmer des transactions selon une logique non strictement économique. Depuis le 21 décembre cependant, Ocean est revenu sur cette mesure et les hacheurs de la coopérative peuvent désormais choisir la politique qu’ils appliquent à leurs blocs entre trois possibilités (Knots, Core + Ordisrespector, Core par défaut).
Enfin, la troisième proposition d’action a été celle de procéder à un soft fork pour remédier au problème d’Ordinals, partiellement ou totalement. Ce soft fork aurait été appliqué par les mineurs (vraisemblablement) suite à la demande d’une partie de l’économie. Il s’agissait ni plus ni moins de réaliser une censure active des transactions contenant des inscriptions, en invalidant les blocs incluant de telles transactions. Ce soft fork aurait pu conduire à une scission dans le cas où il n’aurait pas été appliqué par la puissance de calcul majoritaire.
Heureusement, un tel soft fork n’a pas eu lieu et il est peu probable qu’on en arrive là. Cependant, si cette solution peut paraître drastique et contraire aux principes de Bitcoin, elle n’est pas impossible et il est toujours enrichissant de voir comment elle peut émerger, y compris au sein de la communauté de Bitcoin elle-même. Les gens trouvent toujours des raisons pour vouloir censurer l’autre. À titre d’illustration, en janvier 2012, luke-jr avait réalisé une attaque de censure complète avec sa coopérative Eligius contre le système Coiledcoin, qui était miné en combinaison avec Bitcoin ; il n’est pas exclus qu’il recommence un jour si le besoin s’en fait ressentir.
Désapprouver et décourager, mais ne pas rejeter
Les protocoles Ordinals et BRC-20 ont donc marqué l’année 2023. Ils ont fait augmenter les frais de manière drastique et fait surgir des discussions qui ne manqueront pas de réapparaître dans les années à venir. La censure a probablement été le sujet central, celle-ci trouvant des partisans plus ou moins zélés au sein de la communauté.
Rappelons que l’essence de Bitcoin est la résistance à la censure. Se proposer de juger quelles transactions sont légitimes ou pas en commençant à appliquer des mesures, c’est s’engager sur une pente savonneuse. Même si l’entrave de la diffusion sur le réseau et le filtrage des transactions au sein des blocs ne forment un problème grave, ces actions préparent le terrain pour une forme de censure autrement plus menaçante : la censure active imposée par le régulateur financier aux différentes coopératives conformistes.
Cela étant dit, ne pas prôner la censure des inscriptions ne veut pas dire qu’elles ne doivent pas être critiquées. Les jetons BRC-20 par exemple sont des objets spéculatifs illustrant la dégénérescence du monde de la cryptomonnaie, dégénérescence qui a pour effet de perturber l’adoption durable et pérenne des commerçants. Ne pas les empêcher ne signifie pas les approuver : tout ce qu’un bitcoineur peut faire (si tant est qu’il doive faire quelque chose), c’est décourager cette tendance, en l’ignorant en premier lieu, puis en expliquant calmement à quel point elle est superficielle et sans fondement, et qu’elle a vocation à tomber dans l’oubli comme tous les autres engouements futiles avant elle. Bitcoin, de son côté, survivra.
Merci pour cet article très éclairant. Je ne partage cependant pas ta réprobation de ce que tu appelles « la censure ». Un mineur ou un pool de minage est libre de choisir les transactions qu’il veut quand il compose un bloc. La « censure » des transactions (ou plutôt libre choix des transactions) est au cœur du protocole. Si la plupart le font sur des critères économiques, rien ne les y oblige et ils peuvent bien fonder leurs choix sur d’autres critères. Cela baisse leur rentabilité mais ça ne remet pas en question la résistance à la censure de Bitcoin, puisque d’autres entités auront d’autres politiques. Quant au risque de voir des pools s’aligner pour censurer des transactions, il devrait s’amenuiser avec l’arrivée de Stratum V2.
Merci !
Il n’y a pas que moi qui appelle ça de la censure. C’est comme quand un média social applique une certaine politique de modération (en supprimant les opinions sceptiques à l’égard du vaccin anti-covid par ex.) Ça ne pose problème que dans le cas où il n’y a pas de concurrence / que toutes les plateformes appliquent les mêmes politiques. Cependant, pour moi, on devrait parler de censure passive dans ce cas pour la différencier de la censure active (la vraie censure) qui consiste à ignorer les blocs contenant les transactions incriminées.
Stratum V2 offre plus de transparence (c’est bien !), mais n’empêche pas la censure en soi, car les coopératives décident du protocole de minage qu’elles appliquent. Seule la décentralisation du minage donne une réelle garantie contre cette censure.