Bitcoin Core is a reference client of bitcoin originally published online by Satoshi Nakamoto. Find out everything you need to know about Bitcoin Core today.
What Is Bitcoin Core?
Bitcoin Core was originally known as simply “Bitcoin” when it was published online by Satoshi Nakamoto in 2009. Later, it was named Bitcoin-Qt. Today, it’s mostly known as Bitcoin Core, or sometimes as the “Satoshi Client”.
Bitcoin Core is a full client used by bitcoin nodes operating on the bitcoin network. By making changes to Bitcoin Core, developers change the underlying protocol of bitcoin.
Today, Bitcoin Core’s directories are maintained by a programmer named Wladimir J. van der Laan. Meanwhile, some development of Bitcoin Core is funded by the MIT Digital Currency Initiative, which also maintains the cryptographic library libsecp256k1.
Obviously, Bitcoin Core is one of the most innovative creations in the history of the internet. Let’s take a closer look at how and why Bitcoin Core changed the world as we know it.
Key Features Of Bitcoin Core
Bitcoin Core consists of all of the following features:
- Transaction verification engine
- Connects to the bitcoin network as a full node
- A wallet that can be used to transfer funds (included by default; just allows you to send and receive bitcoin, but does not allow you to buy or sell bitcoin)
- Can generate QR codes to receive payment
- Validation system for the entire blockchain, which includes every bitcoin transaction ever recorded
- Distributed ledger that’s more than 110GB in size (you must download or synchronize this distributed ledger in order to fully participate as a client)
- Command line-based daemon with a JSON-RPC interface called bitcoind (bundled with Bitcoin Core by default)
- Access to testnet, a global testing environment that imitates the bitcoin main network or Mainnet
- An alternative blockchain where real bitcoin are not used and the blockchain cannot be adversely affected
- Regtest or Regression Test Mode that creates a private blockchain capable of being used in a local testing environment
- Bitcoin-cli, which allows users to send RPC commands to bitcoind
- Checkpoints (hardcoded into Bitcoin Core), which maintain data integrity by keeping a part of the block chain data in the source code where it can be compared to the blockchain when the download is complete
- Network alert system, introduced by Satoshi as a way to inform users of the latest news about bitcoin (this alert system was retired in November 2016 because it was obsolete)
- Scripting language similar to Forth, used to define transactions and enable various transaction parameters (the script uses reverse Polish notation for validation)
The History Of Bitcoin Core
Satoshi Nakamoto changed the world with the release of Bitcoin 0.1 on January 9, 2009. That original Bitcoin Core client (known simply as Bitcoin at the time) only supported Windows. Some minor bug fixing updates occurred over the next few months.
By December 16, 2009, Satoshi had released Bitcoin 0.2, including a Linux version and making use of multi-core processors for mining. By version 0.3.2, Satoshi had included checkpoints as a safeguard.
After releasing version 0.3.9, Satoshi left the project and stopped communicating with developers. By this point, however, development had already been undertaken by a wide group of independent programmers.
New versions of the Bitcoin Core client were released periodically between 2011 and 2013. Versions integrated different ideas, created by the bitcoin community, on how to improve bitcoin. During this period, the Bitcoin Core client added features like a front end that uses the Qt user interface toolkit (which had previously been used by Berkeley DB for database management). We also saw the integration of LevelDB to reduce block synchronization time.
By the time Bitcoin Core version 0.9.0 rolled around, the software was officially renamed to Bitcoin Core instead of simply “bitcoin”. Transaction fees were reduced by a factor of ten, which increased the viability of microtransactions.
Bitcoin Core 0.13.1 was released in October 2016. Today, in July 2017, we’re at Bitcoin Core 0.14.2.
Bitcoin Core And Bitcoin Improvement Proposals (BIP)
How can a group of developers come together to reach a consensus on important bitcoin changes? Many of Bitcoin Core’s developments can be traced back to Bitcoin Improvement Proposals, or BIPs.
Proposed changes to Bitcoin Core are assigned a number – like BIP 16 or BIP 9. As of February 2017, 152 BIP numbers have been assigned, although only 27 BIPs have reached the active/final stages of development.
Some of the key BIPs over the years include BIP 9, which specifies a state machine for determining 95% miner consensus of soft forks. Others include BIP 16, the Pay to Script hash, which allows transactions to be sent to a script hash (an address starting with 3) instead of a public key hash (addresses starting with 1).
You can view a full list of Bitcoin Improvement Proposals, including what each “BIP” means, by visiting the BIP 123 page on Github.
Bitcoin Core Versus Bitcoin Unlimited
You can’t talk about Bitcoin Core in 2017 without talking about the debate between Core and Unlimited.
Today, Unlimited has the support of most miners, while Core is the preferred choice for most major service providers and exchanges. Both solutions claim to offer the same things: security, decentralization, privacy, and better widespread adoption for Bitcoin.
Many users switched away from Bitcoin Core because they feel that Core’s developers were not taking enough action to make bitcoin scalable. Users have been waiting for years for the widespread adoption of bitcoin, and they’re done waiting.
The key innovation with Bitcoin Unlimited is that it allows miners to configure the size of blocks they will validate.
Bitcoin Core, on the other hand, has always been the main branch of development for bitcoin. Over the years, however, an organization called Blockstream has gained influence over Core’s development. Some people will tell you that Blockstream is an evil corporation that will use Core for its own benefits, while others downplay the actual influence of Blockstream.
Core has introduced a scaling solution called SegWit. Although Core’s developers are proud of the solution, and worked on it for years, Unlimited supporters believe that SegWit does not provide the type of scaling required for the widespread adoption of bitcoin.
SegWit, or Segregated Witness, lays the foundation for the Lightning Network. The goal of both solutions is to hard-code a block size limit into the bitcoin network instead of giving node owners and miners a free choice in their block sizes.
Ultimately, the debate between Bitcoin Core and Unlimited is a contentious issue, to say the least.
Bitcoin Core Conclusion
Bitcoin Core has guided the development of bitcoin for 9 years. Originally released by Satoshi Nakamoto in 2009, Bitcoin Core has continued to be the preferred bitcoin protocol for the majority of the community. However, that may change in the future due to ongoing debate with Bitcoin Unlimited and the role that Blockstream plays in the funding and development of Bitcoin Core.