Bitcoin Miner Transaction Fee Gathering Capability


In this report we discuss a new proposed mining pool, expected to censor certain transactions. This may result in a detectable diversion from the typical revenue maximisation transaction selection policy, which forms the basis of our analysis. Using the Bitcoin Core command “getblocktemplate”, we generated Bitcoin candidate blocks without doing any hashing, conducting this every 20 seconds for a two week period and recording the results in a database. We used multiple versions of Bitcoin Core and newer releases of Bitcoin Core experienced a 40.3% fee income improvement, when compared to a 2015 version. We also benchmarked our results against the real Bitcoin network and we were able to beat the real Bitcoin miners by generating 0.15% more in hypothetical fee income. This type of analysis may eventually be helpful in detecting miner censorship and determining whether Bitcoin’s censorship resistance property is a universal property of the system or merely a consequence of the transaction fee premium.


By gathering up Bitcoin transactions from their memory pools and constructing candidate blocks, Bitcoin miners produce block candidates before engaging in hashing in order to add a proof of work to the block. In theory, miners should aim to maximise transaction fee revenue by fitting as many transactions as possible into the blocks, with the highest fees, within the block weight limit constraint. As far as we know, little analysis has been done to evaluate the effectiveness of this fee maximisation process – therefore BitMEX Research decided to put our minds to it to shed some light on the matter. 

Bitcoin Core has an inbuilt command which enables it to produce candidate block templates. The Bitcoin developers have designed the transaction selection algorithm to select transactions which should maximise fee revenue. It is likely that most miners in the network are using this algorithm.


For this report, we used Bitcoin Core’s block template generation algorithm ourselves, using our local memory pool, to produce candidate blocks. This enabled us to compare the results between different versions of Bitcoin Core and also against the real miners.

Candidate block construction methodology

To conduct the analysis, we ran the “getblocktemplate” command every 20 seconds on Bitcoin Core 0.20.0 (released in 2020) and Bitcoin Core 0.10.3 (released in 2015). We then logged the results of these block templates into a database. We logged the results over a 15 day period in January 2021.

Memory pool maximum size 300MB
OS Ubuntu 20.04
Hardware specification 4 CPUs
Cloud service provider Google

In order to compare the results to the actual miners, we looked at the timestamp in each block produced and then went backwards in one second increments, until the timestamp matched that of our local candidate block, to the nearest second. It is the fee revenue in this block which was compared to the actual miners. Since our candidate blocks were produced every 20 seconds, the maximum time we went backwards was 20 seconds and the average time gap was 10 seconds. In theory, this gave the real miners a slight advantage, due to new transactions which may have been added to the memory pool in this short 10 second time window. Of course, miners could choose a fake or adjusted timestamp in their blocks and our analysis makes no effort to counter this.

Block template results – Comparison between versions of Bitcoin Core

Figure 1 – Average Bitcoin Fee Income per Block – Bitcoin Core template vs actual miners (BTC)

(Source: BitMEX Research)
(Notes: Data collected in the period 03/01/2021 to 18/01/2021)

Our results also show that there has been a significant improvement in the transaction selection algorithm between the 2015 and 2020 versions of Bitcoin Core. The newer version generated 40.3% more fees than the older version in the period. The older version of Bitcoin was released pre SegWit, pre opt-in Replace by Fee and pre Child Pays For Parent. SegWit is likely to explain the bulk of the differences and perhaps it’s not fair to look at SegWit as a fee optimisation improvement, since this was a new transaction format the old version of Bitcoin didn’t include in its blocks.

Figure 2 below illustrates the significant differences between the current version (blue dots) and five year old version (red dots) of Bitcoin Core, with respect to transaction selection and fee income.

Figure 2 – Transaction fee income per candidate block (BTC) – Bitcoin Core 0.20.0 in blue & Bitcoin Core 0.10.3 in red

(Source: BitMEX Research)
(Notes: Data collected in the period 03/01/2021 to 18/01/2021)

Block template results – Comparison between the real network and our locally produced blocks

As Figure 1 above illustrates, our local blocks constructed using Bitcoin Core 0.20.0, were able to beat the real network in terms of fee income in the period, generating an average of 0.777 bitcoin per block, compared to the real network, which saw average income of 0.775 bitcoin per block. This small 0.15% beat is despite the theoretical 10 second time window advantage the real miners had. This beat may have been partially driven by a number of empty blocks produced by the real miners in the period, perhaps caused by SPV mining, a concept we explained back in October 2017.

Figure 3 below shows the differences in fee income between our locally produced blocks and the real network blocks over time. The data shows that on average our locally produced blocks had higher network fees – however in some circumstances we were beaten by the actual miners. Figure 4, the histogram, shows that the overwhelming majority of blocks had fees in our locally produced candidate block at a very similar level to the actual network.

Figure 3 – Transaction fee income – Difference between the actual and locally produced blocks (Bitcoin)

(Source: BitMEX Research)
(Notes: Data collected in the period 03/01/2021 to 18/01/2021)

Figure 4 – Transaction fee income histogram – Difference between the actual and locally produced blocks (Frequency)

(Source: BitMEX Research)
(Notes: Data collected in the period 03/01/2021 to 18/01/2021)

Block template results – Comparison between mining pools

The analysis can also be used to benchmark different mining pools, which appear to have performed differently. F2Pool appeared to perform well, beating our local blocks by an average of 0.025 bitcoin in fee income per block. This may have been driven by the 10 second advantage mentioned above. On the other hand, Antpool appeared to perform poorly in the period, losing to our local blocks by 0.02 bitcoin per block. These differences may sound small, but over the long term they can add up, especially if miner profit margins are low.

Figure 5 – Average fee income differences per block (Bitcoin)

(Source: BitMEX Research)
(Notes: Data collected in the period 03/01/2021 to 18/01/2021. All pools produced over 50 blocks in the period)

Figure 6 – Average fee income per block (Bitcoin)

(Source: BitMEX Research)
(Notes: Data collected in the period 03/01/2021 to 18/01/2021. All pools produced over 50 blocks in the period)

Miner Transaction Censorship

In October 2020, Canadian listed Bitcoin mining group DMG Blockchain [DMGI CN] announced the proposed launch of a new mining pool, with a planned policy of censoring certain transactions. Following that announcement, in January 2021 US-listed Bitcoin miner Marathon Patent Group [MARA US], announced that it plans to join the pool. Much of the marketing around the pool appears to be that the North American region can gain market share from China-based miners in a compliant way. As far as we can tell this pool has not yet produced any blocks on the Bitcoin network. Additionally, Digital Currency Group appears to have launched a new pool, Foundry, which has started to produce blocks. This pool may have a similar objective in terms of establishing a North American presence and we are not aware that this pool has a censorship policy.

Although some have questioned the capability of DMG Blockchain to execute the censorship policy, and the pool does not appear to have produced any blocks yet, in our view this is an important development for the network and likely to be a major issue in the coming years. At the early stage transaction censorship is likely to be based on a blacklist, with only a few economically insignificant UTXOs listed. However, one can plot out a pathway to greater censorship, with longer blacklists, then whitelists and eventually, potentially the orphaning of non-compliant blocks. While in the 2015 to 2017 period Bitcoin had a major civil war around scaling and how to conduct hardforks, it is possible the next period is embattled over privacy and transaction censorship. 

The narrative points in this potential conflict are becoming clearer. On one side of the argument proponents of censorship will argue that big institutional money has arrived, attracted by the store of value use case and anarchistic early adopters need to wake up to the reality that Bitcoin now exists in a regulatory framework, which is required by these new investors. On the other side of the argument, early adopters could argue that if the censorship resistance property is lost, Bitcoin might lose the characteristic that underpins its store of value use case.


It is the proposed transaction censorship pool which has prompted us to conduct this research. If pools engage in such policies and divert away from fee revenue maximisation transaction selection policies, it may be important to quantify the impact this has on mining revenue. Therefore we aim to keep running this analysis and hopefully identify and publish details with regard to which mining pools are conducting censorship, what impact this has on their revenue and even which individual transactions are being censored.

To some, the censorship resistance property of Bitcoin was always going to be directly linked to fee premiums. Rather than fees merely being sufficient to maximise miner revenue, they would also need to be enough to offset the disadvantages of frustrating the censors. Eric Voskuil, for example,  says “resistance to censorship is a consequence of transaction fees” in his piece entitled “Censorship Resistance Property”.

The state must consume taxes to at least the level of the fee premium to maintain censorship enforcement

(Source: Eric Voskuil)

Eric could well be correct here and this latest proposed mining pool action could well be supporting his thesis. The Bitcoin community will need to deal with this potential new reality. However, if Bitcoin’s value proposition – censorship resistant transactions – is no longer a universal property of the system, but instead entirely a consequence of the fee premium one adds to the transaction, Bitcoin may be inherently less useful than it otherwise would be. Even in this scenario, it is still possible this form of censorship resistance may be useful enough to bootstrap the network as a viable store of value and digital alternative to gold.