Bitcoin Forum

Other => Beginners & Help => Topic started by: crash893 on June 15, 2011, 05:55:11 AM



Title: hashing question
Post by: crash893 on June 15, 2011, 05:55:11 AM
Sorry this may have been published before but i was just curious


as i understand it the the 0000hash = (block data + random data) to get the correct hash (in this case with the N amount of leading "0")


is that random (like a salt but im not sure if it is called a salt) data coordinated in anyway with other users

is the salt generatoed randomly or is it brute force

any information would be great




Title: Re: hashing question
Post by: fonzo on June 15, 2012, 11:40:36 AM
I believe the number or preceeding 0s is set according to the required difficulty to achieve a roughly 10 minute interval.

In terms of salt, it's a bit like hashing the transaction data with millions of different salts until you achieve an output with n preceeding 0s.

https://en.bitcoin.it/wiki/Difficulty


Title: Re: hashing question
Post by: riX on June 15, 2012, 11:43:59 AM
If you're thinking about coordinating the nonce with other users to not calculate the same hashes, it is not needed, since you have different block data (the address the reward is payed out to).


Title: Re: hashing question
Post by: Meni Rosenfeld on June 15, 2012, 11:45:16 AM
The nonce ("random data") is incremented sequentially from 0 to 2^32-1. There's also an extraNonce in the coinbase transaction, which I believe is also incremented sequentially.

Some data is chosen randomly by each miner (such as the payout address of the coinbase transaction) and affects the Merkle root which is also part of the hashed data.


Title: Re: hashing question
Post by: tevirk on June 16, 2012, 03:57:57 PM
Note that with the GPU hardware most miners use, scanning the whole 2^32 range of nonce values takes a matter of seconds.  Mining software will scan the whole range looking for a valid hash for the block and then increment the timestamp or reorder some transactions so it can try again.


Title: Re: hashing question
Post by: Nolybab on June 16, 2012, 08:47:18 PM
Note that with the GPU hardware most miners use, scanning the whole 2^32 range of nonce values takes a matter of seconds.  Mining software will scan the whole range looking for a valid hash for the block and then increment the timestamp or reorder some transactions so it can try again.

Why would the miner increment the timestamp or reorder to try again? Once they get a valid hash for a block, wouldn't they just want to simply claim the 50 coins and move on?


Title: Re: hashing question
Post by: Meni Rosenfeld on June 16, 2012, 08:53:51 PM
Note that with the GPU hardware most miners use, scanning the whole 2^32 range of nonce values takes a matter of seconds.  Mining software will scan the whole range looking for a valid hash for the block and then increment the timestamp or reorder some transactions so it can try again.
Why would the miner increment the timestamp or reorder to try again? Once they get a valid hash for a block, wouldn't they just want to simply claim the 50 coins and move on?
The miner will scan the whole range looking for a valid hash. Only one time in ~1.6 million this scan will result in finding a valid hash. If it doesn't, the miner will tweak the header, typically by increasing the timestamp or the extraNonce.