I read many articles explain the Bitcoin POW, but every article seems copy form each other. they just indicate find a nonce start from 1, but I still confused why find a nonce number is so difficult? I know the hash value must lower than the target difficulty.

for example the Block #502500, the nonce is 3965324040, so this block hash value lower than the target when the nonce equal 3965324040.

if I start from 1 increasing the nonce to 3965324040, that is mean computer doing the SHA256 3965324040 times, but almost every mining pool already reached PHash/s, so they just need less 1 second to find the nonce?

after 2016 second would go to next difficulty? because they just took 1 second to find a nonce.

did I miss something there?

Block #502500 from Blockchain.info


Miners try many block candidates per second. Every candidate is different in some way, but the nonce is only one of the ways in which they differ. Other ways include the timestamp, and - most importantly - the selection of transactions. In particular, the first transaction in the block is the coinbase transaction, which includes the miner payout, and the extranonce.

In practice, miners at the lowest level just increase nonces, because that's the easiest way to modify a block. However, as you point out, any modern hardware will run through all 232 nonces in less than a millisecond. So to continue searching, they will modify the extranonce inside the coinbase transaction any time they run out of block header nonces. This requires more work, as it means the Merkle tree has to be recomputed.

At the time of writing (January 2018) only one block candidate in 829 quintillion is valid. This means that all network miners combined, every 10 minutes, go through over 1.9 trilllion sets of 232 nonces.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy