Bitcoin, the first and most popular of digital currencies, is a constantly evolving decentralized technology. This means that the whole Bitcoin ecosystem is constantly changing and adapting to new conditions and challenges, leaving behind certain components and features that were once deemed useful or even crucial to Bitcoin’s function.
Bitcoin mining is one of the most fundamental aspects of Bitcoin and it is a process that has changed considerably over the years, so much so that it is now virtually impossible to mine Bitcoin the way it was done when the digital currency first emerged in 2009.
Mining Bitcoin with the Bitcoin Core client was a feasible way for a solo miner to validate Bitcoin transactions and earn bitcoins as a reward in the early years of this currency when the mining community consisted of few people. Now, Bitcoin Core mining is merely a historical artifact, meaningful only in its relation to the history of the development of the cryptocurrency.
We prepared a comprehensive guide to explain how Bitcoin mining works and how it evolved over the years. Even if Bitcoin Core is no longer used for mining, it is important for the community to understand the full implications of such changes, as they govern both the present and the future of Bitcoin.
What Is Bitcoin?
In order to understand how Bitcoin mining works, we need to understand the fundamental principles of the world’s first cryptocurrency. Bitcoin was founded as a decentralized payment alternative through which people can directly exchange value without depending on a central authority like a bank or a state to monitor their transactions.
While the idea of an alternative payment system without an overseeing authority had been around for many years, it was Satoshi Nakamoto, the pseudonymous creator of Bitcoin, who made it a reality by developing a decentralized infrastructure to secure the validity of value transfers. This infrastructure model is known as blockchain technology.
Bitcoin and many other altcoins that followed its footsteps are based on blockchain technology. Thanks to the blockchain, it is possible to confirm Bitcoin transactions as valid and people are spending the Bitcoin they actually own instead of taking advantage of Bitcoin’s digital nature to fake their funds.
Blockchains combine the technological possibilities opened by cryptography and peer-to-peer networks with an ages-old accounting tool i.e. ledgers. We use ledgers to keep transaction records in order to prove that the information about our accounts is accurate.
You can think of Bitcoin blockchain as a collective and public ledger that everyone can view and see for themselves that all is by the book and transactions are legit. Each block on the blockchain represents a new page of the ledger, stamped with mathematical proof that shows that all transactions are in accord with the previous transactions and no tampering has occurred. This way, everyone can continue to use Bitcoin without fearing for the security of their accounts.
Bitcoin miners shoulder a crucial role in this process because they provide mathematical proof that each block is indeed legit.
What Is Bitcoin Mining?
To put it simply, Bitcoin mining is the process of validating Bitcoin transactions. It is called mining because “miners” receive newly-generated Bitcoin and additional transaction fees as block rewards for each validated block of transactions.
When you make a Bitcoin transaction, for example, send someone some BTC, that transaction first goes to the Bitcoin blockchain’s memory pool (mempool for short). Bitcoin miners select a certain number of transactions from the memory pool to combine in a block and try to come up with the right mathematical proof that shows all the transactions in the pool are indeed legit. Once miners manage to validate a block of transactions by providing the proof, the block is added to the blockchain and becomes (almost) impossible to tamper with.
Validating Bitcoin transaction blocks is designed as an energy-intensive process in order to make the blockchain secure, as trying to validate false blocks would prove too costly for scammers. Once miners provide the mathematical proof that their block is valid, they earn bitcoins, along with any transaction fees attached to the transactions they validated in exchange for their efforts.
Once the new block takes its place on the blockchain, it is broadcasted publicly on Bitcoin’s peer-to-peer network and everyone can check the proof to confirm whether the block is indeed valid. If a block isn’t valid, other miners can easily flag it and prevent it from becoming official.
This proof-based system is known as the proof-of-work algorithm and works as a consensus mechanism to keep everyone on the same page. In the next section, we will explain how miners find the necessary proof to validate blocks and get into the more nitty-gritty details of Bitcoin mining.
How Does Bitcoin Mining Work?
We talked about how Bitcoin miners have to provide mathematical proof that shows the block they submit to the blockchain is a valid block. We will cover how exactly they find that proof in this section.
You might have read on the internet that Bitcoin mining involves complex mathematical problems. That is not entirely accurate because Bitcoin miners – or their mining rigs – are not actually solving any problems. The mining process is actually a lot more like the lottery, as it depends more on luck and the number of tries one can make. Let’s go over some of the core components of the process to see how they come together.
What Is a Hashing Algorithm?
The proof-of-work protocol we described above utilizes a cryptographic algorithm called SHA-256 in order to encrypt Bitcoin transaction data. SHA-256 is a one-way cryptographic algorithm, which means that once you run a piece of data through the algorithm, it becomes impossible to decrypt it to see the original data. This method of encryption is known as hashing.
Let’s illustrate hashing with an example. If we take the above paragraph and run it through the SHA-256 algorithm, we get a long string of alphanumeric characters, usually represented as a 64-digit hexadecimal number. However, if we change even one letter in the paragraph, the resulting hash value will be completely different. This means that we can confirm we have the same paragraph or the same dataset pretty easily by running it through the algorithm and comparing the results. The hash values for the same data set will always match.
Bitcoin mining protocol assigns a unique hash value to all the previous Bitcoin transactions and to each Bitcoin block. Once the miners compile a block with transactions, the mining protocol takes that block’s unique hash value and hashes it again with a variable number, producing a new target hash for the next block to be mined.
Miners try to find the variable number that provides the same (or the closest smaller) hash value as the block target hash by hashing the previous block hash with random numbers. These random numbers are also known as nonces, as in “number only used once,” since any given number that doesn’t produce the right hash value is discarded until the right number is found.
What Is Adjusting Hash Difficulty?
As you can see, finding the right number is a matter of luck rather than problem solving. The first miner who finds the right hash value gets to record the block on the blockchain and earns block rewards for their trouble.
Since Bitcoin has a limited supply, the number of Bitcoins that are awarded for each validated block halves approximately every four years. But earning even a couple of bitcoins is a pretty sweet deal when you consider the price of a single BTC.
However, that doesn’t mean mining Bitcoin is easy. In fact, the sweetness of the reward makes the competition even stiffer since the Bitcoin mining protocol increases the level of difficulty as more miners join the race. The protocol adjusts the hash difficulty approximately every two weeks, based on the total computing power in the Bitcoin network. When more miners enter the race, the mining difficulty increases in order to keep the block production at a steady rate.
Increased mining difficulty means that it gets harder and harder for a miner to find the right hash value. Bitcoin mining difficulty is measured in hash rates i.e. the number of hashes per second necessary to mine a single block.
Imagine that there are only a couple of Bitcoin miners in the world, as was the case when the digital currency first launched. Since the total computing power in the network would be quite small in such a case, the corresponding hash difficulty would also be very low. A miner could come up with the right hash value by hashing maybe a few thousand numbers per second, a feat that most computers can easily handle.
However, the increasing price of Bitcoin over the years caused an exponential rise in the number of Bitcoin miners, dragging the difficulty level up and above several terahashes per second (TH/s). That means that a miner needs to hash trillions of nonces per second to come up with the right hash value.
How Does Bitcoin Operate?
We talked about how Bitcoin miners race each other in order to come up with the proof that shows the block they mine is a valid block in the previous section. But our definition of Bitcoin mining would remain too abstract if we don’t situate it properly in the right context. So let’s take a step back and talk about how Bitcoin actually operates through a slightly technical viewpoint.
As you already know, Bitcoin is essentially a software project. It is a program that is ruled by its code, such as the proof-of-work protocol and the hashing algorithm we explained above. It is also a blockchain, a ledger that keeps records of all Bitcoin transactions. Finally, it is a peer-to-peer network through which transactions are validated and confirmed. All three layers are crucial to the smooth functioning of Bitcoin. But all these functions depend on an important fourth variable to operate: Bitcoin nodes.
What Does Running a Full Node Mean?
Bitcoin is a decentralized project. This means there are no central Bitcoin servers where the program runs on its own. Instead, Bitcoin operates through the computers that are connected to the Bitcoin network i.e. Bitcoin nodes. Bitcoin nodes are computers that run Bitcoin clients, the code that allows them to interact with the Bitcoin network and the Bitcoin blockchain.
There are two main kinds of Bitcoin nodes: regular nodes and full nodes. All clients that connect to the Bitcoin network to interact with Bitcoin are considered Bitcoin nodes, but it is the full nodes that keep Bitcoin up and running by downloading all the transactions on the blockchain and checking them against Bitcoin consensus rules. Only a full node can police the Bitcoin blockchain against false blocks and confirm the validity of mined blocks.
There are various Bitcoin clients. For example, all Bitcoin wallets are essentially programs that allow you to interact with the Bitcoin blockchain and make Bitcoin transactions. Some of these nodes depend on full nodes to get the relevant information about the state of the blockchain to make transactions quickly and easily.
Running a full node can be an expensive task since these nodes have to download the whole blockchain and broadcast it on the Bitcoin network. While Bitcoin mining can be a profitable venture, there are no tangible rewards for running a full node. Nevertheless, Bitcoin can’t operate without full nodes checking and confirming each Bitcoin transaction.
How Did Bitcoin Mining Change Over the Years?
In the first years of Bitcoin, there were relatively few miners trying to mine Bitcoin, so the hash difficulty was quite low compared to its difficulty in the present. During those first years, anyone who ran a full node on their computer could also mine using their computer’s central processing units (CPUs).
But as Bitcoin prices increased, so did the interest in Bitcoin mining. People discovered that gaming laptops with special graphics processing units (GPUs) mined a lot faster than computers using CPUs. That realization was soon followed by the introduction of FPGA (field programmable gate array) mining in 2011. Once they were modified, FPGAs required less electricity to mine Bitcoin compared to CPU and GPU miners.
ASIC (application-specific integrated circuit) miners entered the market on the heels of FPGAs in 2012. These mining hardwares were specifically designed to mine more efficiently than any miner on the market and as such, they quickly became the industry standard.
In less than 5 years, Bitcoin mining went from a techie hobby to a full-on industry. Mining hardware with increased efficiency caused the hash difficulty to escalate from thousands to trillions. CPU and GPU mining quickly became unfeasible as computers couldn’t match the extravagant hashrates of industry standard mining rigs.
What Is the Difference Between Solo Mining and Pool Mining?
Mining was largely a solo effort in the first years of Bitcoin, but there were also miners that combined their resources together in order to mine more successfully. The first Bitcoin mining pool, “Bitcoin Pooled Mining Server” or Slush Pool, was established back in 2010.
Mining pools combine and direct the computing power of individual miners in order to mine more efficiently. As mining became more competitive and profitable, several mining pools emerged. Individual miners with limited resources joined mining pools to be able to compete with mining farms and other miners and to get a shot at earning block rewards.
Mining pools changed the panorama of the Bitcoin ecosystem by introducing an important change. Pool miners don’t have to run full nodes to mine Bitcoin. Instead, they run mining softwares and connect to the mining pool’s servers, joining mining operations as directed by the mining pool operators.
Among all else, that signals an important change in Bitcoin’s direction. Previously, it was mostly the solo miners who ran the full nodes that guaranteed the safety and security of Bitcoin blockchain.
Bitcoin’s decentralized nature depends on independent actors running full nodes but the decreasing profitability for solo mining causes them to lose the incentive to run their own nodes. While miners provide the hashing power, mining pool operators run the full nodes that are crucial to the well-being of Bitcoin.
What Is Bitcoin Core?
Bitcoin Core is a free and open-source Bitcoin client. It is a continuation of the original Bitcoin software released by Satoshi Nakamoto back in 2009. Since Satoshi Nakamoto’s version was simply called Bitcoin, developers changed the name of the software to Bitcoin-Qt to avoid any confusion in 2011, and finally settled on Bitcoin Core in 2014.
While Bitcoin Core isn’t the only Bitcoin software client, it is certainly the most popular one. It consists of a full node that can be used to validate and confirm Bitcoin transactions and has a secure Bitcoin wallet that allows users to interact with the blockchain safely.
Setting up a Bitcoin Core full node and wallet requires a little bit of effort, especially compared to some other wallets that you can simply download and start using. That said, there are advantages to using a Bitcoin Core wallet and running a full node. The Bitcoin Core wallet offers extra privacy and full control of your private keys and coins. You also become a validator for Bitcoin once you set it up, helping transactions flow smoothly and securely over the blockchain.
Bitcoin Core has a command line based engine Bitcoind that allows you access testnet, where you can make experiments with Bitcoin code without actually changing Bitcoin. You can also use the bitcoin-cli program to send RPC commands to Bitcoind, and explore the Bitcoin blockchain. Cryptocurrency enthusiasts and people interested in blockchain development can learn a lot from simply playing around with Bitcoin Core.
When Did Bitcoin Core Remove the Mining Function?
Bitcoin Core actually had a mining feature for CPU mining when it was first established. Solo miners could run Bitcoin Core and use the embedded mining feature of the wallet for CPU mining.
However, the feature was removed in 2016 when it became clear that ASIC miners and the popularity of mining pools made CPU mining mostly obsolete. As more miners moved to mining pools, the number of solo miners that run full nodes for mining decreased considerably.
These days, mining pools handle most of the Bitcoin mining. Individual miners pick a mining software compatible with the mining pool they want to use and combine their hashing power with other miners to successfully validate Bitcoin blocks. However, most mining pools also require special mining hardware, and it isn’t easy to find a mining pool that allows CPU mining.
A Few Words Before You Go…
Unfortunately, you can no longer use Bitcoin Core to mine Bitcoins. Bitcoin Core is a software client to interact with the Bitcoin blockchain and validate Bitcoin transactions. The increased difficulty of mining Bitcoin following the development of ASIC miners has made CPU mining a largely thankless effort and Bitcoin Core stopped providing mining support back in 2016.
These days, Bitcoin mining is mostly done through mining pools and with special mining hardware. That said, setting up a Bitcoin Core client and running a full node is still a good way of supporting Bitcoin’s decentralized nature even if you can’t earn Bitcoins through mining on Bitcoin Core.