Bitcoin (BTC) is a cryptocurrency developed by a person or a group of persons, under the name of Satoshi Nakamoto. Bitcoin’s introduction was in 2008. The initial open-source software was launched in 2009. The system is peer-to-peer with no central body acting as intermediary. Transactions are between the users of the system. All transactions are verified on public distributed ledger called the blockchain. Bitcoins are created as a reward for the winner of the competition. The competition in which user offer their computing power to verify and record transactions. The reward is also know as mining.
The open-source software plays a crucial role in the Bitcoin landscape. The initial release of the software was under the name of Bitcoin. Satoshi Nakamoto then changed the name into Bitcoin-Qt and renamed it into Bitcoin Core. Bitcoin Core is therefore also known as the Satoshi Client. Since the introduction miners support Bitcoin Core.
The Bitcoin Core software validates every time the entire blockchain, which includes all transactions. The Genesis Block can be seen on the blockchain. The hash of this block: 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f. Mining this block gave a reward of 50 Bitcoins which it transferred to Bitcoin address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa. However this reward cannot be spend.
The basics of Bitcoins Core
Bitcoin Core client connects to the network as a full node. It is a transaction verification system and includes a wallet to store the Bitcoins. The system allows to transfer Bitcoins: send and receive. It does not facilitate buying or selling of Bitcoins.
Within the client checkpoints are coded in order to maintain data integrity. This is done by keeping part of the blockchain in the source code and making the comparison when the download is complete. The blockchain is roughly 80 GB in size. Each block is limited in size as a temporary anti-spam measure. Satoshi Nakamoto set the limit to 1MB in 2010. This limits the maximum transaction capacity to 3 transactions per second. Minor changes in the software resulted in a increment in network capacity.
In the earlier days the client served also as a broadcasting system in order to inform users of important news regarding Bitcoin. Given the further adoption of Bitcoin and the impact of social media this feature was abandoned.
The approach of the software was written first in order to prove that the client could serve a concept of peer-to-peer cryptocurrency. It is in a continuous flow of development. Change in the Bitcoin Core client is addressed in the BIPS, Bitcoin Improvement Proposal. The proposal is published publicly. The voting on whether a proposal serves the community involves all stakeholders, but more specifically the miners and/or mining pool operators. These stakeholders carry the full node and are able of refusing to participate. The influence of the developers is limited.
The lead developer is Wladimir van der Laan, who took over the role on 8 April 2014. Wladimir took over the role of Gavin Andresen. He left because he didn’t want to get involved in trivial decision making. Wladimir holds an PhD in computer graphics from University of Groning. After his PhD he worked at ASML
in Veldhoven. Veldhoven is close to Eindhoven, part of Brainport.
GitHub offers Bitcoin Core a web-based version control repository. If provides distributed version control and source code management. Other features are access control and several collaboration features: bug tracking, requests for features and wikis.
Versions Bitcoins Core
Bitcoin 0.1 release on 9 January 2009 by Satoshi Nakamoto. Only Windows support. Version 0.2 was released on 16 December 2009 supporting a Linux version and the use of multi-core processors for mining. Client checkpoints as a safeguard were introduced in version 0.3.2. Release 0.3.9. became legend because Satoshi
Nakamoto left the project and stopped participating in the community. The community consisted of a wide group of independent developers.
The period 2011 – 2013 marked the release of new software versions. The software was released at Bitcoin.org. Developers had no ambition to become advocates of Bitcoin, they wanted to be seen as creators of the software. Now they maintain Bitcoincore.org for software.
Bitcoin-Qt version 0.5.0 was released on 1 November 2011 and provided users a front end: the Qt user interface. The database structure also shifted, before Berkley DB was used. Developers switched to LevelDB in release 0.8 in order to reduce blockchain synchronization time. The update resulted in a minor blockchain fork on the 11 March 2013. In the release of 0.8.2. The transaction fees were reduced from 50,000 satoshis to 10,000 satoshis. From version 0.9.0 the software is know as Bitcoin Core.
On 16 February 2015 the release 0.10 was made public. It introduced a consensus library, providing programmers easy access to the rules governing consensus on the network. The developers stated that for consensus on soft forks a ‘super majority’ of 95% of hash power is required. Version 0.11.2 adds a new feature allowing transactions to be unspendable until a specific time in the future.
Bitcoin Core 0.12.1 allowed multiple soft forks to occur at the same time. This version was released on 15 April 2016. Bitcoin Core 0.13.0 was developed by around 100 developers and the release data was 23 August 2016. October 2016 marked the release of Bitcoin Core 0.13.1 including a soft fork addressing a scaling improvement in order to optimize the Bitcoin block size. This release also includes the feature of Segregated Witness (SegWit) facilitating the increase in maximum transaction capacity and putting downward pressure on transactions fees. It is estimated that activation of SegWit will result in a block size of about 1.7MB. SegWit aims to prevent various forms of transaction malleability. Activation of SegWit is only until around 95% of the miners using Bitcoin Core concurrently agree to its use.
The roadmap for the Bitcoin Core client includes solutions for scalability via a data link layer. The scalability is a hot topic. Core developers view Bitcoin as a settlement layer. Core developers prefer a evolution of Bitcoin’s capacities, specific a gradual increase in transaction handling capabilities. Core developers believe that the barriers of running a full node client should be kept low as possible. This enables that the blockchain remains highly decentralized at the lowest levels.
Alternatives to Bitcoin Core are Bitcoin Unlimited, Bitcoin XT and Bitcoin Classic. Each are derived from Bitcoin Core and contain implementation of hard fork proposals. This is currently a hot topic.