Qu’est-ce qu’une transaction coinbase et comment fonctionne-t-elle dans Bitcoin ?

Qu’est-ce qu’une transaction coinbase et comment fonctionne-t-elle dans Bitcoin ?

Qu’est-ce qu’une transaction coinbase ?

Une transaction coinbase est la toute première transaction dans chaque bloc Bitcoin. C’est la manière dont un miner reçoit la récompense de ce bloc. Cette récompense s’appelle la block reward et se compose de deux parties : les bitcoin nouvellement émis, la block subsidy, et les frais de transaction de toutes les transactions normales que le miner a incluses dans ce bloc.

Le miner qui crée un bloc candidat place toujours cette transaction en premier dans le bloc. Grâce aux outputs, c’est-à-dire les destinations des fonds, le miner peut envoyer la récompense vers sa propre adresse ou vers un miningpool.


À retenir

  • Une transaction coinbase est toujours la première transaction d’un bloc Bitcoin.
  • Les miners utilisent cette transaction pour réclamer la block subsidy et les frais de transaction.
  • Les full nodes vérifient si la transaction coinbase respecte les règles de Bitcoin.
  • Une transaction coinbase possède une entrée spéciale qui ne renvoie pas vers un output Bitcoin antérieur.
  • La récompense n’est dépensable qu’à partir de la hauteur de bloc h+100.

Comment fonctionne une transaction coinbase ?

Un miner crée d’abord un bloc candidat avec la transaction coinbase en tête, puis ajoute éventuellement des transactions issues de la mempool. La mempool est, en termes simples, la file d’attente des transactions déjà envoyées au réseau, mais qui ne figurent pas encore dans un bloc.

Le miner choisit ensuite où la récompense doit être envoyée. Cela peut être sa propre adresse Bitcoin, mais dans les miningpools, il y a souvent un script de paiement déterminé par la pool. La pool gère ensuite elle-même la manière dont les participants sont rémunérés.

Dans l’entrée spéciale coinbase, on trouve notamment la block height, c’est-à-dire le numéro du bloc. Le miner peut aussi y ajouter des données supplémentaires, comme une nonce supplémentaire. Une nonce est une valeur que le logiciel de mining modifie sans cesse pendant la recherche d’un hash valide.

Pourquoi est-ce utile ? Avec le proof of work, le miner essaie un très grand nombre de hashes différents jusqu’à en trouver un qui respecte les règles de Bitcoin. Si la nonce ordinaire dans l’en-tête du bloc ne suffit plus pour effectuer de nouvelles tentatives, le miner peut modifier la nonce supplémentaire dans la transaction coinbase.

Cela modifie l’identifiant de transaction de la transaction coinbase. Ensuite, la merkle root change elle aussi, une sorte d’empreinte cryptographique récapitulative de toutes les transactions du bloc. Le miner dispose alors à nouveau de nombreuses possibilités pour essayer des hashes.

La transaction coinbase ne compte réellement que lorsque le miner trouve un bloc valide et que les nodes acceptent ce bloc. Un node est un ordinateur qui vérifie les règles de Bitcoin. Si un node rejette le bloc, la transaction coinbase ne fait pas non plus partie de la blockchain Bitcoin active.

Quelle est la différence entre une transaction coinbase et une transaction normale ?

La grande différence est qu’une transaction Bitcoin normale dépense des bitcoin existants, tandis qu’une transaction coinbase enregistre la récompense du bloc.

Une transaction normale utilise une ou plusieurs inputs. Une telle input renvoie vers un précédent « Unspent Transaction Output » encore non dépensé. Cet output non dépensé est aussi appelé UTXO. En termes simples, un UTXO est une portion de bitcoin qui est encore disponible pour être dépensée.

Dans une transaction normale, la valeur des outputs doit être égale ou inférieure à la valeur des inputs. La différence correspond aux frais de transaction que le miner peut recevoir.

Une transaction coinbase fonctionne autrement. Elle possède exactement une entrée spéciale coinbase. Celle-ci ne renvoie volontairement pas vers un UTXO existant. À la place, elle contient un hash nul comme identifiant de transaction précédent et l’index 0xffffffff.

Cela ne signifie pas que le miner peut créer des bitcoin à volonté. La valeur totale des outputs peut au maximum être égale à la subvention de ce bloc plus les frais des autres transactions du même bloc.

