Bitcoin, like all OpenSource software, has its source code, features and processes defined for its community to grow and evolve. It has several implementations and one of the most used is called Bitcoin Core.
What is Bitcoin Core?
Bitcoin is an OpenSource software that currently has about 900 contributors from all over the world who contribute their knowledge in the project and in the technologies it uses, such as C/C++ and Python, so that it continues to grow from the proposals.
One of the most popular Bitcoin clients is Bitcoin Core. It is a repository on GitHub that derives from the original source code that Satoshi Nakamoto gave in mid-2011 for the developer community to continue with the project.
The Bitcoin source code
That Bitcoin's source code is located in a centralized place like GitHub may sound strange. The reality is that Bitcoin, like any software, needs not only version control as powerful as Git, but also the transparency, traceability and communication between members that the platform offers.
No software in the world could exist without a group of project leaders. Bitcoin has its own, expert engineers who have been working on it for years and who guide others to develop on the Bitcoin source code from a BIP.
What is BIP or Bitcoin Improvement Proposals?
BIPs, or Bitcoin Improvement Proposals, are formal, structured documents for presenting improvements to the Bitcoin core, whether technical, organizational, informational or other improvements.
The proposals are analyzed by the community behind Bitcoin for refinement, acceptance or rejection. Anyone in the world can elaborate a BIP and it will be evaluated by the community.
Bitcoin is not the only technology that implements this type of process for the evaluation of proposals and improvements to OpenSource software. You may be familiar with EIPs(Ethereum Improvement Proposal) which, while it may differ in the process, has the same goal. If we leave the Blockchain world, we can find TC39 for JavaScript improvement proposals.
What the BIP flow looks like
BIPs have a predefined flow that it must go through to be implemented. Each stage defines the state of the BIP.
Draft: "draft" state where the proposal is still being refined and is incomplete.
Deferred: the BIP is paused for some reason.
Accepted: the BIP has been accepted and community discussion can begin.
Rejected: the BIP was rejected by its community due to inconsistencies, possible problems with the Bitcoin core or other reasons.
Withdrawn: "withdrawn" status. The authors of the proposal decided not to continue with it.
Final: in this state, the BIP was reviewed and approved by the community and a consensus was reached on the proposal.
Replaced: the BIP was replaced by another BIP with a better or superior proposal.
Active: the BIP is active, the source code was developed and is in production or the proposed improvement was successfully implemented.
BIPs have a rigorous acceptance process. If there are controversies and problems in the community about the implementation or not of a BIP, it can generate a fork or fork of the project.
Forks of a project
Surely you know the GitHub functionality to create forks of a project. Forking a Blockchain goes one step further.
When a community is divided from a proposal or a big change, forks of it are created. Which generates a new project, with its own economy, as it is a new Blockchain.
Types of forks
We can differentiate two types of forks in a Blockchain:
Hard forks:
Totally radical forks to the protocol of a Blockchain where the rules, the software, the way of mining or the whole network are completely changed. These types of forks often divide the community of a project between those who agree and those who disagree.
Soft forks:
Minor changes to a Blockchain that allow it to continue operating and are compatible with the network. They are usually to improve performance or introduce an improvement in the source code.
Hard Fork Examples
An example Hard Fork is Bitcoin Cash emerged in 2017 as a proposal to improve the speed of this Blockchain. Another example could be Ethereum Classic which is the original version of the Ethereum Blockchain before certain updates.
Uses of the Bitcoin Core
The Bitcoin Core is a whole system with its parts. Within it we find various uses:
It allows to be part of a P2P network of nodes that communicate with each other to validate transactions, create blocks and ensure network consensus.
Implementation of wallets to make transfers and store value in it.
Offers a programmatic interface via RPC that can be used via HTTP or a CLI.
Bitcoin Core is the number one influence for the development of other Blockchains.
Conclusion
Bitcoin Core is the basis of everything we know today under the name Blockchain. That cryptocurrency that Satoshi Nakamoto launched with the name bitcoin in 2009 and that today has evolved and strengthened to become this great economic system.
Undoubtedly it is only the beginning and Bitcoin still has a lot to grow and to give to the Blockchain world as the main reference in this ecosystem of Web3 technologies.
Aquí está el ejemplo más famoso de un hard fork: En 2016, actores malintencionados explotaron un protocolo en Ethereum. Ethereum decidió realizar un "hard-fork" para restaurar los fondos robados. Ethereum es la bifurcación que conocemos y apreciamos, mientras que la original se llama Ethereum Classic, que realmente nadie usa.
Los BIP son conceptualmente parecidos a los EIP de Ethereum. Pero también me recuerda al TC39 de Javascript. Cada uno debe tener sus propios flujos de propuestas y mejoras de cada tecnología, pero el objetivo es el mismo, el desarrollo OpenSource.
Want to see more contributions, questions and answers from the community?