Bitcoin Core: What Is It And How Does It Work?

In this guide, we'll explore the Bitcoin Core software, which is the original Bitcoin wallet software and successor of the one introduced by Satoshi Nakamoto back in 2009. Explore its functionalities, learn about its maintenance, and grasp the steps for installing and using it.

What Is Bitcoin Core?

What Is Bitcoin Core?
What Is Bitcoin Core?

Bitcoin Core stands as the foremost Bitcoin client software, tracing its lineage directly from Satoshi Nakamoto's original Bitcoin software release following the publication of the renowned Bitcoin whitepaper.

Bitcoin Core encompasses dual functionalities: serving as "full-node" software for comprehensive blockchain validation and as a bitcoin wallet. The project also oversees associated software, including the cryptography library libsecp256k1, among others, accessible on GitHub.

Bitcoin operates as a protocolβ€”a set of rules dictating the validation of transactions and blocks. These rules undergo alteration solely through forks.

Practically, Bitcoin Core serves multiple purposes:

  • Facilitating communication with other nodes, by connecting to the Bitcoin peer-to-peer network
  • Enabling the composition, signing, and verification of transactions (according to the Bitcoin protocol)
  • Supporting the download, storage, and verification of blocks (meeting Bitcoin protocol standards)
  • Receiving transactions from others and storing them in the mempool
  • Selecting transactions from the mempool and mining them into a block
  • Providing wallet functionality
  • And more

In essence, Bitcoin Core serves as a client that facilitates interaction with other entities in the network while adhering to the Bitcoin protocol.

Reachable Bitcoin Nodes
Reachable Bitcoin Nodes Breakdown: Bitcoin Core is, by far, the most popular one, followed by Bitcoin Knots by Luke DashJr

Just as Bitcoin Core exists, there are other software solutions offering similar functionalities, such as Bitcoin Knots or BTCD. Furthermore, new clients can always be developed, showcasing the beauty of an open-source protocol like Bitcoin.

How Bitcoin Core Works

Bitcoin Core operates by independently determining the validity of transactions within the blockchain. Users of Bitcoin Core exclusively recognize transactions within this validated blockchain, making it the preferred blockchain for all. This decentralized approach is maintained by individual users running their own Bitcoin Core full nodes, each adhering to identical rules to assess blockchain validity.

There's no voting or manipulative process involved; instead, the software relies on mathematical algorithms to evaluate blocks consistently. This consensus ensures that only valid bitcoins are accepted, upholding Bitcoin's regulations even against the most influential miners.

In addition to enhancing decentralization, Bitcoin Core users benefit from:

  1. Enhanced security for their bitcoins.
  2. Privacy features not found in other wallets.
  3. User-friendly interfaces and robust functionalities.

Bitcoin Core offers a built-in wallet with both graphical and command line/API modes, supporting multiple lightweight wallets simultaneously with comparable security and privacy levels.

However, it's essential to ensure secure and private connections to Bitcoin Core for lightweight wallet usage, typically requiring specific configurations.

The Bitcoin Core Wallet GUI provides:

  • Fee slider for selecting between low fees and fast confirmations
  • Network monitoring to track bandwidth usage
  • QR code generation for receiving payments
  • Clear overview of current balance and recent transactions
  • Proxy configuration for privacy using Tor or other proxies
  • Coin control to enhance privacy or reduce costs by choosing inputs
  • Unique invoices for easy payment tracking
  • Watch-only support for tracking offline stored bitcoins

The Bitcoin Core Wallet RPC/REST CLI (Command Line Interface) offers functionalities such as:

  • Generating new addresses for receiving payments
  • Creating, signing, and sending raw transactions
  • Sending single payments to multiple addresses
  • Instantly checking available Bitcoin balance
  • Notifications for new blocks and transactions
  • Viewing received transactions available for spending

Lightweight wallets, when connecting to multiple random full nodes, may compromise privacy and security. However, connecting lightweight wallets exclusively to one's Bitcoin Core full node, termed a trusted peer, with secure and private connections ensures most security and privacy benefits alongside aiding decentralization.

Who Are The Bitcoin Core Developers?

The Bitcoin Core website reflects an open and decentralized ethos, indicating that there are no formal companies or entities behind the project. Instead, it operates as open-source software, welcoming contributions from anyone, including casual contributors who can submit pull requests to the codebase.