Deux règles simples de bloc s’appliquent aussi :

  • Un bloc doit commencer par exactement une transaction coinbase.
  • Il ne peut pas y avoir plus tard dans le même bloc une deuxième transaction coinbase.

Autre différence : les outputs d’une transaction coinbase ne sont pas dépensables immédiatement. Un délai distinct de 100 nouveaux blocs s’applique.

Quelles règles s’appliquent à une transaction coinbase ?

Une transaction coinbase doit respecter un certain nombre de règles fixes de Bitcoin. Si ce n’est pas le cas, tout le bloc est rejeté par le réseau.

Les règles les plus importantes sont :

  • La transaction coinbase est toujours la première transaction d’un bloc.
  • La transaction possède une entrée spéciale.
  • Cette entrée ne renvoie pas vers des bitcoin reçus auparavant, comme dans une transaction normale.
  • Le numéro du bloc est notamment inclus dans l’entrée, également appelé block height.
  • Le miner ne peut pas simplement s’attribuer une quantité arbitraire de bitcoin.
  • La récompense totale peut au maximum se composer de la block subsidy plus les frais de transaction du bloc.

La block subsidy est la quantité de nouveaux bitcoin émise lors de la création d’un bloc. Bitcoin a commencé avec une récompense de 50 BTC par bloc. Après chaque 210 000 blocs, cette récompense est divisée par deux. Cela se produit environ tous les quatre ans et s’appelle le Bitcoin halving. Les miners ne peuvent donc pas ajuster eux-mêmes cette récompense.

Si un bloc contient des données de witness SegWit, la transaction coinbase a encore une fonction technique supplémentaire. Une witness commitment est alors incluse dans la transaction coinbase. Cela relie cryptographiquement les données witness des transactions au bloc, afin que les nodes puissent vérifier ces données.

Pourquoi une transaction coinbase n’a-t-elle pas d’inputs normales ?

Une transaction coinbase possède bien une input, mais pas d’input normale qui dépense des bitcoin provenant d’un output antérieur.

C’est logique : la block subsidy est rendue disponible pour la première fois via cette transaction. Il n’existe donc pas encore de UTXO précédent vers lequel le miner peut renvoyer. Les frais de transaction du nouveau bloc reviennent eux aussi au miner via cette transaction.

On peut voir cela comme le règlement d’un bloc. Le miner a produit un bloc valide et peut donc réclamer exactement la récompense associée à ce bloc. Les full nodes vérifient ensuite si ce montant est correct.

Exemple : supposons que la block subsidy et tous les frais réunis forment un montant maximal donné. Si un miner inscrit plus que ce montant dans les outputs coinbase, le bloc est invalide. Le miner ne reçoit alors rien du tout, pas même le montant qui était autorisé.

L’entrée coinbase a en outre une fonction pratique pendant le mining. La block height obligatoire et la nonce supplémentaire éventuelle aident le logiciel de mining à effectuer sans cesse de nouvelles tentatives de proof of work.

Combien de temps prend la confirmation d’une transaction coinbase ?

Une transaction coinbase reçoit sa première confirmation dès que le bloc dans lequel elle se trouve devient partie intégrante de la blockchain Bitcoin active.

La durée n’est pas connue à l’avance. Le miner doit d’abord trouver un bloc proof of work valide et le réseau doit accepter ce bloc. Le proof of work est le système par lequel les miners effectuent des calculs pour trouver un hash conforme aux règles de Bitcoin.

L’output coinbase n’est ensuite pas encore dépensable immédiatement. Bitcoin prévoit qu’il ne peut être utilisé comme input qu’à partir de la hauteur de bloc h+100, où h est la hauteur du bloc dans lequel se trouve la transaction coinbase.

Si la récompense se trouve par exemple dans le bloc 500, elle peut être dépensée pour la première fois dans le bloc 600. Il s’agit donc de 100 nouveaux blocs, et non d’une durée fixe en heures ou en minutes. Les blocs ne sont en effet pas trouvés exactement au même moment à chaque fois.

Certaines applications de wallet crypto comptent les confirmations légèrement différemment à l’écran. C’est pourquoi cette règle est la plus claire : un output coinbase du bloc h devient dépensable dans le bloc h+100.

Pourquoi les transactions coinbase sont-elles importantes pour Bitcoin ?

