Glossaire / Minage et consensus
Maturité de Coinbase
Aussi appelé Maturité Coinbase, Coinbase maturity.
- Qu'est-ce que la maturité de Coinbase ?
- La maturité de Coinbase est la règle de consensus qui bloque les bitcoins nouvellement créés par un bloc pendant 100 blocs supplémentaires avant qu'une transaction puisse les dépenser.
Les récompenses de minage ne sont pas de l'argent dépensable dès qu'un bloc est trouvé. Bitcoin Core fixe COINBASE_MATURITY à 100 dans son en-tête de consensus, donc l'attente est de 100 blocs, soit environ 16 heures et 40 minutes au rythme cible d'un bloc toutes les dix minutes. Les bitcoins que vous achetez sur une plateforme d'échange ne sont jamais concernés par la règle, car tout ce qui vous est parvenu a déjà été dépensé au moins une fois.
Comment cela fonctionne
La maturité de coinbase est appliquée par chaque nœud complet comme une règle du réseau, ce qui signifie qu'aucun réglage, aucun portefeuille et aucun pool ne peut l'assouplir.
La vérification elle-même est une soustraction. En validant une transaction, un nœud inspecte chaque entrée, et lorsque le bitcoin dépensé provient d'une transaction coinbase, le nœud soustrait la hauteur de bloc de ce bitcoin à la hauteur à laquelle la dépense serait incluse. Si la différence est inférieure à 100, Bitcoin Core rejette la transaction avec le code bad-txns-premature-spend-of-coinbase et un message indiquant la profondeur à laquelle elle a été tentée. Une récompense versée au bloc 900 000 est dépensable pour la première fois au bloc 900 100, la hauteur la plus basse à laquelle cette soustraction atteint 100.
Le délai existe parce qu'une sortie coinbase est le seul type de bitcoin qui peut cesser d'exister. Les bitcoins ordinaires survivent à une réorganisation de la chaîne : les transactions qui les contiennent retournent dans la mempool et sont minées à nouveau. La récompense d'un bloc n'existe que parce que ce bloc est dans la chaîne, donc si une branche concurrente l'emporte, la récompense disparaît, et tout ce qui en découle aussi. Les dépenses construites sur une récompense qui s'est ensuite évaporée feraient tomber tous les portefeuilles qui y ont touché.
Bitcoin Core protège aussi l'écart entre les blocs. Chaque entrée de la mempool est marquée selon qu'elle dépense ou non une sortie coinbase, et le commentaire dans le code source en explique la raison : ces entrées sont réanalysées lors des réorganisations pour vérifier que la règle des 100 blocs est toujours respectée. Tout ce qui est redevenu immature est écarté plutôt que miné.
Une propriété de la règle prend les gens au dépourvu. L'attente se compte en blocs, pas en heures, donc une époque de difficulté lente l'allonge et une époque rapide la raccourcit. Bitcoin vise un bloc toutes les 600 secondes, d'où viennent à la fois les 16 heures et 40 minutes et les 144 blocs par jour bien connus, et une moyenne de onze minutes étire ces mêmes 100 blocs à 18 heures et 20 minutes.
Où vous la rencontrez
La manifestation la plus courante de la maturité de coinbase est un portefeuille qui affiche deux soldes au lieu d'un.
getbalances de Bitcoin Core renvoie un champ immature, documenté dans le code source comme le solde issu des sorties coinbase immatures, et getreceivedbyaddress et listunspent prennent tous deux un indicateur include_immature_coinbase qui vaut false par défaut. Le portefeuille de Core est plus strict d'un bloc que le consensus, gardant une récompense immature jusqu'à ce que le bloc qui l'a payée soit à une profondeur de 101, de sorte qu'un mineur solo voit le solde se libérer un bloc plus tard que ne l'exige la seule règle du réseau.
Les tableaux de bord des pools utilisent leur propre vocabulaire, généralement une colonne en attente ou immature à côté d'une colonne confirmée. Un pool qui paie un montant fixe par part crédite ses mineurs bien avant que les bitcoins ne mûrissent, il avance donc de l'argent contre une récompense qu'il ne peut pas encore déplacer, et c'est le pool, et non le mineur, qui est exposé si ce bloc est remplacé.
La règle fixe aussi le plancher du délai avant que les bitcoins minés n'atteignent un marché. Un mineur qui veut vendre attend que les 100 blocs passent, envoie vers une plateforme d'échange, puis attend sa politique de dépôt, normalement une poignée de confirmations plutôt qu'une centaine.
Maturité de coinbase vs confirmation
La maturité de Coinbase est une profondeur fixe inscrite dans le consensus, tandis qu'un nombre de confirmations est un total progressif dont chacun peut choisir le seuil.
Une plateforme d'échange qui exige six confirmations avant de créditer un dépôt a choisi ce nombre elle-même et peut le changer demain. La règle des 100 blocs n'est pas un choix. Elle ne couvre que les bitcoins créés par un bloc, elle s'applique à l'identique sur chaque nœud qui valide, et une transaction qui l'enfreint n'est pas lente mais invalide : aucun mineur ne peut l'inclure, car le bloc qui la porterait serait rejeté lui aussi.