Bitcoin is one of the most used cryptocurrencies. Many people choose bitcoin due to high security and freedom in its essence. People are searching for something new and reliable because they are tired of the centralized and hegemonized financial system. The decentralized property of bitcoin offers various advantages for users. Here we will examine the software behind the bitcoin. Open Source Software Bitcoin Core is the\u00a0open-sourced\u00a0software. This software has an\u00a0MIT License, which is one of the permissive open source licenses. It means that the community can use this software for different purposes. If you agree with the rules, then you can use it, or you can change the software to meet your standards. That is the central source of software for altcoins. That\u2019s why this software is the most used Bitcoin software. Like every software, Bitcoin Core receives updates for improving the system. Those updates are called\u00a0Bitcoin Improvement Proposals\u00a0(BIP). There are three types of BIP;\u00a0standards track BIPs\u00a0(changes related to network block and transactions),\u00a0informational tracks\u00a0BIPs\u00a0(design issues and general guidelines),\u00a0process BIPs\u00a0(changes in process). Since it is decentralized, everyone can contribute to the software by proposing new changes to the software. These protocols pass through some stages to be accepted by the community consensus. Besides the community, some developers are with bitcoin from the beginning. Many people know the mysterious Satoshi Nakamoto, but the other five developers help to keep the bitcoin at a high level, too. Those people are leading figures in the bitcoin core. Does this violate decentralization? It would be wrong to think like that. Those developers just there to help the Bitcoin to serve its users in the best way. They are the ones that update the software for the best use. Bitcoin had different versions, and its current version is\u00a00.20.1, which is updated is on 2 August 2020. However, there could be some people that do not want to track the way those developers carve. In a centralized system, if you do not want to use a currency, then you move to another currency. However, in the decentralized open-sourced environment, you can choose to create another currency that serves your intention. If you do not want to obey the new protocols, then you can fork the software. Forks in The Software Forking is unavoidable sometimes. The software receives protocol updates at some point along the way. Some people accept those rules easily and think that it is best for them. However, some do not like the protocol change and want the old protocol or different protocol.\u00a0A\u00a0hard fork\u00a0happens when newly updated nodes do not agree with the old nodes, and they create a permanent new blockchain. Hard forks can start a new altcoin too. New coins will try to get as many nodes as possible to run their protocols. On the other hand,\u00a0soft forks\u00a0continue to communicate after the protocol update. A soft fork does not create a new blockchain.\u00a0Bitcoin XT,\u00a0Bitcoin Classic,\u00a0Bitcoin Unlimited,\u00a0and\u00a0SegWit\u00a0are notable forks of Bitcoin. These forks somehow push factors that cause blockchain to move forward. Both hard and soft forks serve for different purposes. If you ask which one is better, then the answer to this question will be subjective. Hard forks are more revolutionary. They demand more changes than soft forks. Soft forks, on the other hand, approach to this issue more tolerant. They accept the old nodes to operate. They are compatible with the old ones. So, both ways are the correct way it is up to users to choose which one to go. To sum all of these, the software serves as a general protocol for cryptocurrencies. Software gets updated to meet the recent development in the technology and the crypto world. After the protocol change, forks can unveil, and blockchain will move forward with those who survived after the change in protocol.