<p>In your example the two pools have very similar hash power, so for simplicity let's assume they are both exactly 50%.  The difference between 49%, 50%, and 51% will not significantly affect  the answers.</p>

<p>The probability that the first pool finds at least one block in 10 minutes is roughly <code>1 - exp(-1/2)</code>, about 39%, and the same for the second pool.  The two pools operate independently, so the probability that both events happen is simply the product of their probabilities, i.e. <code>(1 - exp(-1/2))^2</code>, which is about 15.5%.  By symmetry, it's about equally likely for either pool to find the first block.  So the probability that this happens and moreover Pool 1 finds the first block, is half of this: 7.75%.  </p>

CC BY-SA 3.0
2016-09-19T21:25:34.663Z
Thank you for the response. So, do you mean the prob. that the first block is generated by pool_1 is equal to prob. that the first block is generated by pool_2 ? This is not related to their hash power ? consider for eample 99 % hashpower for pool_1 and 1% hashpower for pool_2.
Questioner
CC BY-SA 3.0
2016-09-19T21:46:42.320Z
@sas: They're not exactly equal, but I rounded them both to 50% hashpower to make the computation simpler.  You may compute the exact number as an exercise; it should not be substantially different.  Obviously if it were 99% and 1% this would not be a good approximation.
Nate Eldredge
CC BY-SA 3.0
2016-09-19T22:26:07.357Z
@ Nate Eldredge, Thank you. In fact, what I'm looking for is prob. (pool1[selfish] , pool2[honest]) and my question is that if hashpower does not affect probability that which one can generate the first block, thus if for example we change their hashpower such that pool1 : 10% and pool2 : 90%, in this case the probability that the first block is generated by pool1 is equal to probability that the first block is generated by pool2 ?
Questioner
CC BY-SA 3.0
2016-09-19T23:52:29.097Z
No, of course they are not equal in that case.  You'll have to redo the computation with those numbers.  I haven't the time to do it myself right now.
Nate Eldredge
CC BY-SA 3.0
2016-09-20T08:46:13.980Z
Is there a formula for that? for example : prob(exactly 2 blocks generated in 10 minuts) x pool1 hashpower x pool2 hashpower ?
Questioner
CC BY-SA 3.0
2016-09-20T12:23:25.293Z
@sas: The probability for a pool to find at least one block in 10 minutes is `1-exp(-r)` where `r` is the fraction of hashpower controlled by the pool.  So for two independent pools, it'd be `(1-exp(-r1))*(1-exp(-r2))`.  To find the probability that the first pool finds the first block, multiply by `r1`.
Nate Eldredge
CC BY-SA 3.0
2016-09-20T12:54:15.640Z
Thank you, thus the answer would be prob(pool1,pool2) = (1-exp(-r1))*(1-exp(-r2))* r1 . we do not need to multiply this by 18% ? (as probability that in 10 minutes exactly 2 blocks are generated according to http://bitcoin.stackexchange.com/questions/22978/how-can-we-be-sure-that-a-new-block-will-be-found/22984#22984)
Questioner
CC BY-SA 3.0
2016-09-20T13:06:39.933Z
@sas: Here I am allowing for the possibility that additional blocks are generated during the same 10 minutes.  In any case you would not *multiply* by 18%; this does not make sense as these are not independent events.  I am afraid this comment thread is not the place for a course of probability theory.
Nate Eldredge
CC BY-SA 3.0
2016-09-19T20:44:38.163Z
2016-09-19T23:54:38.943Z
2016-09-19T23:54:38.943Z
Nate Eldredge
<p>If network would include 2 mining pools (pool_1 and pool_2) with the hashpower of 49% and 51%,respectively, then wo want to calculate the probability that in 10 minutes, <strong>exactly</strong> 2 blocks would be generated <strong>such that</strong> two blocks <strong>are not</strong> generated at the <strong>same time</strong> and the first block is generated by pool_1 with hashpower of 49% and second block is generated by pool_2 with hashpower of 51% ? </p>

<p>(1) It is important for us to know which pool generates the first block and which one generates the second block, so, we want to know the probability that the first block is generated by which pool (regarding to their hashpower)</p>

<p>(2) we assume that <strong>pool_2</strong> is <strong>honest</strong> and <strong>pool_1</strong> is <strong>selfish</strong>
and</p>

<p>(3) We know that Bitcoin network on average generates one block per 10 minutes.)</p>

