# Theoretical block prediction

Theoretically speaking: I take a random hash as a previous hash and compute whole block of hashes. I'll wait for work on some mining pool until by some miracle this hash will be generated. Would I get whole bounty if I upload this block straightaway?

What you are asking is: can I create valid blocks (with only a coinbase transaction to and address of my choice) with a previous block hash that I chose at random that will be made valid if another block occurs with that hash.

Sure you can. Note that there are 2^256 hashes. The chance of finding one at random that will equal the hash of a to-be-discovered block are very very small. You would most probably just be wasting computing power/electricity/time.

Also: Note that you could spend the same amount of computing power at guessing the private keys of other users. Finding hits there would have the possibility of getting more than the block reward.

If you did this your uploaded block would be invalid, because the previous hash doesn't match the hash of the tallest block in the chain. Your broadcasted block would be rejected and you would have wasted the work done to produce a new block.

No, because if this were possible, bitcoin would be fundamentally broken, making bounties impossible. The whole point of the mining process is to demonstrate that the hashing power was performed after the transactions were committed. Were that demonstration invalid, bitcoin transactions could not be secure and thus there could be no bounties for mining.

Among the many things that would stop you are the fact that mining pool work units are more than just a has and the fact that who gets the reward is not determined by who uploads the block.

The hash you are waiting for is one of 2256 values.

But I'm only going to use 295, which is 39,614,081,257,132,168,796,771,975,168
(because that is the biggest 2N value I could find quickly)

Blocks are generated about every 10 minutes, so it would take about 396,140,812,571,321,687,967,719,751,680 minutes for all hashes to be generated.

That many minutes is approximately 75,369,256,577,496,515 MILLION Years.

Or, around 75 million, billion years.

Don't worry: You can expect your hash to come up in approximately 1/2 that time.

So you only have to wait 37 million-billion years.
(hint: The age of the universe is about 13 billion)

And remember, I did this math with 295.
2256 is much, much, much, much bigger.

Do you still think this is something to worry about?