Most mining pools use the stratum protocol. Part of this protocol includes a field for part of the extraNonce, named extraNonce1
. The extraNonce is just extra data that is put in the coinbase transaction and used as a nonce in addition to the block's nonce. Each mining worker can then append their own extraNonce to extraNonce1
. This second part is named extraNonce2
Typically what mining pools do is they issue work to each worker with a different extraNonce1
. This allows the worker to use the entirety of the nonce field as well as their own space for extraNonce2
. The submitted work can also be identified to belong to a particular worker by examining the extraNonce1
.
I'm not sure how specific mining pool software determine what extraNonce1
to give out, but an obvious method would be to do so sequentially - each time work is issued, extraNonce1
is incremented so that each worker gets something different to work on.