<p>(According to solution that is proposed by Murch here : <a href="https://bitcoin.stackexchange.com/questions/22978/how-can-we-be-sure-that-a-new-block-will-be-found/22984#22984">How can we be sure that a new block will be found?</a>)</p>

<p>Thanks</p>

CC BY-SA 3.0
2016-09-19T20:19:58.463Z
I understand the scenario you're suggesting, but I don't understand what your question is.
Nick ODell
CC BY-SA 3.0
2016-09-19T21:36:50.950Z
@ Nick ODell, I modified question.
Questioner
CC BY-SA 3.0
2016-09-19T22:16:20.497Z
I think this may be an [XY-Problem](http://meta.stackexchange.com/a/66378/232061). Perhaps it would be helpful to explain why you want to find out about this case? E.g. what's the underlying question about selfish mining that you're interested in?
Murch
CC BY-SA 3.0
2016-09-19T23:01:33.783Z
@Murch, In fact, I determined which on is honest and which miner is selfish, since you said "the network is fundamentally broken then: pool_2 can just ignore all blocks by pool_1 and still produce the longest chain by itself" but in general the question is that the probability that which one can generate the first block is depended on their hashpower? According to Nate Eldredge answer it is not denpended, but I think it is more logical that the miner with more hashpower has more chance to generate the first block, I'm wrong?
Questioner
CC BY-SA 3.0
2016-09-19T23:42:39.523Z
That's not what Nate said. Of course the chance is bigger that the first block is produced by the pool with the bigger hashrate. And I don't think you understood what I was suggesting.
Murch
CC BY-SA 3.0
2016-09-20T08:42:16.203Z
@Murch, To be more clear: Let's consider your answer: prob (first:pool1 , second:pool2) = 0.184×0.10×0.90 now what is prob (first:pool2 , second:pool1) = ? Thanks
Questioner
CC BY-SA 3.0
2016-09-20T08:54:53.800Z
@sas: As I have said previously, both have the same likelihood. Following the prior that the two pools find two blocks there are four cases:
`(p1, p2) = 0.1×0.9` is equal to `(p2, p1) = 0.9×0.1`, but `(p1, p1) = 0.1×0.1` and `(p2, p2) = 0.9×0.9`. It follows that the chance that p2 is first `(p2, X) = 0.9×(0.1 + 0.9) = 0.9`. As I said, it's normal for two **independent events** occurring in combination that they have the same likelihood to appear in either order. That's basic probability theory, if you still don't believe it, please hit the books or something, I've explained it thrice now.
Murch
<mining-pools><block><difficulty><hashpower><block-interval>
The probability of block generation by two miners in a special case?
Questioner
# The probability of block generation by two miners in a special case?

(Asked by: username_0 on 2016-09-19)

If network would include 2 mining pools (pool\_1 and pool\_2) with the hashpower of 49% and 51%,respectively, then wo want to calculate the probability that in 10 minutes, **exactly** 2 blocks would be generated **such that** two blocks **are not** generated at the **same time** and the first block is generated by pool\_1 with hashpower of 49% and second block is generated by pool\_2 with hashpower of 51% ?

(1) It is important for us to know which pool generates the first block and which one generates the second block, so, we want to know the probability that the first block is generated by which pool (regarding to their hashpower)

(2) we assume that **pool\_2** is **honest** and **pool\_1** is **selfish**
and

(3) We know that Bitcoin network on average generates one block per 10 minutes.)

