For example, if F2Pool has had 10% of the total mining hashrate for the past week, does it make sense to say that they will probably find 10% of the blocks moving forward?
Assuming that a lot of miners don't switch, yes.
"F2Pool has a 10% chance to find the next block in the next 10 minutes, and this approaches 100% after 10 blocks. Ie. F2Pool has a very good chance to find at least one block within the next 100 minutes."
You're asking two subtly different questions here.
- Will I find the next block?
- Will I find a block in the next ten minutes?
You could find the next block, eleven minutes from now. You could find a block in five minutes, building on a block that was discovered four minutes ago.
Will I find the next block?
This is pretty straightforward. If you have 10% of the hashrate, there's a probability of 0.1 that you will find it. If you have p proportion of the hashrate, there's a probability
(1-(1-p)^n) that you will find a block in the next n blocks. For 10% hashrate, and 10 blocks, that's a chance of 65%. Far from a sure thing.
p = 0.1
Blocks Probability of you getting a block
Will I find a block in the next ten minutes?
Block discovery follows a poisson distribution. A poisson distribution represents a bunch of independent events, where one event happening has no effect on it happening in the future.
We want to know the odds of k blocks being found by anyone in a ten minute period, when there is an average of 1 block every ten minutes. Wikipedia already has a table for us:
But this isn't quite what we need - if ten blocks are found, there is a much better chance that one of them is ours than if one block is found. Multiply by expression above, and substitute k for n, and 0.1 (our proportion of hashrate) for p.
k P(k) P(k)*(1-(1-0.1)^k)
0 0.368 0.0000
1 0.368 0.0368
2 0.184 0.0350
3 0.061 0.0165
4 0.015 0.0052
5 0.003 0.0012
6 0.0005 0.0002
Sum up the last column. We get a 9.49% chance, which is the chance that you will get at least one block in the next ten minutes if you have 10% of the hashrate. But, that doesn't mean that there's a 95% chance of having a block in ten minutes with 100% of the hashrate. It's not linear. If you have 100% of the hashrate:
k P(k) P(k)*(1-(1-1.0)^k)
0 0.368 0.0000
1 0.368 0.3680
2 0.184 0.1840
3 0.061 0.0610
4 0.015 0.0150
5 0.003 0.0030
6 0.0005 0.0005
...then you have a 63.2% chance of having a block in the next ten minutes if you have all of the hashpower.
(Our calculations are low by about a twentieth of a percent, because we didn't consider cases like k=7. But I figure this is a good approximation.)