Bitcoin Core Maintainers
Bitcoin Core Maintainers

At the helm of Bitcoin Core are the maintainers, similar to esteemed moderators. These maintainers oversee changes to the Bitcoin Core codebase, known as "commits," which are proposed by fellow Bitcoin developers or contributors in the form of pull requests (PRs).

Who exactly are these Bitcoin Core maintainers? They are contributors who have earned significant trust and respect within the project by consistently making valuable contributions over time. When the existing group of maintainers deems it appropriate, they may grant commit access to a contributor's GitHub account based on their demonstrated competence, reliability, and dedication within specific areas of the project.

The lead maintainer role holds ultimate responsibility for overseeing all facets of the project and coordinating releases. This position has been passed down voluntarily over the years:

  • Satoshi Nakamoto: January 3, 2009 - February 23, 2011
  • Gavin Andresen: February 23, 2011 - April 7, 2014
  • Wladimir van der Laan: April 7, 2014 – February 15, 2023
  • Gloria Zhao: February 15, 2023 - present

It is assumed that Gloria Zhao currently holds the lead maintainer position, as her PGP key is listed as the first in the document bitcoin/contrib/verify-commits/trusted-keys on the official Bitcoin GitHub repository.

Additional notable contributors to Bitcoin Core include Luke Dashjr, Andrew Poelstra, Gregory Maxwell, Matt Corallo, Peter Todd, Pieter Wuille, and numerous others.

Who Pays The Bitcoin Core Developers?

You might wonder if all the contributors and maintainers of Bitcoin Core volunteer their time and efforts for free. While most contributors likely dedicate their coding and reviewing skills without compensation, some individuals work on Bitcoin Core full-time as their primary occupation, often supported by sponsors.

In the image I shared earlier featuring the maintainers, you may have noticed that one logo appeared more frequently: "Brink." Brink is a nonprofit organization entirely funded by donations, dedicated to supporting Bitcoin developers in their efforts to build, secure, test, and review the Bitcoin Core software that underpins the Bitcoin network.

πŸ’‘
When the Bitcoin ETF debuted on Wall Street in early 2024, investment company VanEck disclosed plans to allocate 5% of potential profits from its spot Bitcoin Exchange-Traded Fund (ETF) to support Bitcoin Core developers through Brink.

Then, Who Owns Bitcoin Core?

Bitcoin Core maintainers do have a degree of control over the codebase and the development process due to their ability to approve and merge code changes using their PGP keys. However, this control is exercised within the framework of decentralized decision-making and consensus among the broader community of developers and users.

While maintainers play a crucial role in ensuring the integrity and security of Bitcoin Core, their decisions are subject to scrutiny and review by other contributors and stakeholders. The decentralized nature of the project means that no single individual or group can unilaterally dictate the direction of development or make decisions that are contrary to the consensus of the community.

Anyone can propose code improvements by opening a pull request on the github master branch of bitcoin/bitcoin. Developers review these requests to ensure they're safe. There's no formal entrance requirement for contributing to Bitcoin Core; anyone can review and give feedback on pull requests. If a request garners no reasonable objections, a maintainer merges it.

BIP Proposal Process
BIP Proposal Process

Changes to the Bitcoin protocol are typically proposed through the Bitcoin Improvement Proposal (BIP) process (see image up here), but adherence is voluntary. It serves as a structured method for peer review and consensus building.

Bitcoin Core Quick Review

If you don't have time to read the full Bitcoin Core review, you can have a look at the table done here which features the main privacy functions and other features of the original Bitcoin wallet. We also gave it a blockdyor score.

