Aller au contenu
buybitcoinsmart

Glossaire / Transactions et frais

Transaction de données nulles

Aussi appelé Transaction de portage de données, Transaction OP_RETURN.

Qu'est-ce qu'une transaction de données nulles ?
Une transaction de données nulles porte une sortie qui stocke un court message au lieu d'argent, marquée comme impossible à dépenser de façon prouvable afin que les nœuds puissent l'écarter de l'ensemble des bitcoins dépensables.

Les gens ont voulu inscrire des choses dans la blockchain bien avant qu'il existe un moyen sûr de le faire. Le moyen sûr est une sortie commençant par OP_RETURN, qui échoue immédiatement si quelqu'un tente de la dépenser, de sorte que les nœuds complets peuvent l'écarter de la mémoire plutôt que de la suivre indéfiniment. Presque toutes ces sorties contiennent zéro satoshi, et l'expéditeur ne paie que les octets.

Comment cela fonctionne

Une sortie de données nulles est un script de verrouillage qui ne peut jamais être satisfait, et c'est précisément le but.

Le script commence par l'opcode OP_RETURN et est suivi d'une poussée de données. Comme l'opcode interrompt le script dès qu'il est atteint, aucune combinaison de signatures ne peut déverrouiller la sortie, et les nœuds sont libres de la laisser hors de l'ensemble des sorties non dépensées qu'ils gardent en mémoire. Cet ensemble est l'élément coûteux qu'un nœud complet maintient, et garder les déchets hors de cet ensemble est toute la justification de cette fonctionnalité.

Bitcoin Core a rendu standard une seule sortie de ce type dans la version 0.9.0, publiée en mars 2014, avec une charge utile plafonnée à 40 octets. Le plafond est passé à 80 octets de données pendant 2015, ce que le nœud compte comme 83 octets de script une fois l'opcode et le préfixe de poussée inclus. La version 30.0, publiée en octobre 2025, a supprimé la limite par défaut et la restriction d'une sortie par transaction, après une longue dispute envenimée sur la question de savoir si la politique de relais devait chercher à décourager le stockage de données. Bitcoin Knots a conservé les réglages par défaut plus stricts, de sorte que les deux implémentations de nœud les plus utilisées divergent désormais à dessein, et un opérateur de nœud choisit son camp en choisissant un logiciel.

Ce changement est un changement de politique, pas un changement de consensus. Les données dans une sortie OP_RETURN ont toujours été valides ; la dispute n'a jamais porté que sur la question de savoir si les nœuds ordinaires devaient les relayer.

Où le voir

Regardez n'importe quel bloc sur un explorateur et vous trouverez des sorties de données nulles listées avec une valeur de zéro et un script affiché comme OP_RETURN suivi d'hexadécimal.

L'utilisateur intensif le plus ancien est Omni Layer, le protocole qui a émis la première version de Tether sur bitcoin, qui encodait ses instructions de cette manière. Les services d'horodatage tels qu'OpenTimestamps inscrivent un hachage d'un document dans une sortie, de sorte que vous pouvez ensuite prouver que le document existait avant ce bloc. Runes, le protocole de jetons lancé au bloc du halving le 20 avril 2024, place tout son jeu d'instructions dans une seule sortie de données nulles, ce qui explique pourquoi ce bloc et les suivants en étaient remplis.

Pour quelqu'un qui achète du bitcoin, l'effet pratique est indirect mais réel. Les sorties de données sont en concurrence pour le même espace de bloc que votre paiement, et une rafale de telles sorties fait monter le taux de frais que vous devez payer pour être confirmé. C'est le mécanisme derrière la plupart des pics de frais des dernières années.

Transaction de données nulles vs OP_RETURN

OP_RETURN est un opcode ; une transaction de données nulles est une transaction entière qui se trouve contenir une sortie l'utilisant. La distinction compte lorsqu'on lit la configuration d'un nœud, car les réglages de Bitcoin Core portent le nom de la catégorie de transaction plutôt que de l'opcode : -datacarrier décide si ces transactions sont relayées du tout, et -datacarriersize fixe la taille maximale de la charge utile. Chercher OP_RETURN dans la documentation ne permettra pas de trouver ces options.

Transaction de données nulles vs inscription

Les inscriptions placent leurs données dans un endroit complètement différent. Une inscription ordinale cache sa charge utile à l'intérieur d'un script témoin taproot, qui bénéficie de la réduction de poids SegWit et peut atteindre des mégaoctets, tandis qu'une sortie de données nulles est facturée au poids plein et était historiquement plafonnée à 80 octets. Cette différence de prix et de taille explique pourquoi les images et les objets de collection sont arrivés sous forme d'inscriptions plutôt que de données OP_RETURN, et pourquoi les deux suscitent des disputes très différentes sur l'encombrement de la blockchain.

À ne pas confondre avec

Questions fréquentes

Puis-je perdre de l'argent en envoyant du bitcoin vers une sortie OP_RETURN ?

Oui, et c'est irrécupérable. Toute valeur placée dans une sortie de données nulles est détruite, car le script ne peut jamais être satisfait par quiconque. Les portefeuilles fixent normalement le montant à zéro, de sorte que cela n'arrive que lorsque quelqu'un construit une transaction à la main.

Quelle quantité de données une transaction bitcoin peut-elle stocker de cette manière ?

Cela dépend des nœuds sur lesquels vous vous appuyez. Bitcoin Core a plafonné la charge utile à 80 octets de 2015 jusqu'à la version 30.0 en octobre 2025, qui a supprimé la limite par défaut. Bitcoin Knots conserve l'ancien plafond, de sorte que le relais n'est plus uniforme sur le réseau.

À lire ensuite

Termes associés

Plus de termes : Transactions et frais

Lire cette page en anglais