Ordinals, un protocole NFT sur Bitcoin

3
1266

Traduction d’un article de Dennis Pourteaux publié le 25 janvier 2023 sur read.pourteaux.xyz.


A propos du compromis de longue date sur la taille des transactions, de la façon dont Taproot l’a accidentellement fait exploser, et d’un protocole NFT émergeant dans son sillage.

L’usage des transactions Bitcoin est un sujet de débat de longue date. Bitcoin est-il principalement destiné aux transactions financières, ou doit-il être une base de données sécurisée et distribuée pour un peu tout, des données d’applications aux noms de domaine ? Cette controverse s’est tue pendant des années sur la base d’un compromis prudent sur lequel je vais revenir, mais une bizarrerie de conception de Taproot a permis à un nouveau protocole NFT appelé Ordinals [Ndt : conçu par Casey Rodarmor] d’émerger et de dépasser les limites antérieures. Je reviendrai dans cet article sur l’éternel débat sur ce qui constitue une transaction bitcoin « légitime », sur les limites établies avec OP_RETURN, et sur la façon dont Taproot a permis à Ordinals de mettre fin à ces limites. Il s’agit d’une controverse émergente au sein de la communauté Bitcoin et mon objectif est d’exposer des points de vue divergents et de les replacer dans un contexte historique.

En 2010, un féroce débat s’est déroulé sur BitcoinTalk à propos d’un service DNS sur Bitcoin appelé BitDNS. Cette proposition préconisait que les noms de domaine de sites Web soient hébergés sur Bitcoin et bénéficient ainsi sa décentralisation et de sa résistance à la censure. Cependant, on craignait (y compris Satoshi) que cela ne gonfle excessivement la blockchain Bitcoin, rendant plus difficile la vérification des transactions financières, qui étaient considérées comme le principal (ou le seul ?) objectif de Bitcoin :

« Empiler tous les systèmes de quorum de preuve de travail du monde dans un seul ensemble de données ne passe pas à l’échelle. Bitcoin et BitDNS peuvent être utilisés séparément. Les utilisateurs ne doivent pas avoir à télécharger les deux pour utiliser l’un ou l’autre. » – Satoshi Nakamoto – décembre 2010.

Fait intéressant, Satoshi n’a pas soutenu que les blockchains alternatives prenant en charge des utilisations non financières ne devraient pas exister (une acceptation implicite des « altcoins »), il a simplement soutenu qu’elles ne devraient utiliser Bitcoin. Bitcoin, selon cette perspective, devrait principalement se concentrer sur les transactions financières […]. Et c’est ce qui s’est passé : BitDNS a finalement trouvé refuge dans une blockchain distincte appelée Namecoin. C’est une bonne chose pour des bitcoiners d’aujourd’hui, qui devraient sans cela, à chaque fois qu’ils tentent de synchroniser un nouveau nœud complet, télécharger toutes les données d’une expérience DNS qui a finalement raté.

Pourtant, le débat a duré : le grand registre de Bitcoin doit-il être réservé à l’enregistrement des transactions financières uniquement, ou une base de données sécurisée et distribuée pour toutes sortes application ? Bitcoin devient un réseau financier mondial, l’option 1 semble donc plus durable. L’option 2 permet davantage d’expérimentations qui pourraient développer l’écosystème Bitcoin à court terme et fournir aux mineurs un revenu qui deviendra nécessaire à mesure que la subvention globale diminuera.

Aucun de ces points de vue n’est sorti vainqueur et un compromis a été trouvé. En mai 2014, Bitcoin Core (le logiciel de référence des nœuds Bitcoin) a permis à la fonction OP_RETURN de relayer des messages dans la limite de 80 octets [Ndt : Pour être plus précis, il s’agit de 40 octets dans la version de 2014 et de 80 octets dans la version de 2016]. C’était une taille suffisante pour, par exemple, stocker des hachages liés à un service externe, mais obligeait ces services à utiliser efficacement l’espace des blocs Bitcoin. De plus les messages stockés sur OP_RETURN sont « prunables », ce qui signifie que même s’ils doivent être téléchargés par chaque nœud complet qui se synchronise, ils n’ont pas besoin d’être conservés ensuite dans sa mémoire.

