Blockstream

What is Bitcoin Core?

Bitcoin Core is the widely used open-source Bitcoin software client that is the direct descendant of Satoshi Nakamoto's original software. Its code is hosted on GitHub, and readily compiled binaries can be found on the official Bitcoin Core site.

Bitcoin Core is a full node implementation: it downloads and validates all Bitcoin transactions and blocks, and allows the operator to participate in consensus. Most operators start with Bitcoin Core as it is the most popular software client and has many accessible help tutorials, despite other compatible implementations being available. It also gives operators the highest degree of compatibility with the Bitcoin network.

TL;DR: Bitcoin Core is the most-used open-source implementation of the Bitcoin protocol. It is the software that most full nodes on the network run, but it is not the protocol itself. The protocol is a set of consensus rules anyone can implement, and multiple compatible implementations exist alongside Bitcoin Core, including Bitcoin Knots, btcd, and libbitcoin.

What Bitcoin Core Is

Bitcoin Core is an open-source software project hosted at github.com/bitcoin/bitcoin and released under the MIT license. It is written primarily in C++ and is a direct descendant of the original Bitcoin client that Satoshi Nakamoto released in January 2009, following the publication of the Bitcoin whitepaper.

When operators run Bitcoin Core on a server or desktop, the software downloads the blockchain, validates every block and transaction against the consensus rules, and relays valid data to peers. That validation is what makes a Bitcoin Core install a full node rather than a lightweight wallet that trusts a third party for chain data.

The project has no CEO, no parent company, and no formal governance body. A small set of maintainers holds commit access to the GitHub repository and merges patches that have been reviewed publicly by other contributors. The official project page at bitcoincore.org/en/about/ describes the contributor model in full.

Reference Implementation vs the Bitcoin Protocol

The Bitcoin protocol is the consensus ruleset. It defines what a valid block looks like, how transactions are structured, how proof-of-work difficulty adjusts, what scripts are allowed, and how nodes agree on the longest valid chain. Any software that follows those rules can participate in the network. Anyone can write a new implementation in any language. As long as it agrees with every other node on which blocks are valid, the network stays in consensus.

Bitcoin Core is the de facto reference because most node runners use it and most consensus-critical code review happens against it. Its source code is what other implementations cross-reference to confirm how a rule was interpreted in practice. Bitcoin Improvement Proposals such as BIP 14, BIP 90, and BIP 9 document protocol versioning, buried softforks, and version-bits signaling respectively. They are the specification layer that any compatible implementation must follow.

A change to Bitcoin Core's source code does not change the protocol. A change to the protocol requires every node operator running any implementation to upgrade in agreement.

What's Included in Bitcoin Core

A single Bitcoin Core install bundles several components. The node daemon bitcoind runs in the background, syncs the blockchain, validates transactions, maintains the mempool, and serves data to other processes via the Remote Procedure Call (RPC) interface. The graphical client bitcoin-qt exposes the same node functionality through a desktop application with a built-in wallet view.

The built-in wallet generates addresses, signs transactions, tracks balances, and stores keys locally. The legacy Berkeley DB wallet format was fully removed in Bitcoin Core 30.0: the software can no longer create or load a legacy wallet, and the migratewallet tooling is retained to convert existing legacy wallets to descriptor wallets, which use output script descriptors to express wallet contents in a standardized form.

Each node maintains its own mempool of unconfirmed transactions it has received but not yet seen in a block. External applications connect to the local node over the RPC server to query chain state, broadcast transactions, or manage the wallet. The peer-to-peer networking stack connects outbound to other Bitcoin nodes, accepts inbound peers when configured, and relays blocks and transactions across the network. A mining RPC interface lets mining software fetch block templates from a local node and submit found blocks.

Bitcoin Core also includes a command-line wallet tool (bitcoin-cli), a wallet utility (bitcoin-wallet), and various test and benchmarking binaries.

Release Cadence and Maintenance

