Aller au contenu principal
Minage

Extra-nonce

L'extra-nonce est un champ supplémentaire dans la coinbase, étendant l'espace de recherche du mineur au-delà du nonce de 32 bits. Indispensable pour les ASIC modernes capables d'épuiser un nonce en moins d'une seconde. Permet de varier la racine de Merkle.

Le problème : un nonce trop court

Dans l'en-tête de bloc Bitcoin, le champ nonce ne fait que 32 bits, soit 2^32 ≈ 4,29 milliards de valeurs possibles. Un ASIC moderne (Antminer S21 ou équivalent en 2026) hache à environ 200 Th/s, soit 200 × 10^12 hashes par seconde. Il épuise donc l'espace complet du nonce en :

2^32 / (200 × 10^12) ≈ 0,02 seconde

Soit environ 20 millisecondes. Bien avant qu'un bloc ne soit trouvé (en moyenne 10 minutes), tous les nonces possibles ont déjà été testés. Sans extra-nonce, le mineur serait coincé.

La solution : l'extra-nonce dans la coinbase

L'extra-nonce est un champ supplémentaire placé dans la transaction coinbase du bloc (la première transaction, qui crée les nouveaux bitcoins). Plus précisément, dans le champ scriptSig de cette transaction, qui peut contenir jusqu'à 100 octets de données arbitraires. Quand le mineur épuise les 4 milliards de nonces classiques, il incrémente l'extra-nonce, ce qui modifie la coinbase, donc la racine de Merkle, donc l'en-tête de bloc. Il recommence alors un cycle de 4 milliards de nonces sur cette nouvelle base.

Hiérarchie des nonces

| Niveau | Valeur | Coût de variation | |---|---|---| | nTime | timestamp, ~1 par seconde | Quasi gratuit | | nonce (header) | 32 bits | Quasi gratuit (hash header) | | Extra-nonce (coinbase) | 8 octets typiques | Recalcul Merkle root partiel | | Réordonnancement transactions | Variable | Recalcul Merkle complet | | Mise à jour template | Continue | Coût de communication pool |

Stratum et la division du travail

Dans le protocole Stratum V1, le pool divise le travail en attribuant à chaque mineur :

  • Le « job » : template de bloc + chemin de Merkle.
  • Un préfixe extra-nonce unique par mineur (extranonce1).
  • Une plage d'extra-nonce libre (extranonce2).

Le mineur fait varier librement son extranonce2 (typiquement 4 octets) et le nonce classique (4 octets), couvrant ainsi un espace de 2^64 hashes par job. Avec Stratum V2, ce mécanisme est revisité pour donner plus d'autonomie au mineur (qui peut choisir lui-même les transactions à inclure).

Implications pour l'analyse blockchain

L'extra-nonce laisse une trace identifiable de chaque pool. Les chercheurs et explorateurs peuvent extraire le préfixe et le rapporter au pool correspondant. On retrouve par exemple :

  • /Foundry USA/ en clair pour Foundry.
  • /AntPool/ pour AntPool.
  • Codes spécifiques pour F2Pool, ViaBTC, MARA, etc.

Cela explique comment les sites comme mempool.space identifient le pool ayant miné un bloc, sans réelle « signature » technique : c'est juste un texte dans la coinbase.

Évolutions et limites

Avec l'augmentation continue du hashrate, certains pools commencent à manquer même d'espace extra-nonce dans certains scenarios. Plusieurs propositions (notamment dans Stratum V2) permettent de générer des templates plus diversifiés en réordonnant légèrement les transactions ou en ajustant nTime. Le minage reste un casse-tête combinatoire en évolution constante.

À retenir

L'extra-nonce est l'astuce technique qui permet aux ASIC modernes de continuer à chercher des blocs alors que le nonce header est ridiculement petit pour leur vitesse. C'est un élément discret mais critique de la mécanique du minage. Voir nonce et coinbase.

Termes lies

← Retour au glossaire complet

Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.