<p>Blockchain forks are an artifact from the network propagation and appear at random intervals (and far more often than what you observed). It is important to note that since nodes do not forward information that contradicts their view of the network, i.e., they have accepted one of the forks, you will not be able to observe all forks in the network, but only those that are propagated to you through the network.</p>

<p>For details on what causes blockchain forks and their impact on the security/performance of the network see <a href="http://www.tik.ee.ethz.ch/file/49318d3f56c1d525aabf7fda78b23fc0/P2P2013_041.pdf" rel="nofollow">Information Propagation in the Bitcoin Network</a> (disclaimer: I am one of the authors).</p>

CC BY-SA 3.0
2016-04-10T16:11:44.813Z
Kudos on the excellent paper! My own analysis of time-between-blocks jibes with your data ... good to have such verification.
Pressed250
CC BY-SA 3.0
2016-04-10T14:01:57.437Z
2016-04-10T14:01:57.437Z
cdecker
<p>Christian--</p>

<p>Thank you for the answer AND the link to your paper. This is exactly the type of information I was hoping for, but was unable to find myself.</p>

<p>To confirm I understand, allow me to use a recent blockchain branch at block height 406197. Here is the output from getchaintips from my full node:
    "height": 406197,
    "hash": "0000000000000000033f1b617ad5c03cec10a6bcc19ce0778e8d75fdbf1ed152",
    "branchlen": 1,
    "status": "valid-fork"</p>

<p>And is my representation of the blockchain branch:
<a href="https://i.sstatic.net/VCMIt.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/VCMIt.png" alt="Blockchain Branch"></a></p>

<p>The main chain resolved in favor of what I will call block #406197-b5ab. With that data, I have a few clarifying questions:</p>

<p>[a] If full nodes only propagate blocks that agree with their "worldview" of the blockchain, does that mean there were sufficient full nodes that accepted block #406197-d152 (eventually orphaned) to relay that block to my full node?</p>

<p>[b] Does the information imply that my full node INITIALLY accepted block #406196-d152 and THEN received block #306197-b5ab? Or vice versa?</p>

<p>My networking knowledge is sound, my queuing theory knowledge is only modest. I am hoping to develop an accurate mental model of a blockchain branch using this particular branch as an example.</p>

<p>Thank you for the time &amp; help!
Pressed250.</p>

CC BY-SA 3.0
2016-04-10T16:32:30.603Z
Hi Pressed250, please consider editing your original question with these additions :-) a) you seeing both blocks means that you are on a node-cut between the partitions that accepted the d152 and the b5ab blocks, we cannot really make any estimate on the size of the partitions (you might have received d152 from the miner itself). b) it depends on your node impementation, just seeing both blocks does not infer anything about the order you accepted them. If I'm not mistaken Bitcoin Core would have discarded d152 if you saw b5ab first so I think you are correct in assuming that you saw d152 first
cdecker
CC BY-SA 3.0
2016-04-10T20:08:58.870Z
Christian: great suggestions, thank you. An observation: your paper analyzes a period when there were more "solo" miners. Today the landscape is dominated by a modest number of mining pools. In my vernacular, there are fewer "unique mining entities" today. A thesis: fewer unique mining entities result in fewer blockchain branches, other factors being equal. QUESTION: does this thesis ring true? I am NOT suggesting that my original number is accurate, I recognize that 1-in-380 blocks is definitely underestimating the actual likelihood.
Pressed250
CC BY-SA 3.0
2016-04-10T15:13:00.323Z
2016-04-10T15:13:00.323Z
Pressed250
<p>I've completed an empirical analysis of blockchain forks from block #300000 thru #400000. I found the following: (a) blockchain forks of length 1: observed every 380 blocks on average; (b) blockchain forks of length 2: none observed.</p>

<p>I recognize there is variation inherent in any such analysis, as different full nodes may produce different results.</p>

<p>Does the above data "ring true"? I am keen to hear from anyone with good data (or even good intuition) and especially eager to hear from anyone with different numbers.</p>