De 2018 à 2019, environ 20 % de toutes les transactions Bitcoin étaient des transactions OP_RETURN. Ces transactions provenaient de protocoles comme Omni (la première base du stablecoin Tether), Counterparty (le premier protocole NFT utilisé pour les Rare Pepes) et Veriblock (un altcoin fonctionnant sur Bitcoin). Chacun d’entre eux s’appuyait sur OP_RETURN pour fonctionner et leur popularité a conduit à une hausse des frais de transaction pendant cette période. Comme auparavant, les partisans des applications OP_RETURN ont affirmé que des frais élevés sont positifs : cela augmente la demande d’espace de bloc et paie les mineurs pour sécuriser le réseau. Les opposants ont fait valoir que ces transactions prenaient la place de transactions financières qui sont le but de Bitcoin.

Veriblock, Omni et Counterparty ont connu le même sort que BitDNS : ils ne sont plus utilisés et l’utilisation d’OP_RETURN s’est effondrée. Même les Rare Pepes utilisent aujourd’hui Ethereum. Malgré cet effondrement, Veriblock et Omni ont ajouté environ 10 Go à la blockchain Bitcoin avec 32 millions de transactions que tous les nœuds bitcoin devront télécharger pour toujours. Heureusement, ces transactions restent élagables, il n’y a donc pas de coût de mémoire puisqu’elles ne font pas partie du set d’UTXO de Bitcoin.

Cela nous amène au moment présent : OP_RETURN est à peine utilisé (sauf lorsque j’écris des haïkus ou que je lance des protestations), les blocs de bitcoins sont rarement pleins et l’espace de bloc est bon marché. Pourtant, cela pourrait être sur le point d’être bouleversé, car une bizarrerie de conception de Taproot (une mise à niveau de Bitcoin en 2021) a involontairement permis un stockage illimité de données sans utiliser OP_RETURN du tout. Cela a été codifié par Ordinals, un nouveau protocole NFT fonctionnant sur Bitcoin.

Ordinals fonctionne en suivant individuellement des satoshis uniques (la plus petite unité d’un bitcoin) et en les réaffectant en tant que NFT. Les satoshis sont fongibles, mais la « Théorie Ordinale », une convention permettant de suivre systématiquement ces unités fongibles, permet à ceux qui l’adoptent de leur attribuer des caractéristiques non fongibles. C’est peut-être une idée difficile à comprendre au début, mais cela ressemble à une norme comptable de finances personnelles. Disons, par exemple, que j’ai acheté des actions Disney sur plusieurs années à de nombreux prix différents. Ensuite, je décide que je veux vendre une unité d’action Disney et je dois déterminer le prix d’entrée à utiliser pour calculer les gains que j’ai réalisés sur la vente. Quel prix d’entrée dois-je utiliser ? Eh bien, il n’y a aucun moyen de différencier les différentes unités d’actions Disney que j’ai achetées puisqu’elles sont toutes identiques, mais je peux opter pour une norme comptable comme LIFO (« Last In, First Out ») où l’unité vendue est supposée être la dernière achetée. De même, Ordinals utilise un système FIFO (« First In, First Out ») pour suivre les satoshis individuels d’une manière cohérente pour ceux qui souhaitent participer, mais sans compromettre la véritable fongibilité de ces Satoshis pour tous les autres.

Personnellement, je trouve cette façon de créer des NFT à partir de satoshis individuels assez élégante, car elle permet d’autoriser les fonctionnalités d’un jeton non fongible sans compromettre la véritable fongibilité qui est fondamentale pour la conception de Bitcoin. Ces NFT bénéficient de tous les avantages de la blockchain Bitcoin (l’immuabilité, la sécurité, la décentralisation) et ne nécessitent aucune modification du protocole. On peut dès aujourd’hui envoyer l’un de ces NFT à une adresse Bitcoin existante. Il y a cependant des défis à relever car les logiciels Bitcoin existants ne suivent pas la « Théorie Ordinale », et donc les satoshis auxquels on a attribué une valeur individuelle pourraient être accidentellement dépensés en tant que frais de transaction ou envoyés en tant que paiement. Ainsi, il existe un logiciel spécifique à Ordinals qui vous permet de suivre ces satoshis individuels afin qu’ils ne soient pas dépensés accidentellement.

Ce composant de l’architecture d’Ordinals n’est pas du tout controversé. En fait, je trouve cela assez excitant car je suis un bitcoiner de longue date qui aime également les NFT […]. J’ai passé beaucoup de temps à expérimenter d’autres propositions de NFT et de jetons sur Bitcoin (comme Counterparty et Omni) et je les ai trouvées maladroites, inefficaces et franchement obsolètes car elles sont mal entretenues.

La partie d’Ordinals qui ne manquera pas de susciter la controverse et le débat au sein de la communauté Bitcoin c’est la manière dont les NFT sont stockés.

