Les jetons non fongibles (NFTs) sont habituellement émis sur des blockchains comme Ethereum, Solana ou BNB Smart Chain (on parle en général d’EVM pour Ethereum Virtual Machine) car ils sont gérés par un smart contract qui définit entre autres choses la quantité disponible et la possibilité d’en ajouter (on parle de “minter”) ou non. La blockchain Bitcoin, pionnière du secteur, ne semblait à priori pas adaptée pour accueillir des NFTs puisqu’elle n’est pas EMV.
Les Ordinals sont arrivés début 2023 pour changer la donne. Il s’agit d’un protocole permettant d’associer chaque satoshi, plus petite unité du Bitcoin, à un actif numérique unique, grâce à un système de numérotation. Chaque satoshi se voit attribuer un numéro d’identification unique, établi selon l’ordre dans lequel les satoshis sont minés et transférés pour la première fois.
Ce système confère ainsi une propriété de non-fongibilité aux satoshis semblable à celle des NFTs. On parle alors “d’inscription” pour désigner l’association d’une donnée (image, texte, etc.) à un satoshi via les Ordinals. Contrairement aux NFTs traditionnels dont les images sont généralement stockées sur des supports centralisés Web2 type Google cloud ou Amazon AWS, les données inscrites sur les Ordinals sont directement enregistrées sur la blockchain Bitcoin ce qui en fait des actifs beaucoup plus décentralisés…
Les Ordinals ont été rendus possibles grâce à la mise à jour Taproot intervenue en 2021, qui a ouvert la porte à plus de flexibilité sur la blockchain Bitcoin. Leur lancement relance aujourd’hui le débat sur les cas d’usages légitimes de l’espace de stockage des blocs de la blockchain. Certains arguent en effet que celui-ci devrait être réservé aux transactions financières, conformément à l’objectif premier du Bitcoin dont le créateur n’a jamais été “pour” un stockage de données externe à Bitcoin au sein des blocs de la blockchain Bitcoin…
Les NFTs sur Bitcoin, des rejetons non désirés ?
À l’origine, la blockchain Bitcoin n’était pas conçue pour permettre l’émission de NFTs (ou tout autre type de jeton). Plusieurs raisons techniques expliquent cela :
tout d’abord, Bitcoin est avant tout optimisé pour les transactions financières décentralisées grâce à son token natif, le Bitcoin. Son langage de programmation est volontairement limité pour restreindre les possibilités d’attaque du protocole et ne permet pas de créer des smart contracts complexes indispensables aux NFTs tel que cela est possible sur des blockchains dites “Turing-complet” comme Ethereum ou Solana.
Cette focalisation sur les transferts de valeur en Bitcoin est à l’origine de débats animés au sein de la communauté dès 2010. Cette année-là, la proposition BitDNS de créer un service décentralisé de noms de domaine sur Bitcoin avait été rejetée. On craignait à l’époque que le stockage de données non financières ne nuise à l’efficacité du traitement des transactions en Bitcoin
Par la suite, plusieurs projets ont quand même tenté d’étendre les fonctionnalités de la blockchain Bitcoin au-delà des simples transactions financières, comme Omni ou Counterparty. Mais ces tentatives se sont souvent soldées par un échec, les données ajoutées finissant par ne plus être utilisées.
Jusqu’à récemment ,la taille maximale de l’en-tête bloc sur la blockchain Bitcoin était limitée à 80 octets, pour éviter tout encombrement excessif. Cette limite très restrictive ne laisse pas assez de place pour stocker des quantités importantes de données ou de métadonnées, contrairement aux blockchains plus récentes. La mise à jour Taproot de 2021 est celle qui a permis d’assouplir ces restrictions, ouvrant la porte aux Ordinals alors que ce n’était pas sa finalité première.
On le voit, accueillir des NFTs n’a jamais été dans l’ADN de la blockchain Bitcoin. Son architecture et ses règles de consensus sont avant optimisées pour les transactions financières. Certains puristes estiment d’ailleurs toujours que Bitcoin devrait s’y cantonner.
Par ailleurs, le réseau Bitcoin privilégie les frais de transaction les plus bas possibles afin de permettre des micropaiements. Or, le coût énergétique de création des NFTs est bien plus élevé. Cela entrerait en conflit avec la philosophie première de Bitcoin. L’ajout de fonctions complexes comme les NFTs pourrait, selon certains, nuire à ces principes fondateurs ou ouvrir la porte à leur manipulation.
Le processus d’inscription (création) des Ordinals
Le processus de création (appelé “inscription”) d’un Ordinal commence préalablement par l’installation d’un client Bitcoin comme Bitcoin Core sur son ordinateur. Celui-ci devient alors un nœud du réseau, qui doit se synchroniser avec la blockchain Bitcoin. Une fois la synchronisation effectuée, il faut créer un portefeuille Ordinals capable de générer des adresses pour recevoir des satoshis.
La suite du processus se décompose en 3 étapes :
- Numérotation du satoshi : chaque satoshi se voit attribuer un numéro d’identification unique, basé sur l’ordre dans lequel il a été miné puis transféré une première fois. Cet ordre est respecté grâce à la “théorie ordinale”.
- Transfert du satoshi : le satoshi numéroté est ensuite transféré vers l’adresse du créateur de l’Ordinal.
- Écriture des données : lors de ce transfert, le créateur profite de l’espace de stockage pour inscrire les données de son choix (image, texte, etc.) et les associer au satoshi. Ces données seront désormais liées de manière permanente à ce satoshi unique.
Contrairement à un NFT Ethereum qui nécessite de payer des frais de transaction pour déployer un smart contract, la création d’un Ordinal ne requiert qu’un simple transfert Bitcoin. Son coût dépend donc simplement des frais de transaction sur le réseau à un instant T.
Une fois créé, l’Ordinal existe de manière permanente sur la blockchain Bitcoin. Ses données bénéficient des mêmes garanties d’immuabilité et de décentralisation que les transactions Bitcoin elles-mêmes.
La théorie ordinale établit que chaque satoshi miné ou transféré pour la première fois se voit attribuer un numéro d’identification unique. Ce numéro séquentiel détermine la rareté de chaque satoshi. Par exemple, le premier satoshi de chaque bloc est considéré comme “peu commun”.
La rareté d’un satoshi, et donc de l’Ordinal qui lui est associé, dépend de son numéro d’identification attribué selon l’ordre d’émission.
On distingue ainsi :
- Les satoshis communs : tout satoshi qui n’est pas dans les catégories suivantes
- Les satoshis peu communs : les premiers satoshis de chaque bloc miné
- Les satoshis rares : les premiers satoshis de chaque période d’ajustement de la difficulté
- Les satoshis épiques : les premiers satoshis après un halving
- Les satoshis légendaires : les premiers satoshis de chaque cycle entre deux halvings et ajustements de difficulté concomitants
- Le satoshi mythique : le premier satoshi du bloc genesis
Plus le numéro d’identification du satoshi est bas, plus l’Ordinal sera considéré comme rare.
Différences entre BRC-20 et Ordinals
Les tokens BRC-20 sont nés en mars 2023, s’inspirant du système Ordinals qui permet d’inscrire des données sur des satoshis pour en faire des NFT. Le développeur Domo a eu l’idée d’inscrire des données au format JSON pour créer des jetons fongibles échangeables sur la blockchain Bitcoin.
Contrairement aux smart contracts à l’origine des jetons ERC-20, les BRC-20 n’utilisent pas de contrats intelligents. Les données du jeton sont directement inscrites sur un satoshi via la méthode d’inscription Ordinals. Ce script JSON lisible par des portefeuilles compatibles BRC-20 contient toutes les métadonnées du jeton : nom, ticker, supply maximal, etc.
Alors qu’un Ordinal consiste à attribuer un contenu unique à un satoshi pour en faire un NFT non-fongible, un jeton BRC-20 suit un standard pour être pleinement fongible et échangeable. Il n’a pas vocation à être unique.
On peut donc résumer :
- Ordinals : inscription de contenus uniques (texte, image, vidéo, etc.) sur des satoshis pour créer des NFT
- BRC-20 : inscription de données JSON suivant un standard sur des satoshis pour créer des jetons fongibles échangeables
Comment en est on arrivé là ?
Si les Ordinals ont pu voir le jour en 2023, c’est grâce à une série de mises à jour techniques du protocole Bitcoin :
Tout d’abord, la mise à jour SegWit de 2017 a introduit la notion de “témoin séparé” (Separate Witness), qui sépare les signatures des autres éléments dans une transaction Bitcoin. Cette évolution a libéré de la place pour le stockage de données supplémentaires et a ouvert la voie à des opérations plus complexes.
Quelques années plus tard, la mise à jour Taproot de 2021 a encore accru la flexibilité des smart contracts et de l’espace de stockage disponible sur Bitcoin. Notamment, elle a fortement relevé les limites sur la taille des données témoins dans les transactions. Désormais, il n’y a pour ainsi dire plus de limite technique au stockage de données via les Ordinals, en dehors de la taille des blocs eux-mêmes. Il est même possible de remplir entièrement un bloc avec un seul Ordinal.
Bien que la mise à jour ne fut pas pensée pour permettre cela, le développeur des Ordinals, Casey Rodarmor, a alors eu l’idée d’utiliser cet espace témoin pour stocker les données des NFT liées à des satoshis uniques. Contournant ainsi l’ancienne limite technique des 80 octets pour le stockage de données via l’opcode (ou la fonction) “OP_RETURN” utilisée à la base pour marquer une sortie de transaction comme invalide mais qui peut être utilisée pour stocker des données arbitraires et qui sans créer de fausses entrées UTXO (le mécanisme qui empêche la double dépense sur le réseau Bitcoin).
Le contenu de l’inscription dans la blockchain est sérialisé en utilisant des empilements de données à l’intérieur de conditions non exécutées, décrits par Casey Rodarmor comme des “enveloppes”. Les enveloppes se composent d’un enchaînement de fonctions “OP_FALSE”, “OP_IF”… “OP_ENDIF” produisant des opérations nulles, qui ne changent pas la sémantique du script dans lequel elles sont incluses.
Un vieux débat
L’arrivée des Ordinals a relancé un vieux débat au sein de la communauté Bitcoin. Certains puristes considèrent que Bitcoin doit rester focalisé sur son rôle primaire de réseau financier décentralisé. Son espace de stockage blockchain doit selon eux être optimisé pour éviter toute congestion des transactions de paiement en Bitcoin. A noter qu’à la différence d’un NFT Ethereum qui ne stocke souvent qu’un lien vers les données, un Ordinal conserve directement les fichiers multimédias sur la blockchain Bitcoin
Ils craignent aussi que le succès des Ordinals n’encourage d’autres projets à stocker toutes sortes de données massives sur la blockchain. Cela reposerait la menace d’un encombrement qui avait fait tant polémique lors des débats de 2010. Certains développeurs influents de Bitcoin Core, comme Luke Dashjr, étaient d’ailleurs montés au créneau pour demander l’interdiction des Ordinals.
À l’inverse, certains arguent que l’explosion des frais de transaction générés profiterait grandement aux mineurs. Et contribuerait ainsi à sécuriser le réseau sur le long terme, alors que les récompenses de bloc diminuent au fil du temps.
Par ailleurs, l’aspect libertaire de la blockchain Bitcoin plaide pour que tout type d’usage soit autorisé, du moment qu’il respecte les règles du protocole et rémunère les mineurs.
Un compromis pourrait émerger, où les Ordinals resteraient limités à certains NFT rares et prestigieux tirant parti des qualités du réseau Bitcoin. Les stablecoins et autres jetons fongibles utiliseraient des protocoles dédiés comme le Taproot Assets Protocol (Taro) permis par la surcouche du Lightning network. L’espace des blocs resterait donc en priorité alloué aux transactions financières en bitcoins…