# What is the probability of forking in blockchain?

Is there any general formula that allows someone to calculate what is the current probability of having a chain fork?

I know that the probability of finding a new block is proportional to the difficulty target. Given that it's possible to have 2^256 different hashes (for simplification), finding a nonce that will yield a hash lower than target has probability of approximately P(m) = (2^256 - target)/2^256.

Given that a block will be mined within 10 minutes and considering that a delay of 2 seconds would be small enough for the newtwork propagation not being complete, that is, if two nodes find a block 2 seconds appart, there would be no time to notify the full network.

Here is when it gets complicated to me (statistics is not strong with me). What is the probability of the situation described above occur?

I think this is something related with a normal distribution, but I'm not sure.

My rational to find the probability of forking would be:

P(fork) = P(m1) * P(m2) * P(tdse)


Where P(m1) is the probability of node 1 to find a new block, P(m2) the same for node 2 and P(tdse) is the probability of both mining occur with a time difference small enough to not be propagated to the entire network.

Actually, it is not related to the difficulty at all, rather just related to the expected time until the next block is found.

Block finding is a Poisson process.

The probability of x blocks occuring in the amount of time we'd expect λ blocks occuring therefore is: In ideal conditions, we expect one block per ten minutes, i.e. 600 seconds. Therefore in 2 seconds we'd expect 1/300 blocks occuring.

p(2|1/300) evaluates to approximately 5.54*10-6 which is about 0.000554%, i.e. we'd expect two blocks to occur within two seconds once every 180k blocks or every ~3.4 years.

More exciting are ten seconds which has a probability of about 0.00014, i.e. we'd expect two blocks within ten seconds to happen once every 7000 blocks, i.e. roughly every seven weeks.