En effet, les NFT sur Ordinals sont entièrement stockés on-chain. En comparant avec d’autres NFT (comme ceux qui circulent sur Ethereum), c’est souvent considéré comme un attribut positif, car « l’oeuvre d’art » est vraiment stocké de manière décentralisée et ne pointe pas simplement vers un jpg sur un serveur centralisé qui peut le modifier sur un coup de tête. Ainsi, les projets NFT les plus plébiscités sur Ethereum (comme les CryptoPunks) stockent véritablement le jpg sur Ethereum plutôt que sur « le cloud » afin que l’image soit aussi sécurisée et résistante à la censure qu’Ethereum lui-même.

La limite de taille de OP_RETURN visait à limiter la capacité de stockage de données non financières sur Bitcoin. Cette limite a été fixée à 80 octets, ce qui est juste suffisant pour une courte chaîne de texte. Pourtant Ordinals n’a été lancé que depuis quelques jours et déjà des personnes l’utilisent pour stocker sur la blockchain Bitcoin non seulement des images, mais aussi de courtes vidéos et même un pdf du livre blanc de Satoshi. Je répète, ce ne sont pas des liens vers le livre blanc ou une vidéo, le livre blanc et les vidéos sont des parties permanentes de la blockchain Bitcoin qui doivent être téléchargées par tous les nœuds complets. Comment Ordinals est-il capable de stocker des fichiers aussi volumineux malgré les limites d‘OP_RETURN ?

Ordinals profite simplement de la récente mise à niveau Taproot pour stocker les données des NFT dans des scripts de dépenses de Taproot. Taproot a assoupli les limites de taille des données témoins (signature) dans une transaction bitcoin, permettant au développeur d’Ordinals Casey Rodarmor de réutiliser les anciens opcodes (OP_FALSE, OP_IF, OP_PUSH) dans ce qu’il décrit comme des « enveloppes » pour stocker les données arbitraires des NFT. Bien sûr, ce n’était pas l’intention de Taproot, qui n’a assoupli la limite de taille des données témoins pour permettre de futures fonctionnalités sur les transactions Bitcoin.

Le résultat final est qu’il n’y a effectivement aucune limite en deçà de la taille de bloc sur ce qui peut être stocké sur la blockchain quand on utilise cette méthode (heureusement, comme OP_RETURN, les transactions Ordinals peuvent toujours être élaguées). En d’autres termes, il est possible de faire une transaction Ordinals qui occupe un bloc entier de 4 Mo si vous diffusez une telle transaction directement à un mineur (car en pratique, Bitcoin Core limite cette taille à 400 000 octets). Et même en considérant la limitation à 400 000 octets pour une transaction Ordinals, cette taille est encore cinq mille fois la taille de la limite d’OP_RETURN qui était à l’origine de toute la controverse de 2014. En effet, il n’y a plus de limite technique en dehors de taille de bloc pour le stockage de données sur bitcoin : s’il ça tenir dans un bloc, c’est une transaction Bitcoin.

Est-ce bon ou mauvais ? Je ne suis pas assez intelligent pour répondre à cette question, mais j’ai parlé à des partisans et à des opposants enthousiastes à cette utilisation de Bitcoin. Avant d’examiner des différents points de vue, je peux dire que les deux sont fondamentalement d’accord sur quelques points :

  1. L’utilisation de tapscript pour stocker des données arbitraires n’était pas l’intention des développeurs de Taproot.
  2. Il n’y a probablement rien qui puisse être fait pour limiter cette utilisation de tapscript.

Pour défendre Ordinals, je dirais que les NFT c’est amusant. C’est un concept qui date de l’époque des Colored coins, mais en raison des contraintes de conception de Bitcoin, la plupart des NFT ont été transférés à Ethereum. Les bitcoiners auraient de nombreuses raisons de souhaiter que des NFT circulent sur Bitcoin, la principale étant que Bitcoin a besoin de frais pour survivre à long terme. Les mineurs reçoivent actuellement une subvention pour entretenir le réseau, mais cette subvention diminue à chaque halving et à un certain moment, le réseau Bitcoin devra pouvoir vivre uniquement des frais de transaction. Ordinals et les NFT se disputent un espace de bloc limité, et génèrent ainsi des frais pour payer les mineurs et aider à rendre le réseau Bitcoin plus durable. Une seule application Ethereum comme Uniswap génère actuellement plus de frais que l’ensemble du réseau Bitcoin, alors peut-être devrions-nous ouvrir Bitcoin à ce genre d’applications qui permettent une sécurité durable. De plus, Bitcoin fonctionne sans autorisation. Qui peut juger quelles transactions sont légitimes et lesquelles ne le sont pas tant que les frais sont payés pour être inclus dans un bloc ? Si personne ne devrait être en mesure de dire si une transaction financière que j’effectue sur Bitcoin est « illégitime » ou pas, de la même manière, personne ne devrait pouvoir dire qu’il est illégitime d’effectuer une transaction non financière en bitcoin pour créer un NFT.

