Extranonce adalah data yang dapat diubah dan biasanya disisipkan ke input transaksi coinbase. Perubahannya menyediakan input baru bagi Merkle root dan hashing header tanpa memperbesar kolom nonce 32 bit pada header.
Kolom nonce memiliki 32 bit dan menyediakan 2^32 nilai untuk header yang bagian lainnya sama. Extranonce tidak memperpanjang kolom ini. Ia mengubah data lain agar penambang dapat menyusun header baru dan mencoba nilai nonce lagi. [Bitcoin Developer Guide — Mining and nonce space]
Mengubah extranonce coinbase mengubah serialisasi dan TXID-nya; cabang pohon Merkle terkait dan Merkle root header dihitung ulang. Transaksi lain tidak perlu diubah. Namun akar lama tidak boleh sekadar dipertahankan tanpa perhitungan ulang. [Bitcoin Developer Guide — Mining and nonce space]
Dua byte yang sepenuhnya bebas menyediakan 2^16 variasi. Dalam model dengan nonce 32 bit dan data lain tetap, ini memberi 2^48 kombinasi input. Itu ruang percobaan berbeda, bukan jumlah blok ditemukan atau jaminan berhasil setelah seluruhnya dicari. [Bitcoin Developer Guide — Mining and nonce space]
BIP 34 mewajibkan tinggi blok yang dikodekan dengan benar di awal scriptSig coinbase. Batas 100 byte berlaku untuk seluruh scriptSig tersebut, bukan hanya extranonce. Area bebas tidak boleh menimpa tinggi atau melanggar format transaksi. [BIP 34 — Height in coinbase] [Bitcoin Developer Reference — Coinbase input]
Stratum V2 membagi extended extranonce menjadi prefiks upstream tetap, bagian cadangan lokal dan ruang downstream. Pembagian mencegah pencarian tumpang tindih yang sia-sia. extranonce_prefix yang diberikan tidak otomatis menjadi area bebas diubah penambang akhir. [Stratum V2 — Extended extranonce and jobs]
Untuk SubmitSharesExtended, coinbase disusun berurutan dari coinbase_tx_prefix, extranonce_prefix, extranonce dan coinbase_tx_suffix. Byte extranonce yang dikirim harus sesuai panjang yang disepakati. Angka sama yang dikodekan dengan lebih sedikit byte belum tentu menghasilkan transaksi sama. [Stratum V2 — Extended extranonce and jobs]
Standard Job pada Stratum V2 memakai Merkle root tetap; hanya bagian yang diizinkan dari version, nonce dan nTime yang berubah. Perangkat standar tidak mengirim extranonce sendiri seperti kanal extended. Node upstream dapat mengubah coinbase saat menyiapkan tugas baru. [Stratum V2 — Extended extranonce and jobs]
SetExtranoncePrefix pada Stratum V2 berlaku untuk tugas yang dikirim setelah pesan itu pada kanal terkait. Hasil harus tetap terhubung dengan job_id dan ruang alokasi yang benar. Prefiks terbaru tidak menggantikan catatan tugas asal hasil yang lebih lama. [Stratum V2 — Extended extranonce and jobs]
Untuk gambaran yang lebih utuh, baca entri ini bersama Nonce, Merkle tree, Mining Share, Block Template. Entri ini juga dirujuk dari ASIC Miner, Block Template, getblocktemplate.