CC BY-SA 3.0
2016-04-10T03:51:20.293Z
https://blockchain.info/charts/n-orphaned-blocks
amaclin
<blockchain><blockchain-fork>
Empirical analysis of blockchain branches: once every 380 blocks?
Pressed250
# Empirical analysis of blockchain branches: once every 380 blocks?

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

I've completed an empirical analysis of blockchain forks from block #300000 thru #400000. I found the following: (a) blockchain forks of length 1: observed every 380 blocks on average; (b) blockchain forks of length 2: none observed.

I recognize there is variation inherent in any such analysis, as different full nodes may produce different results.

Does the above data "ring true"? I am keen to hear from anyone with good data (or even good intuition) and especially eager to hear from anyone with different numbers.

**Tags:** blockchain, blockchain-fork

> **Comments:**
> **username_1**: https://blockchain.info/charts/n-orphaned-blocks  

---

## 2 answers

### Answer by username_2 on 2016-04-10. Score: 2

Blockchain forks are an artifact from the network propagation and appear at random intervals (and far more often than what you observed). It is important to note that since nodes do not forward information that contradicts their view of the network, i.e., they have accepted one of the forks, you will not be able to observe all forks in the network, but only those that are propagated to you through the network.

For details on what causes blockchain forks and their impact on the security/performance of the network see [Information Propagation in the Bitcoin Network](http://www.tik.ee.ethz.ch/file/49318d3f56c1d525aabf7fda78b23fc0/P2P2013_041.pdf) (disclaimer: I am one of the authors).

> **Comments:**
> **username_0**: Kudos on the excellent paper! My own analysis of time-between-blocks jibes with your data ... good to have such verification.  

---

### Answer by username_0 on 2016-04-10. Score: 1

Christian--

Thank you for the answer AND the link to your paper. This is exactly the type of information I was hoping for, but was unable to find myself.

To confirm I understand, allow me to use a recent blockchain branch at block height 406197. Here is the output from getchaintips from my full node:
"height": 406197,
"hash": "0000000000000000033f1b617ad5c03cec10a6bcc19ce0778e8d75fdbf1ed152",
"branchlen": 1,
"status": "valid-fork"

And is my representation of the blockchain branch:
[![Blockchain Branch](https://i.sstatic.net/VCMIt.png)](https://i.sstatic.net/VCMIt.png)

The main chain resolved in favor of what I will call block #406197-b5ab. With that data, I have a few clarifying questions:

[a] If full nodes only propagate blocks that agree with their "worldview" of the blockchain, does that mean there were sufficient full nodes that accepted block #406197-d152 (eventually orphaned) to relay that block to my full node?

[b] Does the information imply that my full node INITIALLY accepted block #406196-d152 and THEN received block #306197-b5ab? Or vice versa?

My networking knowledge is sound, my queuing theory knowledge is only modest. I am hoping to develop an accurate mental model of a blockchain branch using this particular branch as an example.

Thank you for the time & help!
username_0.

> **Comments:**
> **username_2**: Hi username_0, please consider editing your original question with these additions :-) a) you seeing both blocks means that you are on a node-cut between the partitions that accepted the d152 and the b5ab blocks, we cannot really make any estimate on the size of the partitions (you might have received d152 from the miner itself). b) it depends on your node impementation, just seeing both blocks does not infer anything about the order you accepted them. If I'm not mistaken Bitcoin Core would have discarded d152 if you saw b5ab first so I think you are correct in assuming that you saw d152 first  
> **username_0**: Christian: great suggestions, thank you. An observation: your paper analyzes a period when there were more "solo" miners. Today the landscape is dominated by a modest number of mining pools. In my vernacular, there are fewer "unique mining entities" today. A thesis: fewer unique mining entities result in fewer blockchain branches, other factors being equal. QUESTION: does this thesis ring true? I am NOT suggesting that my original number is accurate, I recognize that 1-in-380 blocks is definitely underestimating the actual likelihood.  

---