En face de cet argument, il y a celui de l’espace de bloc. Bien que bon marché aujourd’hui, est déjà extrêmement limité si on veut faire de Bitcoin un réseau financier mondial. La couche de base ne peut déjà pas prendre en charge ne serait-ce qu’une seule transaction pour chaque humain (par exemple, pour que chaque individu ouvre son propre canal Lightning), et encore moins s’étendre à tous les cas d’utilisation non financiers possibles. Ainsi, les utilisations non financières de l’espace de bloc de Bitcoin pourraient évincer les transactions financières « légitimes ». Bitcoin est un système de trésorerie de pair à pair, et en tant que tel, son objectif principal est de servir de médiateur aux transactions financières. Les détracteurs d’Ordinals soulignent également qu’il existera des méthodes plus efficaces de tokenisation sur bitcoin, comme le prochain Taro (également activé par Taproot) et affirment qu’Ordinals est une mauvaise utilisation de tapscript qui enfreint l’esprit du compromis OP_RETURN pour le stockage de données on-chain. Si des blocs entiers étaient occupés par des données témoins pour une transaction Ordinals, cela pourrait retarder la confirmation des transactions financières « légitimes », nuisant ainsi à la crédibilité de Bitcoin en tant que réseau financier fiable.

Mais il y a encore un autre problème : la partie de la transaction Bitcoin où le NFT est stocké c’est les données témoins. Il se trouve que les données témoins bénéficient d’une remise substantielle par rapport aux données d’autres parties d’une transaction, comme les entrées, les sorties et même les valeurs OP_RETURN. Cela signifie que ceux qui choisissent de créer des NFT ou de stocker des données sur Bitcoin en utilisant cette bizarrerie permise par Taproot le font avec une forte remise par rapport à ceux qui effectuent une transaction financière plus typique. Cela limite alors la contribution que ce stockage de données peut apporter au marché des frais, notamment par rapport à la taille des données stockées sur la blockchain et augmente le risque que ces transactions à prix réduits évincent les transactions financières.

Avec ces perspectives divergentes à l’esprit, il est possible qu’il existe une voie médiane où une utilisation modérée d’Ordinals sur Bitcoin serait possible sans encombrement significatif des transactions financières. Par exemple, Ordinals pourrait être une niche pour des NFT de grande valeur ou vintage qui accordent une grande importance à la sécurité et à la crédibilité du réseau Bitcoin. D’autant plus que l’espace de bloc deviendra rare si Bitcoin devient un actif financier dominant, les NFT Ordinals pourraient être limités à des NFT particulièrement anciens ou précieux. Il est peu probable que se développent de grandes séries étant donné qu’il y a un coût associé à la frappe de chaque NFT individuel (contrairement à Ethereum, où le coût de création d’une série de 1 ou 10 000 NFT est le même). Il existe de nombreuses autres chaînes où vous pouvez frapper des NFT de faible valeur pour pratiquement rien, il n’y a aucune raison de le faire sur Bitcoin. Parallèlement, Taro pourrait être utilisé pour des jetons fongibles comme des stablecoins et le réseau bitcoin pourrait toujours être principalement utilisé pour des transactions financières.

Le débat entre transactions financières et base de données existe depuis presque aussi longtemps que Bitcoin lui-même. Alors qu’il débat semblait être réglé depuis 2014 avec le compromis OP_RETURN, il est sur le point d’être relancé car tapscript a involontairement supprimé pratiquement toutes les limitations de stockage de données. Malgré l’insistance des bitcoiners les plus vocaux, il existe de nombreuses applications intéressantes en plus des transactions financières, et les NFT en sont un exemple. Bien sûr, l’intégrité du réseau Bitcoin pour les transactions financières est primordiale, et dans l’idéal toute utilisation non financière pourrait soutenir plutôt que nuire à cet objectif principal.


Lecture complémentaire :

Mon thread d’origine sur OP_RETURN

https://bitzuma.com/posts/op-return-and-the-future-of-bitcoin/

https://opreturn.org/op-return-per-month/

https://docs.ordinals.com/

Source : https://read.pourteaux.xyz/p/illegitimate-bitcoin-transactions