Get started
Get started
Pools are groups of individual miners who work together to increase their chances of finding valid blocks, and thus receive more regular rewards. But do you really know how these Bitcoin mining pools work? In this article, we study in detail their mechanisms, their communication protocols as well as the methods used to calculate the remuneration established on shares.
Bitcoin mining is the act of participating in the proof-of-work process (Proof-of-Work), a mechanism that allows resistance in the face of Sybil attacks.
When a transaction is built and signed by a user, it is first broadcast to the nodes that keep it in their mempools. These pending transactions are then grouped into candidate blocks by the miners. Proof of work is finding a changeable value called” Nuncio ” in the header of the block which, once passed into a random mathematical function (SHA256d), gives a result that is less than a target number.
This target is adjusted every 2016 blocks, about every two weeks, and therefore changes the difficulty to mine a valid block. This adjustment aims to maintain the average validation time for a block at around 10 minutes, depending on the evolution of the computing power of the Bitcoin network. If there are more miners and the blocks are found too quickly, the difficulty increases. Conversely, if the network loses computing power, the difficulty decreases.
Minors are encouraged to participate in the network through rewards. When you find a valid block, you receive a reward consisting of the block grant (the creation of new bitcoins) and the transaction fees included in the block.
Although in theory it is possible to mine with any computer, the increase in computing power on Bitcoin has made this method obsolete. Today, to have a reasonable chance of finding a valid block, you need to use chips specially designed for this task, capable of quickly executing the SHA256d function. These specialized machines are known as ASICs (Application-Specific Integrated Circuits).
A mining pool is a group of individual miners who combine their computing power to collaborate in the search for valid blocks. Faced with the increasing difficulty of mining, it has become increasingly unlikely for an individual miner to find a block and receive rewards on a regular basis. Mining pools offer a solution to this problem.
Miners within a pool share their resources to collectively search for valid proof of work. When a block is found by the pool, the reward, consisting of newly created bitcoins and transaction fees, is distributed among the members. This distribution is in proportion to the computing power that each minor contributed to the group.
This collaboration allows miners to increase their chances of finding blocks, which guarantees them more regular and predictable earnings compared to individual mining. In fact, the operation of an ASIC incurs operational costs, mainly due to the power consumption of the device, which operates continuously. For a solo miner, who has a small amount of computing power compared to the rest of the Bitcoin network, discovering valid blocks can be extremely sporadic. It is said that its variance is increasing. He will therefore have very random incomes in the face of regular expenses. By joining a mining pool, which finds blocks more frequently thanks to its shared computing power, the miner will be able to reduce his variance, and thus smooth his income. He will therefore have better visibility on the operation of his business and will be able to improve his cash flow.
In French, you could translate “mining pool” as “mining cooperative”, but very few people use this term.
Be careful, mining pools should not be confused with mining farms. A pool, as we have just seen, is a group of individual miners who pool their computing power to increase their chances of finding blocks. A mining farm, on the other hand, is a physical installation where numerous mining machines (ASICs) are grouped under the same operator.
The mining farm aims to optimize all operational costs by achieving economies of scale in the management, maintenance, cooling and energy consumption of the machines. On the contrary, the ASICs in a mining pool are scattered across the world and belong to different individuals, since they are only a virtual collective of shared resources. Additionally, farms can be part of a mining pool.
A mining pool consists of a central server that coordinates the work of miners and communicates with the Bitcoin network. The server provides individual minors with what are called” Block templates ” containing the information needed to create a new candidate block (the transactions to be included and the block header). Once the block template is received, the individual miner starts looking for a valid proof of work for it by changing the nonce and passing the header into the hash function.
To optimize communications between each party, and thus increase their profitability, mining pools generally use a network protocol superimposed on the Bitcoin network called Stratum. Stratum was created at the end of 2011 by Marek Palatinus (aka “Slush”), the founder of the very first mining pool called Slush Pool, now renamed Braiins. Stratum came to replace the old Getwork protocol, which was then obsolete. It is important to understand that Stratum is not integrated as a standard in Bitcoin, but it has established itself as the gold standard for mining for over a decade. Its second version, Stratum V2, is currently under development.
In reality, in pools, individual miners are not looking for a hash that is less than Bitcoin's difficulty target. Indeed, in a second step, the pool must be able to determine the participation rate of each minor during a period of time. Miners who provided a lot of computing power to the pool should be rewarded more than those who provided less. The problem that arises is that of calculating this participation.
A naive method would be to ask miners to send all of their calculated hashes to the pool, regardless of whether they meet the difficulty criteria, to prove their work. However, if the pool were to recalculate these hashes to confirm their veracity, this would lead to duplication of work, negating the effectiveness of the operation since the pool would find itself redoing all the work that the miners have already done.
To solve this problem, mining pools have implemented the concept of “shares”. A share, or a share in French, is a unit that is used to measure the contribution of each minor within the pool. A share is simply a hash of the candidate block that satisfies a higher difficulty target than Bitcoin's real difficulty target.
To fully understand this principle, let's draw an analogy. Imagine a die with 20 faces. On Bitcoin, let's imagine that you have to roll less than 3 with this die to validate a block. In this context, the mining pool could say that the difficulty of the share is 10. Thus, for an individual miner in this pool, each roll of the dice that gives a result of less than 10 counts as a valid share, even if it is not necessarily a valid block.
For each hash of the candidate block performed by an individual miner, there can therefore be 3 possible outcomes:
All valid shares found by an individual miner are passed to the pool, even if they don't correspond to a valid result for a block on Bitcoin. This system therefore allows pools to measure the work done by each miner, without having to individually recalculate all the hashes of all the miners. The pool only checks hashes that are below a certain target, in order to limit the number of checks required. Thus, it is sometimes said that the individual miners in a pool are no longer miners, but simply become “choppers.”
The pool will adjust the difficulty of the share according to each individual miner, to balance the verification load and ensure that all miners, regardless of their hashrate, submit shares at regular intervals. This makes it possible to accurately measure each miner's hashrate and distribute rewards accordingly.
There are then several methods for calculating the remuneration of minors based on the shares submitted to the pool. Each method has its own specificities and influences the distribution of earnings differently. Here are the most common ones:
But there are also plenty of other lesser-known methods of calculating remuneration:
➤ Learn more about building Bitcoin blocks.
According to the mempool.space site, the total hash rate of the Bitcoin network is currently around 600 EH/s, or 600 trillion hashes every second.
Since the beginning of 2024, more than half of the mined blocks have been shared between the 2 giants Foundry USA (29%) and AntPool (25%). Other large mining pools include ViaBTC (13%) and F2Pool (12%). The other pools are much smaller:
➤ Discover the difference between a soft fork and a hard fork.
Mining pools allow individual miners to smooth their earnings by reducing the interval between each remuneration and by reducing the risk of not finding a block through the pooling of computing power.
Each miner's participation is calculated based on shares, blocks that have a proof of work satisfying a less difficult target than the real Bitcoin target. Depending on the number of shares sent by each minor, their remuneration is calculated according to the method chosen (PPS, FPPS, PPLNS...).
According to Eric Voskuil, in his book Cryptoeconomics, the economic dynamics underlying the Bitcoin protocol naturally encourage a concentration of hashing power. Economies of scale and the proximity bonus lead miners to cluster into large farms, while the variance in block rewards encourages them to form pools. While miners can technically change pools by disconnecting their hardware to reconnect it elsewhere, they are generally encouraged to stay within the larger pools. This trend could gradually lead to the centralization of Bitcoin mining. There is no economic incentive to prevent this. This is a natural defect in Bitcoin, but could eventually be corrected at the protocol level.