Les transactions coinbase sont importantes parce qu’elles déterminent comment les nouveaux bitcoin sont émis selon les règles fixes de Bitcoin et comment les miners reçoivent leurs frais de transaction.

La block reward donne aux miners une raison d’investir de la puissance de calcul dans le proof of work et de créer des blocs valides. Sans transaction coinbase, il n’existe pas de manière standard d’attribuer cette récompense à l’intérieur d’un bloc.

En même temps, Bitcoin garde le contrôle sur la quantité de monnaie. Chaque full node vérifie lui-même si la transaction coinbase ne verse pas trop. Si un miner tente de réclamer des bitcoin supplémentaires, les nodes n’acceptent pas le bloc. Un seul miner ne peut donc pas modifier les règles à lui seul ni créer des bitcoin supplémentaires.

Cette transaction est aussi utile pour le mining lui-même. En modifiant des données comme une nonce supplémentaire, la merkle root change et le miner obtient davantage de hashes à essayer.

Avec SegWit, la transaction coinbase joue en outre un rôle dans l’enregistrement des données witness. Ces données transactionnelles supplémentaires sont ainsi liées cryptographiquement au bloc.

Quels risques et quelles limites présentent les transactions coinbase ?

La principale limite est que les bitcoin reçus ne sont pas disponibles immédiatement. Un miner ou une miningpool doit attendre que 100 nouveaux blocs aient été ajoutés avant que l’output coinbase puisse être dépensé. Cela limite temporairement la liquidité.

De plus, la récompense n’est valable que tant que le bloc se trouve dans la blockchain Bitcoin active. Si un bloc n’est pas accepté, ou s’il sort plus tard de la chaîne active à la suite d’une réorganisation de chaîne, l’output correspondant n’est pas dépensable.

Un miner doit aussi être très précis avec le montant. Réclamer trop rend tout le bloc invalide. Réclamer moins est autorisé, tant que la limite supérieure n’est pas dépassée, mais le miner perd alors une partie des revenus possibles.

Le coinbase scriptSig dispose d’un espace limité. Il peut mesurer au maximum 100 bytes et doit commencer par la block height. Il reste donc peu de place pour du texte libre ou d’autres métadonnées.

Tout ce qu’un miner y inscrit devient publiquement visible dès que le bloc est inclus. Une miningpool peut par exemple ajouter une balise reconnaissable. Cela peut révéler des informations sur l’entité qui a produit le bloc.

Enfin, cette récompense dépend aussi d’un script de dépense correct et des bonnes clés. Si le script est mal configuré ou si les clés nécessaires ne sont plus disponibles, la récompense peut rester non dépensable malgré la règle des 100 blocs.

En résumé

Une transaction coinbase est la première transaction spéciale de chaque bloc Bitcoin. Elle permet au miner de recevoir au maximum la block subsidy et les frais de transaction de ce bloc.

La transaction ressemble à une transaction Bitcoin normale, mais elle possède une entrée particulière qui ne renvoie pas vers des bitcoin antérieurs. C’est nécessaire parce que la block subsidy devient disponible pour la première fois par cette voie. En même temps, les nodes contrôlent strictement le montant que le miner peut réclamer.

Pour vous, en tant qu’utilisateur ordinaire de Bitcoin, une transaction coinbase n’apparaît généralement pas directement. Mais sous le capot, il s’agit d’un élément important de Bitcoin : elle relie le mining, le proof of work, l’émission de nouveaux bitcoin et les frais de transaction.

A propos de Finst

Finst est l'une des principales plateformes de cryptomonnaies aux Pays-Bas. Elle propose des frais de trading ultra-compétitifs, une sécurité de niveau institutionnel et une offre complète de services crypto incluant le trading, la conservation, le staking ainsi que des solutions de fiat on/off ramp. Fondée par d’anciens cadres de DEGIRO, Finst est autorisée sous MiCAR en tant que prestataire de services sur crypto-actifs par l’Autorité néerlandaise des marchés financiers (AFM). La plateforme est disponible pour les investisseurs particuliers et institutionnels dans 30 pays européens.

La plateforme crypto pour tous les investisseurs

Que vous soyez un trader actif ou un investisseur de long terme, Finst vous offre les outils pour investir dans les crypto-actifs en toute simplicité

Inscription