Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: pent on March 01, 2012, 01:11:04 PM



Title: [Math] Need an equation of block solving expectation
Post by: pent on March 01, 2012, 01:11:04 PM
Please help to draw an equation of block solving expectation (in hashes) depending on current difficulty/tarrget.

I see that one provided here is not correct: https://en.bitcoin.it/wiki/Difficulty#How_soon_might_I_expect_to_generate_a_block.3F

time = difficulty * 2**32 / hashrate

I suppose value expectation here is "difficulty * 2**32", but this equation provides incorrect solutions for current network values.

I was about to use formula for discrete finite random value: http://en.wikipedia.org/wiki/Expected_value

But the Bitcoin target is uint256, and i see no possible way to calculate it.


Title: Re: [Math] Need an equation of block solving expectation
Post by: pent on March 01, 2012, 03:56:02 PM
Sorry guys, all is fine :)

M = D * 2**256 / (0xffff * 2**208) = D * 2**256 / 2**224 = D * 2**32

or

M = MaxTarget * 2**32 / Target


Title: Re: [Math] Need an equation of block solving expectation
Post by: elrodvoss on June 22, 2012, 05:06:01 AM
I saw this and I was hoping that someone could help me figure out the math.

What I want to do in a excel file is enter in the Difficulty and Mhash/sec and give me the coins per day.

from that I should be able to add on any other figure, just need the basic math for difficulty/mhash.

Thanks in advance


Title: Re: [Math] Need an equation of block solving expectation
Post by: elrodvoss on June 22, 2012, 05:13:18 AM
Think I answered my own question:

time = difficulty * 2**32 / hashrate


But what does 2**32 stand for?


i understand that when I enter it into excel it would be

=sum difficulty *2??32/hashrate

I don't understand what the 2**32 equals, but I assume that number is times the difficulty and then divided by the hashrate




Title: Re: [Math] Need an equation of block solving expectation
Post by: nave on June 22, 2012, 05:32:10 AM
Think I answered my own question:

time = difficulty * 2**32 / hashrate


But what does 2**32 stand for?


i understand that when I enter it into excel it would be

=sum difficulty *2??32/hashrate

I don't understand what the 2**32 equals, but I assume that number is times the difficulty and then divided by the hashrate




It's 2 raised to the 32nd power. Or in excel 2^32, equal to 4 294 967 296.


Title: Re: [Math] Need an equation of block solving expectation
Post by: Pieter Wuille on June 22, 2012, 11:42:39 AM
Difficulty 1 corresponds to a maxtarget 0x00000000FFFF0000000000000000000000000000000000000000000000000000, or a probability of 65535/2**48. Difficulty D corresponds to a probability of 65535/(D * 2^48).


Title: Re: [Math] Need an equation of block solving expectation
Post by: Sukrim on June 22, 2012, 12:14:02 PM
Difficulty 1 corresponds to a maxtarget 0x00000000FFFF0000000000000000000000000000000000000000000000000000, or a probability of 65535/2**48. Difficulty D corresponds to a probability of 65535/(D * 2^48).
And 2^32 is a number very close to 65535/2^48, so it is often used in calculations that don't need to be 100% exact or where a few Satoshis more or less don't matter.