What is Bitcoin Mining?
Bitcoin Mining Hardware Comparison
Currently, based on (1) price per hash and (2) electrical efficiency the best Bitcoin miner options are:
- Overview - Table of Contents
- What is Bitcoin Mining?
- Technical Background
- Bitcoin Mining Hardware
- Bitcoin Mining Software
- Mining Infographic
- What is Proof of Work?
- What is Bitcoin Mining Difficulty?
Before we begin...
Before you read further, please understand that most bitcoin users don't mine! But if you do then this Bitcoin miner is probably the best deal. Bitcoin mining for profit is very competitive and volatility in the Bitcoin price makes it difficult to realize monetary gains without also speculating on the price. Mining makes sense if you plan to do it for fun, to learn or to support the security of Bitcoin and do not care if you make a profit. If you have access to large amounts of cheap electricity and the ability to manage a large installation and business, you can mine for a profit.
If you want to get bitcoins based on a fixed amount of mining power, but you don't want to run the actual hardware yourself, you can purchase a mining contract.
What is Bitcoin mining?
Bitcoin mining is a lot like a giant lottery where you compete with your mining hardware with everyone on the network to earn bitcoins. Faster Bitcoin mining hardware is able to attempt more tries per second to win this lottery while the Bitcoin network itself adjusts roughly every two weeks to keep the rate of finding a winning block hash to every ten minutes. In the big picture, Bitcoin mining secures transactions that are recorded in Bitcon's public ledger, the block chain. By conducting a random lottery where electricity and specialized equipment are the price of admission, the cost to disrupt the Bitcoin network scales with the amount of hashing power that is being spent by all mining participants.
Technical Background
During mining, your Bitcoin mining hardware runs a cryptographic hashing function (two rounds of SHA256) on what is called a block header. For each new hash that is tried, the mining software will use a different number as the random element of the block header, this number is called the nonce. Depending on the nonce and what else is in the block the hashing function will yield a hash which looks something like this:
You can look at this hash as a really long number. (It's a hexadecimal number, meaning the letters A-F are the digits 10-15.) To ensure that blocks are found roughly every ten minutes, there is what's called a difficulty target. To create a valid block your miner has to find a hash that is below the difficulty target. So if for example the difficulty target is
any number that starts with a zero would be below the target, e.g.:
If we lower the target to
we now need two zeros in the beginning to be under it:
Because the target is such an unwieldy number with tons of digits, people generally use a simpler number to express the current target. This number is called the mining difficulty. The mining difficulty expresses how much harder the current block is to generate compared to the first block. So a difficulty of 70000 means to generate the current block you have to do 70000 times more work than Satoshi Nakamoto had to do generating the first block. To be fair, back then mining hardware and algorithms were a lot slower and less optimized.
To keep blocks coming roughly every 10 minutes, the difficulty is adjusted using a shared formula every 2016 blocks. The network tries to change it such that 2016 blocks at the current global network processing power take about 14 days. That's why, when the network power rises, the difficulty rises as well.
Bitcoin Mining Hardware
CPU
In the beginning, mining with a CPU was the only way to mine bitcoins and was done using the original Satoshi client. In the quest to further secure the network and earn more bitcoins, miners innovated on many fronts and for years now, CPU mining has been relatively futile. You might mine for decades using your laptop without earning a single coin.
GPU
About a year and a half after the network started, it was discovered that high end graphics cards were much more efficient at bitcoin mining and the landscape changed. CPU bitcoin mining gave way to the GPU (Graphical Processing Unit). The massively parallel nature of some GPUs allowed for a 50x to 100x increase in bitcoin mining power while using far less power per unit of work.
While any modern GPU can be used to mine, the AMD line of GPU architecture turned out to be far superior to the nVidia architecture for mining bitcoins and the ATI Radeon HD 5870 turned out to be the most cost effective choice at the time.
FPGA
As with the CPU to GPU transition, the bitcoin mining world progressed up the technology food chain to the Field Programmable Gate Array. With the successful launch of the Butterfly Labs FPGA 'Single', the bitcoin mining hardware landscape gave way to specially manufactured hardware dedicated to mining bitcoins.
While the FPGAs didn't enjoy a 50x - 100x increase in mining speed as was seen with the transition from CPUs to GPUs, they provided a benefit through power efficiency and ease of use. A typical 600 MH/s graphics card consumed upwards of 400w of power, whereas a typical FPGA mining device would provide a hashrate of 826 MH/s at 80w of power.
That 5x improvement allowed the first large bitcoin mining farms to be constructed at an operational profit. The bitcoin mining industry was born.
ASIC
The bitcoin mining world is now solidly in the Application Specific Integrated Circuit (ASIC) era. An ASIC is a chip designed specifically to do one thing and one thing only. Unlike FPGAs, an ASIC cannot be repurposed to perform other tasks.
An ASIC designed to mine bitcoins can only mine bitcoins and will only ever mine bitcoins. The inflexibility of an ASIC is offset by the fact that it offers a 100x increase in hashing power while reducing power consumption compared to all the previous technologies.
Unlike all the previous generations of hardware preceding ASIC, ASIC may be the "end of the line" when it comes to disruptive mining technology. CPUs were replaced by GPUs which were in turn replaced by FPGAs which were replaced by ASICs. There is nothing to replace ASICs now or even in the immediate future.
There will be stepwise refinement of the ASIC products and increases in efficiency, but nothing will offer the 50x to 100x increase in hashing power or 7x reduction in power usage that moves from previous technologies offered. This makes power consumption on an ASIC device the single most important factor of any ASIC product, as the expected useful lifetime of an ASIC mining device is longer than the entire history of bitcoin mining.
It is conceivable that an ASIC device purchased today would still be mining in two years if the device is power efficient enough and the cost of electricity does not exceed it's output. Mining profitability is also dictated by the exchange rate, but under all circumstances the more power efficient the mining device, the more profitable it is. If you want to try your luck at bitcoin mining then this Bitcoin miner is probably the best deal.
Bitcoin Mining Software
There are two basic ways to mine: On your own or as part of a Bitcoin mining pool or with Bitcoin cloud mining contracts. Almost all miners choose to mine in a pool because it smooths out the luck inherent in the Bitcoin mining process. Before you join a pool, make sure you have a bitcoin wallet so you have a place to store your bitcoins. Next you will need to join a mining pool and set your miner(s) to connect to that pool. With pool mining, the profit from each block any pool member generates is divided up among the members of the pool according to the amount of hashes they contributed.
How much bandwidth does Bitcoin mining take? If you are mining with a pool then the amount should be negligible with about 10MB/day. However, what you do need is exceptional connectivity so that you get any updates on the work as fast as possible.
This gives the pool members a more frequent, steady payout (this is called reducing your variance), but your payout(s) can be decreased by whatever fee the pool might charge. Solo mining will give you large, infrequent payouts and pooled mining will give you small, frequent payouts, but both add up to the same amount if you're using a zero fee pool in the long-term.
What is Bitcoin Mining?
Bitcoin mining is the process of adding transaction records to Bitcoin's public ledger of past transactions. This ledger of past transactions is called the block chain as it is a chain of blocks. The block chain serves to confirm transactions to the rest of the network as having taken place.
Bitcoin nodes use the block chain to distinguish legitimate Bitcoin transactions from attempts to re-spend coins that have already been spent elsewhere.
Bitcoin mining is intentionally designed to be resource-intensive and difficult so that the number of blocks found each day by miners remains steady. Individual blocks must contain a proof of work to be considered valid. This proof of work is verified by other Bitcoin nodes each time they receive a block. Bitcoin uses the hashcash proof-of-work function.
The primary purpose of mining is to allow Bitcoin nodes to reach a secure, tamper-resistant consensus. Mining is also the mechanism used to introduce Bitcoins into the system: Miners are paid any transaction fees as well as a "subsidy" of newly created coins.
This both serves the purpose of disseminating new coins in a decentralized manner as well as motivating people to provide security for the system.
Bitcoin mining is so called because it resembles the mining of other commodities: it requires exertion and it slowly makes new currency available at a rate that resembles the rate at which commodities like gold are mined from the ground.
What is Proof of Work?
A proof of work is a piece of data which was difficult (costly, time-consuming) to produce so as to satisfy certain requirements. It must be trivial to check whether data satisfies said requirements.
Producing a proof of work can be a random process with low probability, so that a lot of trial and error is required on average before a valid proof of work is generated. Bitcoin uses the Hashcash proof of work.
What is Bitcoin Mining Difficulty?
The Computationally-Difficult Problem
Bitcoin mining a block is difficult because the SHA-256 hash of a block's header must be lower than or equal to the target in order for the block to be accepted by the network.
This problem can be simplified for explanation purposes: The hash of a block must start with a certain number of zeros. The probability of calculating a hash that starts with many zeros is very low, therefore many attempts must be made. In order to generate a new hash each round, a nonce is incremented. See Proof of work for more information.
The Bitcoin Network Difficulty Metric
The Bitcoin mining network difficulty is the measure of how difficult it is to find a new block compared to the easiest it can ever be. It is recalculated every 2016 blocks to a value such that the previous 2016 blocks would have been generated in exactly two weeks had everyone been mining at this difficulty. This will yield, on average, one block every ten minutes.
As more miners join, the rate of block creation will go up. As the rate of block generation goes up, the difficulty rises to compensate which will push the rate of block creation back down. Any blocks released by malicious miners that do not meet the required difficulty target will simply be rejected by everyone on the network and thus will be worthless.
The Block Reward
When a block is discovered, the discoverer may award themselves a certain number of bitcoins, which is agreed-upon by everyone in the network. Currently this bounty is 25 bitcoins; this value will halve every 210,000 blocks. See Controlled Currency Supply or use a bitcoin mining calculator.
Additionally, the miner is awarded the fees paid by users sending transactions. The fee is an incentive for the miner to include the transaction in their block. In the future, as the number of new bitcoins miners are allowed to create in each block dwindles, the fees will make up a much more important percentage of mining income.
Thanks
Blitzboom and the guys from #bitcoin-dev for their help with writing the guide!