Bitcoin Core ships major releases roughly every six months. The full history of tagged releases lives at github.com/bitcoin/bitcoin/releases. The current stable major version at the time of this refresh is 31.0 (released 2026-04-20).

Between major releases, the maintainers ship point releases when they are needed for security fixes, consensus-critical bug fixes, or backports. Release candidates go through public testing on testnet and signet before promotion. The release notes for each version credit every contributor who landed code during the cycle.

Maintenance happens entirely in public on GitHub. Anyone can read open pull requests, the review history, and the discussion that preceded a merge. Maintainers hold commit access but do not unilaterally write features. The project's contribution culture places heavy weight on peer review before merge. Consensus-critical changes typically receive review from many independent contributors and undergo extended testing before they reach a release branch.

Other Bitcoin Implementations

Bitcoin Core is dominant by usage, but it is not the only implementation. The reachable-node count tracker at bitnodes.io shows roughly 23,000 reachable nodes globally, and the user-agent breakdown shows a mix of implementations.

Bitcoin Knots is a separate Bitcoin node and wallet, maintained by Luke Dashjr. It is a derivative of Bitcoin Core that ships with additional patches and configuration defaults. Knots runs the same consensus rules as Bitcoin Core and participates in the same network.

btcd is an alternative full-node implementation written in Go, maintained by the btcsuite organization. It implements the same consensus rules as Bitcoin Core. Notably, btcd does not include wallet functionality; node runners who want a wallet pair btcd with a companion project such as btcwallet.

libbitcoin is a modular C++ Bitcoin toolkit. It is a library rather than a single application, designed as a backend for building Bitcoin software including mobile apps, server APIs, and explorers. Each component has its own thread pool, which allows libbitcoin-based software to scale horizontally across CPU cores.

All four implementations follow the same consensus rules. A block that is valid under one is valid under the others. That property is what keeps the Bitcoin network from splitting into incompatible chains.

Trade-Offs of a Dominant Implementation

When most of the network runs the same software, network-wide behavior is easier to reason about. Bugs found in one node are bugs found in most nodes, which means the impact of a discovered issue is widely felt but also widely studied. Consensus-critical bugs in a dominant implementation can also propagate as accidental consensus. If a buggy rule in the dominant implementation differs from the written specification, the implementation's behavior becomes the de facto rule, because the rest of the network follows whatever chain the dominant implementation accepts.

Multiple compatible implementations give the network more independent eyes on the consensus rules and reduce the systemic risk of a single bug taking down most nodes at once. The downside is that matching the consensus behavior of the dominant implementation is a substantial engineering commitment, and a small consensus-rule divergence in a less-tested implementation can fork its operators off the main chain.

Bitcoin's consensus-critical code is therefore one of the most carefully reviewed open-source codebases in existence, regardless of which implementation operators choose.

Running Bitcoin Core

A Bitcoin Core install handles the full node responsibilities described in the types of Bitcoin nodes article. The setup process, hardware requirements, and configuration tradeoffs are covered in running a Bitcoin node. After the node is online, the next step for most operators is to keep a node secure and private by configuring Tor, firewalling the RPC port, and limiting external attack surface.

Initial block download takes hours to days depending on hardware and bandwidth. Once synced, an idle node uses modest CPU and memory and steady but not heavy bandwidth.

Bitcoin Core Wallet vs Running It as a Node

Bitcoin Core ships with a built-in wallet, but most node runners do not use it as their primary wallet. They run Bitcoin Core as the node and connect a separate wallet application on top of it through the RPC interface.

Wallets that connect to a local Bitcoin Core node include Sparrow, Specter, and the Blockstream app. In this split the wallet software handles the user interface, address management, transaction construction, and signing, while Bitcoin Core handles validation and chain state. The wallet trusts only the local node it connects to, and the local node trusts no one. Key management and chain validation each stay in software built for the job.

Operators who use the built-in Bitcoin Core wallet get a self-custodial setup with no external dependencies. The trade-off is that the built-in wallet's user interface is intentionally minimal, and recovery from the wallet's descriptor format requires familiarity with the command-line tools.

