Let's assume we try to mine the next block after block No.749256 whose hash is : 00000000000000000009b06cb40e4302fc0dab3f8031f058351e904e14be2b45.
--> current difficulty is 19 leading zeros (76 zero bits=19*4) out of 256
--> the size of the population is
N=2^256In big-endian representation, double_sha256 outcome should have 76 ending zeros. This is equivalent to saying that the leading 180 bits can be any number
--> total number of possible solution is
K=2^180Let's assume we use one Antminer S19 PRO with a hashpower of 110TH/s for 10 min
--> total number of attempts is
n=66*10^15One double_sha256 outcome that fulfills the difficulty requirement is sufficient
-->
k=1To sum up the mining problem, here are the parameters to calculate the probability of mining a block in 10 min :
N is the population size = 2^256
n is the number of draws (double_SHA256 checks) = 66*10^15
K is the number of known success states in the population = 2^180
k is the number of wanted successes = 1
This problem is dealt with in probability theory and statistics by the hypergeometric distribution (definition from wikipedia):
is a discrete probability distribution that describes the probability of k successes (random draws for which the object drawn has a specified feature) in n draws, without replacement, from a finite population of size N that contains exactly K objects with that feature, wherein each draw is either a success or a failure.
The formula for the calculation is available on wikipedia :
https://en.wikipedia.org/wiki/Hypergeometric_distributionIs anyone able to calculate the result for the example I have given ? The values seem too big using Python or Matlab.
We find references to this early post regarding the difficulty of mining but it doesn't give a rigourous answer
https://bitcointalk.org/index.php?topic=1682.0.
Kind regards