Blockchains and Network Forks

Public blockchains are unique in OSS because they tend to operate in a mostly decentralized fashion with no central company in charge of the codebase. Blockchain development tends to be slower than traditional software development because of the time-consuming process of ensuring consensus for all changes to the source code.

Instead of a centralized team that can make code changes within minutes, blockchains consist of an open source development community that maintains the codebase and the miners who run the software to validate incoming transactions into a cryptographically secure and verifiable data structure while securing the uptime of the network (and receiving rewards in return). Maintaining consensus between these communities is not a trivial matter, especially when there is so much value at stake.

Forks are a natural process of a public blockchain's development much like a snake shedding its skin. However, forks can take a variety of forms, from network splits due to community division ( Bitcoin <> Bitcoin Cash, Ethereum <> Ethereum Classic )

) to the bootstrapping of new blockchains with significant changes to the source code ( Bitcoin <> Zcash ).

It is important to note that there is a shared history of transaction data following a network fork with each chain bearing an identical record. In short, forks are how blockchains evolve over time without central planning and coordination.