Blockstream's Relationship to Bitcoin Core

Blockstream contributes to the open-source Bitcoin ecosystem in several distinct ways. Blockstream Research engineers contribute to upstream Bitcoin Core and contribute to related cryptographic libraries, including libsecp256k1, the elliptic-curve library used by Bitcoin Core for ECDSA and Schnorr signature verification.

Separately, Blockstream develops and operates its own products, which are not part of Bitcoin Core: the Esplora block explorer that powers Blockstream Explorer, the Greenlight Lightning infrastructure and Core Lightning node implementation, the Blockstream app (a self-custodial wallet for Bitcoin, Liquid, and Lightning), and the Liquid Network sidechain. These products use Bitcoin Core as one of several backend dependencies and are not derivatives of it.

The distinction matters because Blockstream's product roadmap and Bitcoin Core's release roadmap are independent. Changes to Bitcoin Core go through the Bitcoin Core project's review process, not Blockstream's.

Verifying a Bitcoin Core Download

Anyone downloading Bitcoin Core should verify the binaries before running them. Official binaries are published at bitcoincore.org alongside a SHA256SUMS file and a SHA256SUMS.asc signature file. The verification process has three steps:

  • Compute the SHA-256 hash of the downloaded binary and check it matches the corresponding entry in SHA256SUMS.
  • Verify the GNU Privacy Guard (GPG) signature on SHA256SUMS.asc against the public keys of the release signers, which are listed on the Bitcoin Core site.
  • Confirm the signing keys match those published by the project before trusting any signature.

Skipping verification means trusting the network path that delivered the binary. A compromised mirror, a man-in-the-middle attack, or a tampered package could substitute a malicious binary that looks correct.

Frequently Asked Questions

Is Bitcoin Core the same as Bitcoin?

No. Bitcoin is the protocol and the network of nodes that follow it. Bitcoin Core is one software implementation of the protocol, written in C++ and hosted at github.com/bitcoin/bitcoin. Other compatible implementations include Bitcoin Knots, btcd, and libbitcoin.

Who owns Bitcoin Core?

No one owns Bitcoin Core. The project is open-source under the MIT license. A rotating set of maintainers holds commit access to the GitHub repository, and all changes merge through public pull-request review. The project runs without any foundation, CEO, or formal governance body behind it.

Do I need Bitcoin Core to use Bitcoin?

No. Bitcoin Core is one option for running a full node. Wallet applications, exchanges, and lightweight clients can interact with the Bitcoin network without running Bitcoin Core directly. Running Bitcoin Core gives full validation of every block and transaction against the consensus rules, which is what makes a node trustless rather than reliant on a third party.

How big is the Bitcoin Core download?

The Bitcoin Core software package itself is a small download in the tens of megabytes. The full blockchain that Bitcoin Core syncs is much larger. As of 2026, the chain requires several hundred gigabytes of disk space, with the exact size growing over time as new blocks are added.

Is Bitcoin Core safe to use?

Bitcoin Core is among the most-reviewed open-source projects of any kind. Consensus-critical code receives review from many independent contributors, and binaries are signed by known release engineers. Operators should always download from bitcoincore.org and verify GPG signatures and SHA-256 checksums before running the binaries.

What programming language is Bitcoin Core written in?

Bitcoin Core is written primarily in C++. The repository at github.com/bitcoin/bitcoin lists C++ as the dominant language at over 60 percent of the source. Build tooling, scripts, and some peripheral utilities use Python and shell.

Run Your Own Node With Confidence

Running a node is the strongest way to verify Bitcoin without trusting anyone else's claims about the chain. Whether the choice is Bitcoin Core, Bitcoin Knots, or another compatible implementation, the act of validating every block locally is what makes participation in the network meaningful. Setup walkthroughs, hardware recommendations, and configuration guidance for full nodes live in the rest of the Nodes education hub.

Share:

Copied!