ExtraNonce とはなにか
BitcoinCore のブロック生成処理を見ていると、Coinbase Tx の ScriptSig に ExtraNonce と呼ばれる値をセットしている処理がある。
code:cpp
txCoinbase.vin0.scriptSig = (CScript() << nHeight << CScriptNum(nExtraNonce)) + COINBASE_FLAGS; このフィールドは Developer Reference では以下のように説明してあります。
マイナーは通常、ハッシュ計算時にブロックヘッダーのマークルルートを更新するためにこのフィールドに余分なノンスを配置します。
Miners commonly place an extra nonce in this field to update the block header merkle root during hashing.
ふむ。マイニング時にブロックヘッダの nonce フィールドだけでは足りずに、Merkle Root を更新することで、更にハッシュ計算を続けるために使うということかな。
generatetoaddress
マイナーが使うということはわかったが、上の処理は regtest でブロックを生成するために使われる generatetoaddress RPC