(According to solution that is proposed by username_2 here : [How can we be sure that a new block will be found?](https://bitcoin.stackexchange.com/questions/22978/how-can-we-be-sure-that-a-new-block-will-be-found/22984#22984))

Thanks

**Tags:** mining-pools, block, difficulty, hashpower, block-interval

> **Comments:**
> **username_1**: I understand the scenario you're suggesting, but I don't understand what your question is.  
> **username_0**: @ username_1 username_1, I modified question.  
> **username_2**: I think this may be an [XY-Problem](http://meta.stackexchange.com/a/66378/232061). Perhaps it would be helpful to explain why you want to find out about this case? E.g. what's the underlying question about selfish mining that you're interested in?  
> **username_0**: @username_2, In fact, I determined which on is honest and which miner is selfish, since you said "the network is fundamentally broken then: pool_2 can just ignore all blocks by pool_1 and still produce the longest chain by itself" but in general the question is that the probability that which one can generate the first block is depended on their hashpower? According to username_3 username_3 answer it is not denpended, but I think it is more logical that the miner with more hashpower has more chance to generate the first block, I'm wrong?  
> **username_2**: That's not what username_3 said. Of course the chance is bigger that the first block is produced by the pool with the bigger hashrate. And I don't think you understood what I was suggesting.  
> **username_0**: @username_2, To be more clear: Let's consider your answer: prob (first:pool1 , second:pool2) = 0.184×0.10×0.90 now what is prob (first:pool2 , second:pool1) = ? Thanks  
> **username_2**: @sas: As I have said previously, both have the same likelihood. Following the prior that the two pools find two blocks there are four cases: `(p1, p2) = 0.1×0.9` is equal to `(p2, p1) = 0.9×0.1`, but `(p1, p1) = 0.1×0.1` and `(p2, p2) = 0.9×0.9`. It follows that the chance that p2 is first `(p2, X) = 0.9×(0.1 + 0.9) = 0.9`. As I said, it's normal for two **independent events** occurring in combination that they have the same likelihood to appear in either order. That's basic probability theory, if you still don't believe it, please hit the books or something, I've explained it thrice now.  

---

## 1 answers

### Answer by username_3 on 2016-09-19. Score: 1 | Accepted answer

In your example the two pools have very similar hash power, so for simplicity let's assume they are both exactly 50%. The difference between 49%, 50%, and 51% will not significantly affect the answers.

The probability that the first pool finds at least one block in 10 minutes is roughly `1 - exp(-1/2)`, about 39%, and the same for the second pool. The two pools operate independently, so the probability that both events happen is simply the product of their probabilities, i.e. `(1 - exp(-1/2))^2`, which is about 15.5%. By symmetry, it's about equally likely for either pool to find the first block. So the probability that this happens and moreover Pool 1 finds the first block, is half of this: 7.75%.

> **Comments:**
> **username_0**: Thank you for the response. So, do you mean the prob. that the first block is generated by pool_1 is equal to prob. that the first block is generated by pool_2 ? This is not related to their hash power ? consider for eample 99 % hashpower for pool_1 and 1% hashpower for pool_2.  
> **username_3**: @sas: They're not exactly equal, but I rounded them both to 50% hashpower to make the computation simpler.  You may compute the exact number as an exercise; it should not be substantially different.  Obviously if it were 99% and 1% this would not be a good approximation.  
> **username_0**: @ username_3 username_3, Thank you. In fact, what I'm looking for is prob. (pool1[selfish] , pool2[honest]) and my question is that if hashpower does not affect probability that which one can generate the first block, thus if for example we change their hashpower such that pool1 : 10% and pool2 : 90%, in this case the probability that the first block is generated by pool1 is equal to probability that the first block is generated by pool2 ?  
> **username_3**: No, of course they are not equal in that case.  You'll have to redo the computation with those numbers.  I haven't the time to do it myself right now.  
> **username_0**: Is there a formula for that? for example : prob(exactly 2 blocks generated in 10 minuts) x pool1 hashpower x pool2 hashpower ?  
> **username_3**: @sas: The probability for a pool to find at least one block in 10 minutes is `1-exp(-r)` where `r` is the fraction of hashpower controlled by the pool.  So for two independent pools, it'd be `(1-exp(-r1))*(1-exp(-r2))`.  To find the probability that the first pool finds the first block, multiply by `r1`.  
> **username_0**: Thank you, thus the answer would be prob(pool1,pool2) = (1-exp(-r1))*(1-exp(-r2))* r1 . we do not need to multiply this by 18% ? (as probability that in 10 minutes exactly 2 blocks are generated according to http://bitcoin.stackexchange.com/questions/22978/how-can-we-be-sure-that-a-new-block-will-be-found/22984#22984)  
> **username_3**: @sas: Here I am allowing for the possibility that additional blocks are generated during the same 10 minutes.  In any case you would not *multiply* by 18%; this does not make sense as these are not independent events.  I am afraid this comment thread is not the place for a course of probability theory.  

---

