Author

Topic: Why doesn't the FASTEST computer always win (i.e., discover the new block)? (Read 2250 times)

member
Activity: 70
Merit: 10
True, if the fastest computer is faster than all other computers combined.  Remember,  it is competing with the world.
sr. member
Activity: 297
Merit: 250
But fastest computer always win in the long run..
full member
Activity: 161
Merit: 100
What's also not mentioned here is that everyone is not trying to solve the same 'puzzle', it's very, very unlikely that any two miners will actually be trying to solve the same problem, as individual 'puzzles' are based on a unique set of transactions : everyone has a different block to hash to find the solution.

However, overall the same rules of probability apply, and often it's not the exact solution that wins, just one that is equal to or less than the target. It's still a matter of more firepower = more chances of solution.

Try looking at the Getwork or Getblocktemplate (https://en.bitcoin.it/wiki/Getwork , https://en.bitcoin.it/wiki/Getblocktemplate) entries, the latter gives more explanation of how a block for solution is 'formed' and also explains what a Merkle Root is. It took me bloody ages to try to get a straight answer about how hashing actually works, so I can sympathise with the confusion over the whole process.

 
newbie
Activity: 42
Merit: 0
lets say i have a listing of blocks from the future, how can i match them up in cgminer so it only tries to solve those "certain" blocks
member
Activity: 70
Merit: 10

If the odds of any random hash to be below the target are one in a trillion then it will take everyone combined making 1 trillion attempts on average for one of those persons to produce a winning hash.

What are the odds, at the current difficulty, of one hash attempt solving a block? I always hear things like "it will take an average of 50,000 days" or "0.0000021%". But, for my mind to understand the odds, I would like to hear it phrased like "the odds are 1 in 1,000,000,000,000". Is it really "one in a trillion"?

1 in (2^32 * Difficulty) or right now 1 in 13,441,414,437,063,900,000 (that's 13,441 quadrillion).  Or another way of saying it is that it takes on average 13,441 quadrillion hashes before someone in the world finds one that is smaller than the target.


So.... to phrase it in a different way, what you are saying is that I should sell my 1.6GH USB Antminer and buy PowerBall tickets?
hero member
Activity: 490
Merit: 500
Assume, I have a supercomputer that is able to mine a block in a single minute (as opposed to 7-10 mins taken by everyone else). Since the computation is largely parallel, its always possible to mine faster and faster.

Then, why can't the above scenario lead to me being the winner all the time?

In simple terms..

The more GH you have the more Lotto tickets you are buying.

But solving a block is random luck, like winning the Lottery, someone can do it with a single ticket!  Tongue

Believe it or not I learned that from BFL's Josh Zerlan!
donator
Activity: 1218
Merit: 1079
Gerald Davis

If the odds of any random hash to be below the target are one in a trillion then it will take everyone combined making 1 trillion attempts on average for one of those persons to produce a winning hash.

What are the odds, at the current difficulty, of one hash attempt solving a block? I always hear things like "it will take an average of 50,000 days" or "0.0000021%". But, for my mind to understand the odds, I would like to hear it phrased like "the odds are 1 in 1,000,000,000,000". Is it really "one in a trillion"?

1 in (2^32 * Difficulty) or right now 1 in 13,441,414,437,063,900,000 (that's 13,441 quadrillion).  Or another way of saying it is that it takes on average 13,441 quadrillion hashes before someone in the world finds one that is smaller than the target.
hero member
Activity: 502
Merit: 500
Talking about luck...
member
Activity: 70
Merit: 10

If the odds of any random hash to be below the target are one in a trillion then it will take everyone combined making 1 trillion attempts on average for one of those persons to produce a winning hash.

What are the odds, at the current difficulty, of one hash attempt solving a block? I always hear things like "it will take an average of 50,000 days" or "0.0000021%". But, for my mind to understand the odds, I would like to hear it phrased like "the odds are 1 in 1,000,000,000,000". Is it really "one in a trillion"?
donator
Activity: 1218
Merit: 1079
Gerald Davis
Thanks for the answer. The above quote in particular was most enlightening (the "all the miners" part) -- which essentially means that for a miner to have an "upper hand" (even probabilistically), he would have to have a computer that is faster than the ALL THE MINERS COMBINED!

Yes this is the 51% attack.  If a miner "played fairly" even with 51% or 90% of the blocks he would still only solve his fair share (his share of hashing power / total hashing power) however due to some properties on how Bitcoin solves competing chains a miner with 51% of the computing power can "cheat" and solve all the blocks by rejecting all blocks which aren't his. 

It is the limit to the "proof of work" as a means to force a consensus on the network.
newbie
Activity: 4
Merit: 0
Dear "DeathAndTaxes":

Yes, I understand -- I actually removed my question before your reply. Smiley Anyway, your explanation confirms my understanding. Thanks.
donator
Activity: 1218
Merit: 1079
Gerald Davis
No that is incorrect.  It doesn't matter if miners are working on the same block or different blocks it takes the same number of attempt (collectively) on average to "solve" a block.

Imagine I make a game.  If you roll three dice and you get three ones you win.    The odds are 1 in 216 (6^3).  On average it will take you 216 attempts to win.  Now imagine two of you are playing.  It will still take you combined an average of 216 attempts for SOMEONE to win.  The range of possible numbers is 3 to 216 and the target is 3.

For the "game of solving blocks" the contents of the block are immaterial to the odds.  Simplified if the block hash is smaller than or equal to the target it wins.   It is simply a random probability.  Very much like the dice game except the "roll" is a hash with a value between 0 and 2^256 - 1.   What transactions a miner is putting into a block doesn't matter.  The hash is still a random number.  Each hash from each miner has an equal chance of being below the target.

There is no progress towards solving a block.  You hash a block, if the hash is smaller than the target (like rolling 3 ones) you win.  If you don't the hash is worthless and you make a change and try again.  If the odds of any random hash to be below the target are one in a trillion then it will take everyone combined making 1 trillion attempts on average for one of those persons to produce a winning hash.
newbie
Activity: 4
Merit: 0
We say a block takes an average of 10 minutes because it the odds of each hash solving a block are so low that it takes all the miners in the world making attempts for 10 minutes on average to end up with a "winner".


Thanks for the answer. The above quote in particular was most enlightening (the "all the miners" part) -- which essentially means that for a miner to have an "upper hand" (even probabilistically), he would have to have a computer that is faster than the ALL THE MINERS COMBINED!
donator
Activity: 1218
Merit: 1079
Gerald Davis
Think of mining as a lottery.  Each hash is like a lottery ticket.   A slower miner will produce less tickets per hour than a faster one but any ticket could win.  If you and I enter a lottery and you have 50x as many tickets as me it doesn't guarantee you will win.  You are more likely to win, and if we played every week with you have 50x the tickets in the long run you would win 50x as often as I do but I would still win some weeks.  Even if you had a million tickets and I had, I would win some weeks.  Miners don't make progress towards a block a losing ticket is just a losing ticket and your mining rig tries another one.  We say a block takes an average of 10 minutes because it the odds of each hash solving a block are so low that it takes all the miners in the world making attempts for 10 minutes on average to end up with a "winner".
legendary
Activity: 2058
Merit: 1452
because in mining, solving a block is random. a 2x faster miner will solve blocks in half the time on average. therefore it's possible for even the slowest miners to have a chance at a block.
member
Activity: 70
Merit: 10
If you were able to mine a block in a minute as opposed to the 7 to 10 minutes it takes everyone else, that would mean you have 7 to 10 times the hash rate of the entire mining community. You would own the blockchain. But such a computer does not exist. Even if it did it would be too expensive to waste on mining Bitcoin. If it were cheap enough then everyone else would have them and you are back to where you started. [Edit] I think that what I wrote is true but I'm a newb. Hopefully an expert will correct me or agree :-)
newbie
Activity: 4
Merit: 0
I'm sure I am missing something. Here's the scenario.

Assume, I have a supercomputer that is able to mine a block in a single minute (as opposed to 7-10 mins taken by everyone else). Since the computation is largely parallel, its always possible to mine faster and faster.

Then, why can't the above scenario lead to me being the winner all the time?

Thanks in advance.

Jump to: