What Is Bitcoin Core?

10 min read

Bitcoin is an open-source protocol that secures a monetary network worth over $1 trillion. Over 100 million users trust it to safeguard their savings and process transactions. But how can it be trusted to remain secure? If nobody owns the Bitcoin project, then who is working on the software to protect users against bugs?

In this article, we explain what is Bitcoin Core and how it keeps Bitcoin running smoothly.

Learn more about Bitcoin

Bitcoin Core is the main implementation of Bitcoin’s software, meaning it defines the protocol and acts as a standard for the network as a whole. It is the original and most widely used Bitcoin client by an estimated 97% of the network. Bitcoin Core includes everything needed to participate in the Bitcoin network, whether by mining, transacting, or verifying transactions.

In this article, we explain what Bitcoin Core is and how it keeps Bitcoin running smoothly.

Is Bitcoin Core the Same as Bitcoin?

Bitcoin Core and Bitcoin are not the same as bitcoin is the cryptocurrency itself, while Bitcoin Core is the software that enables to use and distribution of this currency.

Who Started Bitcoin Core?

Satoshi Nakamoto didn’t originally refer to the software as “Bitcoin Core.” The term “Bitcoin Core” emerged later to distinguish between the original Bitcoin client and other software that emerged as the ecosystem grew. When Satoshi released the first version of the Bitcoin software in 2009, it was simply called “Bitcoin,” serving both as a wallet and as the network’s node software.

Many other implementations of the Bitcoin protocol exist such as Bitcoin Knots, btcd, and bcoin. Despite differences, all implementations must agree on core features to maintain consensus.
Many other implementations of the Bitcoin protocol exist such as Bitcoin Knots, btcd, and bcoin. Despite differences, all implementations must agree on core features to maintain consensus.

Bitcoin Core is thus the continuation of the original client Satoshi worked on, now maintained and developed by a group of contributors from around the world.

What Does Bitcoin Core Software Do?

Running Bitcoin Core means operating a full node, which includes validating transactions, maintaining a copy of the entire blockchain, and relaying transactions to other nodes. Operating a node enhances your privacy and strengthens the network.

Learn more about full nodes.

There are several benefits to node operators, such as:

  • Increased Privacy: Using Bitcoin Core allows you to verify your own transactions without relying on third-party services. This enhances your privacy by not disclosing information about your transactions and balances to others.
  • Network Strength and Security: The more full nodes there are, the more decentralized and secure the network becomes. Each node acts as an authority on the validity of transactions and blocks, making it harder for malicious actors to compromise the network.
  • Empowerment and Sovereignty: Running your own node gives you more control over your transactions. It aligns with the ethos of self-sovereignty that is central to Bitcoin.

Supporting the Ecosystem: Nodes help new users sync their software faster and more securely, contributing to the overall health and efficiency of the network.

Running Bitcoin Core on a node achieves the following:

  • Validation: It validates transactions and blocks according to the Bitcoin protocol rules without relying on third parties.
  • Wallet Functionality: Although primarily a node software, Bitcoin Core also includes a wallet functionality that allows users to send and receive bitcoin.
  • Mining Support: It supports bitcoin mining, though most miners nowadays use specialized mining software that can work together with Bitcoin Core for block validation.
  • Network Relay: Bitcoin Core relays transactions across the Bitcoin network, helping to propagate transactions and blocks.

You can download the latest Bitcoin Core version here.

Can I Earn Bitcoin With Bitcoin Core?

Although you can technically mine bitcoin with Bitcoin Core by integrating it with a personal mining setup, it’s not an efficient solution for large-scale or profitable mining.

Learn more about bitcoin mining.

Originally, Bitcoin Core included a mining function that individuals could use to mine bitcoin directly on their computers. However, as bitcoin mining has become more competitive and specialized, this method has become largely impractical for earning rewards.

What is Bitcoin Core Development?

Bitcoin Core development is the process of maintaining and improving Bitcoin’s main software implementation, which is essential for the health and future of the Bitcoin network. When successful, as explained in this open letter, Bitcoin Core development achieves the following:

  • Maintains network health: Bitcoin depends on the robustness of its network of node operators, miners, and users. Successful development maintains the ability of nodes, miners, and users to interact with the protocol as intended. For example, ongoing development can help ensure that Bitcoin Core can be run on new operating systems used today and in the future.
  • Enhances performance: Substantial improvements have been made to increase network efficiency, reduce block download times, refine memory usage, and reduce CPU bottlenecks, making the Bitcoin protocol more user-friendly for both users and nodes.
  • Preserves Bitcoin’s central features while making it accessible to more people: Successful Bitcoin development safeguards the network’s decentralization, security, and permissionless innovation. Without sacrificing these features, improvements have been made to increase its accessibility. For example, Bitcoin Core is now translated into dozens of languages to champion its use around the world.

While Bitcoin’s software has been updated continuously over its history, the underlying monetary attributes of the protocol are unlikely to change.

“The nature of Bitcoin is such that once version 0.1 was released, the core design was set in stone for the rest of its lifetime.” - Satoshi Nakamoto, June 17, 2010

How Does New Code Get Introduced to Bitcoin Core?

Since 2011, the Bitcoin Core repository has been hosted on Github, where the software can be downloaded, proposed improvements are reviewed, and updates are released. Bitcoin Core is an open-sourced software distributed under an MIT License, meaning that nobody owns the code or holds special rights over its distribution. Bitcoin Core can be used, copied, modified, scrutinized, and redistributed by anyone.

The MIT License grants free use of this software with rights to use, copy, modify, merge, publish, distribute, sublicense, and sell copies, provided the copyright notice is included. The software is provided "as is" without warranty.

Due to its open-source nature, much of Bitcoin development occurs in public. Proposals to modify Bitcoin’s software undergo extensive review, scrutiny, and testing before being rejected or merged into the core repository.

Major changes to Bitcoin Core follow a formal process known as a Bitcoin Improvement Proposal (BIP). Smaller changes and patches to specific pieces of software follow their own project-specific development workflows and do not require a BIP.

Learn more about Bitcoin Improvement Proposals

An idea for Bitcoin Core is proposed, shared, and formalized into a BIP. After thorough testing and review, it’s merged into the repository by maintainers. Major updates are released every 6-7 months. Node operators decide whether to use the updated software.

Once a proposed change has undergone sufficient review, testing, and has achieved rough consensus among the network, it is merged into the Bitcoin Core repository.

After a proposal has been merged, the implementation will be included in a future release of the Bitcoin Core software. Major releases occur every 6-7 months and are versioned as 22.0, 23.0, and so on. Maintenance releases, which are intermediary updates that fix bugs within major releases, are versioned as 22.1, 22.2, etc.

Importantly, even after a software release, nodes must choose to update their software for any changes to be reflected in the network. This is a crucial aspect of Bitcoin’s security: Because nodes do not automatically update, the network is less vulnerable to bugs and malicious code that could be introduced in new updates.

How Has Bitcoin Core Evolved?

In early 2009, the original release of Bitcoin v0.1, consisting of 26,221 lines of code, was shared with a cryptography mailing list. Since then, Bitcoin Core’s codebase has expanded to over 750,000 lines. This is in addition to thousands of lines that have been deleted, and thousands of proposed changes that were never implemented.

The evolution of Bitcoin’s code from 2009 to 2024 shows growth in base code, dependencies, localization, tests, and documentation. Key milestones include GitHub migration, SegWit and Taproot updates, and Lightning Network usage.

Most of the code added since 2009 is not essential for running the network but enhances safety, readability for developers, and user accessibility.

  • Base code is the fundamental code that nodes, miners, and other network participants use to interact with the protocol.
  • Dependencies are a minimum number of well-maintained external tools that Bitcoin uses. The primary dependencies include LevelDB, a data storage library developed by Google, and secp256k1, a method to generate public and private keys to control access to your bitcoin.
  • Localization represents the translated versions of Bitcoin Core into dozens of languages, taking up nearly half of the existing codebase. Many of these translations are complete, and others are partial.
  • Tests are crucial for ensuring the reliability of Bitcoin’s features. As the codebase grows, new features introduce combinations that need extensive testing to prevent any functionality from breaking.
  • Documentation helps developers understand the purpose and functionality of various parts of the code, making it easier to maintain and improve Bitcoin.

Who Controls Bitcoin Core?

The maintenance and development of Bitcoin Core is a collaborative effort from volunteer contributors called Core developers. There are no qualifications or restrictions to being a Core developer.

Core developers are not a centralized group of people. There is no leader or project manager who instructs developers on what to build.
Core developers are not a centralized group of people. There is no leader or project manager who instructs developers on what to build.

Once a change has received acceptance, a few individuals who serve as maintainers of the code integrate the changes. These individuals are trusted not to arbitrarily integrate code that the community has not approved.

The primary maintainer role involves managing the GitHub repository, reviewing code submissions, and coordinating releases. In addition to the core maintainers, a wider community of contributors submit patches, improve documentation, find bugs, and suggest features.

If maintainers breach their trust, they will not compromise anyone’s existing node and the old Bitcoin Core code can be easily restored by ignoring the malicious changes. Thus, the role of Bitcoin Core maintainer carries respect but very little power or influence.

What if Something Happened to GitHub or Bitcoin Core?

Bitcoin’s software does not depend on Bitcoin Core or GitHub for the network to run properly. Today, GitHub is simply what developers have chosen to use for easy coordination, but they could switch platforms at any time. Likewise, Bitcoin operates with various software implementations, not just Bitcoin Core, allowing node operators to choose their preferred version. These different implementations interact with one another to form a single, cohesive network, similar to how different internet browsers all access the same internet despite their differences.

Despite the variety, all implementations must adhere to core transaction and block validity rules to maintain consensus across the network. Bitcoin Core, being the original and most popular, serves as the reference for others, setting the standards and guiding the development of alternative versions.

Who Funds Bitcoin Core Development?

Over Bitcoin’s lifetime, over 1,000 developers have contributed to the project. Roughly 50 contributions have occurred per week over the past four years. Who pays for all of this development?

This graph illustrates the weekly contributions to Bitcoin Core from 2010 to 2024, highlighting the consistent developer activity and growth over the years. It shows fluctuations in the number of contributions, with notable increases around key updates and developments in the Bitcoin protocol.

In Bitcoin’s early years, most development occurred on a voluntary basis, with little commercial interest in funding Bitcoin at a large scale. Today, many developers are employed by or receive grants from various organizations, foundations, and corporations committed to sustaining Bitcoin’s future. These include Blockstream, Brink, Chaincode Labs, the Human Rights Foundation, MIT’s Digital Currency Initiative, and OpenSats. Importantly, these organizations typically grant developers the freedom to choose what to work on.

How To Get Started as a Bitcoin Core Developer

While there is no predefined path to becoming a Bitcoin developer, there are plenty of resources available to help aspiring developers get started.

For those ready to get started, guidelines for contributing are provided here.

 

Key Takeaways

  • Bitcoin Core is the most popular software used to connect to the Bitcoin network and run a node.
  • Bitcoin Core is open source software, meaning anyone can view, copy and propose upgrades.
  • Changes to Bitcoin Core only occur with consensus from the network.
#
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z