Category Feature Score
πŸ” Privacy & Security (44/50)
πŸ“„ Open Source Compliance Source code is publicly available and is Open Source 10/10
πŸ”„ Software Integrity Software can be built from source and binaries match 10/10
πŸ” Security The wallet is non custodial, features a passphrase but the inscriptions exploit hasn't been fixed yet 1/5
🌱 Seed Generation Uses Java's SecureRandom function to generate its entropy 5/5
πŸ’Ύ Seed Storage Is stored in a data directory of the Bitcoin Core application 3/5
πŸ’Ό Hardware Wallet Supports External Signers 5/5
πŸ’° Purchase Procedure The app is free of charge 5/5
πŸ’Έ Fees Fees are depending on Bitcoin Network fees 5/5
πŸš€ Features (42/50)
πŸ–₯️ User-Friendly UX Can be intimidating at first, but it's actually easy to use 4/5
🎨 Design Evergreen. It passed the test of times 5/5
πŸ“‘ Air Gap / PSBT / SeedQR It supports PSBT (Partially Signed Bitcoin Transactions 3/5
πŸ’Ύ MicroSD Backup You can backup the wallets wherever you want 5/5
🀝 Multisignature Support Support Multisig wallets 5/5
πŸ” Passphrase (BIP39) Doesn't support BIP39 Passphrases (13th or 25th word) 1/5
πŸ”Œ Connection Can connect to clearnet, Proxy or TOR 4/5
πŸ“¦ Ready-to-Use Comes with everything needed to start immediately 5/5
πŸ“š Documentation Detailed user guides available online 5/5
πŸ› οΈ Customer Support Bitcoin Core offers customer support on Github or on the website 5/5
🧱blockdyor Score (86/100)

How To Install Bitcoin Core

πŸ’‘
While this guide focuses on installing the standalone Bitcoin Core application for Windows, MacOS, and Linux from the official website, there are various other methods available. One common approach is utilizing Bitcoin Node Operating Systems like Citadel, which are tailored to run on compact devices such as the CmRat from DTV Electronics or the Raspberry Pi. These solutions offer advantages for running Bitcoin Core, particularly due to its requirement for significant storage space to download the entire blockchain (unless using pruned mode). Given that many laptops and computers may lack sufficient free space (at the time of writing, over 600-700 GB is needed), utilizing low-consumption Raspberry Pi devices with ample storage, such as NVME 2TB drives, is practical. However, this guide will focus on installing Bitcoin Core on your laptop/desktop. For instructions on installing Bitcoin Core OS solutions like Citadel, refer to the link below.
DTV Electronics CmRat Review: An Affordable Bitcoin Node
In this review of the DTV Electronics CmRat, I will thoroughly examine what claims to be the most cost-effective Bitcoin Node available on the market.

While it remains possible, bitcoin.org is no longer the official source to download Bitcoin Core. It is recommended to obtain releases from bitcoincore.org and follow the verification instructions provided there.

Moreover, Bitcoin.org may not offer the latest releases. Since version 23.0, Bitcoin Core has altered its release signing process. Future releases will no longer be signed by a single release key but rather by a collective of Bitcoin Core developers.

You can verify the signature(s) using the keys of your chosen developers, and your software should support retrieving and updating keys from a keyserver, with keys.openpgp.org being the primary choice.

How To Download & Install Bitcoin Core Step 1
How To Download & Install Bitcoin Core Step 1

To download Bitcoin Core, navigate to bitcoincore.org and select the download option from the menu. The website will suggest the most suitable version based on your browser's user agent.

Notably, there are no mobile versions available as Bitcoin Core is better suited for desktops, considering the size of the blockchain, which is expected to surpass 1 TB in the coming years.

How To Download & Install Bitcoin Core Step 2
How To Download & Install Bitcoin Core Step 2

Bitcoin Core will be downloaded in a matter of seconds, depending on the speed of your internet connection.

How To Download & Install Bitcoin Core Step 3
How To Download & Install Bitcoin Core Step 3

Depending on the operating system you are using, you can now open/install the Bitcoin Core application. After it's installed, click on the Bitcoin Core app to get started.

How To Download & Install Bitcoin Core Step 4
How To Download & Install Bitcoin Core Step 4

Bitcoin Core doesn't come with many bells and whistles; its user interface remains quite spartan, much like when Satoshi Nakamoto first introduced it. Consequently, using it for the first time might feel a bit daunting.

Upon opening Bitcoin Core, you'll encounter several prompts, primarily due to the substantial size of the blockchain download nowadays. These prompts include:

  1. A warning about the amount of free space available on your computer (1).
  2. A suggestion to run Bitcoin Core in Pruned mode (2) to save space. However, Pruned mode comes with limitations, such as the inability to view transactions older than 6 days, if you set a max storage of 2GB for example. Therefore, it may be impractical if you need to access older transactions .
  3. If you have terabytes of available space, you can opt out of the pruned node (2) option and proceed with the full download by pressing OK (3).
πŸ’‘
Bitcoin Core needs a one-time download of approximately 700GB of data, with an additional 5-10GB per month thereafter.
How To Download & Install Bitcoin Core Step 5
How To Download & Install Bitcoin Core Step 5

Upon clicking "OK," the Initial Block Download (IBD) will start. In pruned mode, it might only take a few minutes, whereas in full node mode, it could span several days, weeks, or even months. Rest assured, the Bitcoin Network, along with your connection speed and setup capabilities, will handle the rest.

How To Download & Install Bitcoin Core Step 6
How To Download & Install Bitcoin Core Step 6

After closing all disclaimers and other information, you'll arrive at the main dashboard of Bitcoin Core, structured as follows:

  1. Overview (1): This section functions as your wallet, displaying your balance. Here, you can create a new wallet (5) or import an existing one.
  2. Send (2): In this section, you can initiate transactions on the Bitcoin Network. Before sending funds, ensure you've received some.
  3. Receive (3): Generate fresh addresses here to receive bitcoins.
  4. Transactions (4): View the history of transactions made in this wallet.
  5. Blockchain Sync (6): This bar indicates the status of blockchain download. Ensure it's fully loaded before attempting any actions in Bitcoin Core.
  6. Units and Network (7): Located at the bottom right, here you'll find settings like the Units selector (BTC, mBTC, uBTC, Satoshi), information about enabled HD Key Generation, active peer connections, and more.

Create A New Wallet In Bitcoin Core

Create A New Wallet In Bitcoin Core Step 1
Create A New Wallet In Bitcoin Core Step 1

You can initiate the creation of a new wallet even before the client has finished downloading the blockchain. It's straightforward: simply click the button located at the center of the main Overview screen, or alternatively, navigate to the menu bar, click "File," and then select "Create Wallet."

Create A New Wallet In Bitcoin Core Step 2
Create A New Wallet In Bitcoin Core Step 2

During the process of creating a new wallet, Bitcoin Core will prompt you to provide information such as the wallet name (1) and whether you want to encrypt the wallet with a passphrase (2). Additionally, you have the option to select other advanced settings (3). When you are ready, click on "Create" (4).

Create A New Wallet In Bitcoin Core Step 3
Create A New Wallet In Bitcoin Core Step 3

In case you chose to encrypt the wallet, choose the passphrase to encrypt your wallet and click "OK".

Create A New Wallet In Bitcoin Core Step 4
Create A New Wallet In Bitcoin Core Step 4

Click on the "Yes" button to go to the next step.

Create A New Wallet In Bitcoin Core Step 5
Create A New Wallet In Bitcoin Core Step 5

Click on "OK" to finalize the process.

Create A New Wallet In Bitcoin Core Step 6
Create A New Wallet In Bitcoin Core Step 6

The name of the wallet will appear in the title bar and Available, Pending and Total will show "0.00000000 BTC".

Backup A Wallet In Bitcoin Core

Despite common misconceptions, Bitcoin Core actually incorporates a somewhat "old school" wallet approach. Unlike many modern wallets, the original Bitcoin wallet software does not generate any backup phrases, also known as recovery or seed phrases. Instead, it relies on a wallet.dat file to store private keys and other pertinent wallet data.

To create a backup, you can navigate to "File > Backup Wallet..." within the Bitcoin Core interface.

Backup A Wallet In Bitcoin Core Step 1
Backup A Wallet In Bitcoin Core Step 1

Alternatively, you can locate the folder within the data directory of the Bitcoin Core application. This directory typically resembles the following structure: [/users/yourusername/Library/Application Support/Bitcoin]. (Please note that the default directory for Windows/Linux systems may differ.)

Backup A Wallet In Bitcoin Core Step 2
Backup A Wallet In Bitcoin Core Step 2

Within the wallets folder, you'll discover additional folders corresponding to the number of wallets you've created in Bitcoin Core. Each of these folders represents one of your wallets. Simply copying and relocating these folders serves as your backup strategy. Now, let's have a look into how these wallets are structured internally.

Backup A Wallet In Bitcoin Core Step 3
Backup A Wallet In Bitcoin Core Step 3

Within the wallet folder, you'll encounter two files:

  1. wallet.dat (1): This file constitutes the wallet itself. It functions as a Personal wallet, employing a SQLite database format to store all your keys and transaction data.
  2. wallet.dat-journal (2): This file serves as the SQLite Rollback Journal for wallet.dat. Typically generated upon startup, it is removed upon shutdown. It's imperative for users to safeguard this file just as diligently as the wallet.dat file.
πŸ’‘
For enhanced security, I recommend encrypting each wallet and transferring the wallet(s) backup to offline encrypted storage drives. If, for some reasons, your intention is to completely erase all traces, you can then physically destroy the hard drive using a hammer.

Bitcoin Core Fees

Bitcoin Core Fees
Bitcoin Core Fees

Bitcoin Core itself doesn't impose fees; they are instead determined by the Bitcoin Network. However, Bitcoin Core offers a comprehensive fee section with various customizable features, including a "replace by fee" function, which can be valuable if your transaction gets stuck in the mempool due to a low fee setting.

Here are the fee settings available in Bitcoin Core:

  1. Transaction fee (1): Automatically estimated based on current network conditions. This feature becomes visible after the Initial Blockchain Download (IBD).
  2. Recommended (2): Provides settings for achieving transaction confirmation. You can specify a target confirmation time in minutes or hours. Shorter times come at a higher cost, so choose accordingly.
  3. Custom (3): Allows you to set fees in BTC/sats per kilobyte according to your preferences.

Additionally, you can enable the "Replace by fee" function (4), which allows you to replace a pending transaction with a new one that includes a higher fee. This feature is useful if you initially set a low fee for your transaction and need to expedite its confirmation.

Design & UX

Less is more, and Bitcoin Core perfectly represent this. Over the years were added some minor UI improvements but it's still really a software that stayed true to itself without major UI overhauls and I appreciate this, because it means that user don't have to re-apprehend how to use it.

Bitcoin Core is the original hardware wallet, and should be simple and lightweight and it's what it really is.

Connectivity

Bitcoin Core can connect to the internet via clearnet. To run it over TOR, you simply need to install TOR (not the browser) and run TOR in the background as a daemon.

Upon restarting bitcoind, it will automatically generate a TOR address for you, which will be displayed in the debug.log file:

tor: Got service ID <myTorAddress>, advertising service <myTorAddress>.onion:8333
AddLocal(<myTorAddress>.onion:8333,4)

When you see this message, your setup is ready to go.

Moreover, Bitcoin Core can be configured to function as an RPC server, allowing it to serve as a backend for other lightweight software wallets such as Sparrow. It also supports mapping ports using UPNP, SOCKS5 Proxy, and several other connectivity options.

Advanced Features

Bitcoin Core doesn't have many advanced features, but one of the most interesting is the support of hardware wallets, also called "external signers". External signers such as hardware wallets can now be used through the new RPC methods enumeratesigners and displayaddress. Support is also added to the send RPC call.

To connect an external signer to Bitcoin Core, you can use HWI (Hardware Wallet Interface), developed by Bitcoin Core developers, albeit it's currently in an experimental phase. Alternatively, if your hardware wallet vendor provides a compatible script, you can use that.

To enable the external signer feature, start bitcoind with the parameter:

shellCopy code$ bitcoind -signer=<path/to/hwi.py>
Bitcoin Core Hardware Wallet Connection
Bitcoin Core Hardware Wallet Connection

If you prefer using the Bitcoin Core GUI, you can input the script path in the "External signer script path" field found in the "Wallet" tab.

Warranty

Bitcoin Core comes with the MIT License, which essentially means it's provided "as is" without any warranty. This means there's no guarantee that it will work perfectly or meet all your needs.

Users are free to use, modify, and distribute the software, but they do so at their own risk. The developers and copyright holders cannot be held liable for any issues or damages that may arise from using the software.

Security & Privacy

Bitcoin Core is built on open-source principles, allowing its code to be meticulously scrutinized line by line. Additionally, it boasts robust security features such as strong entropy for seed generation and the option to encrypt the wallet.dat file.

Code Openness & Reproducibility

Bitcoin Core prioritizes transparency and reproducibility in its codebase. Being open-source, the entirety of its code is publicly accessible, allowing developers and users alike to review, verify, and contribute to its development. This transparency ensures that the software can be thoroughly examined, fostering trust and confidence within the community.

Seed Generation

Bitcoin Core employs an HD (Hierarchical Deterministic) seed for private key generation, deriving entropy from four key sources: low-level processor instructions, entropy extracted from the operating system, dynamic events, and static events.

Bitcoin Core Alternatives

There are many popular Bitcoin only software wallets, but software wallets that can work also as a full node, downloading inside of it also the full blockchain are much less. As I recall, the most famous ones are Bitcoin Knots (i won't include SPV wallets such as Electrum and such).

  • Bitcoin Knots: Bitcoin Knots serves as a robust Bitcoin client, providing essential support to the network with its emphasis on security, privacy, and stability. It has several additional features compared to Bitcoin Core, and some of them are targeted at blocking spam such as the recent inscriptions bug.
  • Specter: Specter Desktop is a user-friendly desktop wallet interface designed to complement Bitcoin Core, prioritizing privacy, coin control, and both single and multisignature setups. Specter operates on a non-custodial basis and offers seamless integration with major hardware wallets, simplifying the user experience beyond that of Bitcoin Core.

Pros & Cons of Bitcoin Core

Pros Cons
βœ… The original Bitcoin wallet/node software ❌ Doesn't support seed phrases
βœ… Originally created by Satoshi Nakamoto ❌ Hardware wallet integration difficult for beginners
βœ… Maintained by thousands of contributors
βœ… Open Source
βœ… Free of charge
βœ… Easy to use

Is Bitcoin Core right for you?


In today's evolving landscape, relying solely on Bitcoin Core as your primary wallet for daily transactions may seem excessive compared to a decade ago.

However, if you prefer the security of software maintained by Bitcoin Core developers and don't want to invest in a hardware wallet, it remains a viable option.

Using Bitcoin Core can also serve as an educational tool, allowing you to explore Bitcoin by experimenting with small amounts or utilizing the testnet feature (add testnet=1 to your bitcoin.conf).

Keep in mind that Bitcoin Core requires downloading the entire blockchain, so sufficient storage space is essential unless opting for a pruned node. As for its role as a node, running Bitcoin Core on your computer or dedicated hardware like a Raspberry Pi or HTPC is still a commendable choice.

Many popular Bitcoin node solutions, such as Citadel, Umbrel, and Start9, already incorporate Bitcoin Core, solidifying its position as the backbone of the network.

Bottom Line

In conclusion, Bitcoin Core stands as a versatile tool, offering users the chance to engage directly with the Bitcoin network, learn about its workings, and maintain control over their transactions and security.

While its resource demands and learning curve may deter some, its reliability, transparency, and integration within the broader Bitcoin ecosystem make it a compelling choice for those committed to self-sovereignty and deeper involvement in the cryptocurrency space.

Bitcoin Core Evaluation

With a good 86/100 blockdyor score, Bitcoin Core is one of the best Bitcoin software wallets out there.

Security: Bitcoin Core prioritizes security with its open-source nature, allowing users to scrutinize the code for transparency. While being an internet-connected software wallet poses vulnerabilities, its PSBT function enables offline use, enhancing security.

User-friendliness: Bitcoin Core aims for a user-friendly experience, serving both novices and experts. Its interface is intuitive, though beginners may find it challenging initially.

Compatibility: Bitcoin Core boasts wide compatibility, supporting Windows, MacOS, and Linux. Its node functions are already integrated into many Bitcoin nodes, ensuring seamless integration.

Reputation: Bitcoin Core is hailed as the cornerstone of the Bitcoin Network, serving as the undisputed Bitcoin wallet and node. Its reputation underscores its vital role in the ecosystem.

Cost: Bitcoin Core is free, with funding for maintainers and other developers sourced from non-profit associations like Brink. This underscores the ethical value of supporting such a critical open-source project.

Frequently Asked Questions (FAQ)

Is Bitcoin Core free to use?

Yes, Bitcoin Core is free and open-source software. It can be used and modified by anyone without any charge.

How can I download Bitcoin Core?

You can download Bitcoin Core from the official website (bitcoincore.org) for various operating systems such as Windows, macOS, and Linux.

How long does it take to sync the blockchain with Bitcoin Core?

The time it takes to sync the blockchain with Bitcoin Core depends on factors like your internet connection speed and the hardware you're using. It can take several days or even weeks for the initial sync, but subsequent syncs are faster.