Extranonce to zmienne dane zwykle wstawiane do wejścia transakcji coinbase. Ich zmiana daje nowy materiał dla korzenia Merkle i haszowania nagłówka bez powiększania jego 32-bitowego pola nonce.
Pole nonce ma 32 bity i oferuje 2^32 wartości dla poza tym identycznego nagłówka. Extranonce nie wydłuża tego pola. Zmienia inne dane, by górnik zbudował kolejny nagłówek i ponownie próbował wartości nonce. [Bitcoin Developer Guide — Mining and nonce space]
Zmiana extranonce w coinbase zmienia jej serializację i TXID; przelicza się odpowiednią gałąź drzewa Merkle oraz korzeń Merkle w nagłówku. Inne transakcje nie muszą się zmieniać. Nie można po prostu zachować starego korzenia bez przeliczenia. [Bitcoin Developer Guide — Mining and nonce space]
Dwa całkowicie wolne bajty dają 2^16 wariantów. W modelu z 32-bitowym nonce i pozostałymi danymi stałymi daje to 2^48 kombinacji wejściowych. To przestrzeń różnych prób, nie liczba znalezionych bloków ani gwarancja po jej przeszukaniu. [Bitcoin Developer Guide — Mining and nonce space]
BIP 34 wymaga poprawnie zakodowanej wysokości bloku na początku scriptSig coinbase. Limit 100 bajtów dotyczy całego tego scriptSig, nie tylko extranonce. Wolny obszar nie może nadpisać wysokości ani naruszać formatu transakcji. [BIP 34 — Height in coinbase] [Bitcoin Developer Reference — Coinbase input]
Stratum V2 dzieli extended extranonce na stały prefiks upstream, część zarezerwowaną lokalnie i przestrzeń downstream. Podział zapobiega niepotrzebnie nakładającym się poszukiwaniom. Przydzielony extranonce_prefix nie jest automatycznie obszarem swobodnie zmienianym przez końcowego górnika. [Stratum V2 — Extended extranonce and jobs]
W SubmitSharesExtended coinbase składa się kolejno z coinbase_tx_prefix, extranonce_prefix, extranonce i coinbase_tx_suffix. Przesłane bajty extranonce muszą mieć uzgodnioną długość. Ta sama liczba zapisana krótszym ciągiem bajtów nie musi utworzyć tej samej transakcji. [Stratum V2 — Extended extranonce and jobs]
Standard Job w Stratum V2 używa stałego korzenia Merkle; zmieniają się tylko dozwolone części version, nonce i nTime. Standardowe urządzenie nie przesyła więc samo extranonce jak kanał extended. Węzeł nadrzędny może zmienić coinbase przy przygotowaniu nowego zadania. [Stratum V2 — Extended extranonce and jobs]
SetExtranoncePrefix w Stratum V2 dotyczy zadań wysłanych po tej wiadomości w danym kanale. Wynik musi pozostać powiązany z właściwym job_id i przydzieloną przestrzenią. Ostatni prefiks nie zastępuje zapisu, z którego zadania pochodzi starszy wynik. [Stratum V2 — Extended extranonce and jobs]
Pełniejszy obraz uzyskasz, czytając to hasło razem z Nonce, Drzewo Merkle, Mining Share, Block Template. Do tego hasła prowadzą również odsyłacze z ASIC Miner, Block Template, getblocktemplate.