The dawn of the age of competitive mining
(note: in this article I use capitalized “Mempool” to refer to the Chinese mining pool and lowercase “mempool” to refer the data structure in bitcoind that stores unconfirmed transactions)
Yesterday a Chinese mining pool, Mempool, in conjunction with WeatherSV fired the starting gun on a new era of Bitcoin economics. If my rumour mill is correct this plan was hatched during CambrianSV and I’ve eagerly waiting to see if it became a reality. It seems it has.
The new paradigm
Briefly, WeatherSV has made an agreement with Mempool to send transactions directly to them and let Mempool take care of getting them mined which likely also means broadcasting the transactions to other miners. Part of the deal is a substantial reduction (80%) in the transaction fee and the use of a transaction fee that will be variable to keep the price stable in fiat terms. Some details aren’t clear yet, such as how the transaction fee is paid, whether it is a normal bitcoin transaction fee, or whether the fee is paid out of band to Mempool in some other way. I’m going to assume the latter because it makes more economic sense and it’s also what my rumour mill seems to indicate.
This notion of a miner gaining exclusive access to a pool of transaction fees in exchange for something is not new, in fact this very notion is what seeded the concept of Miner ID although in that case it was a group of miners that any miner could opt-in to. It has some interesting properties which I’d like to explore.
The properties of privately mined transactions
On the surface the 80% discount seems enormous. But if we assume the remaining 20% is exclusively claimed by Mempool it starts to make a bit more sense. https://sv.coin.dance/blocks is currently reporting mempool as 8.3% of hashpower. For simplicities sake let’s call it 10%. That means that at the standard transaction fee Mempool would expect to only claim 10% of the fees from WeatherSV since all miners are competing to mine those transactions and claim the fees. By gaining exclusive access to the fees they claim them regardless of who mines the transactions. In effect doubling their revenue whilst WeatherSV enjoys a steep discount. Win/win. There are a couple of downsides here on the surface but do they really matter? Firstly the fee is below the “minrelaytxfee” default (0.5 sat/byte) which has a couple of implications. A) Other miners aren’t likely to accept the transactions for mining and B) they won’t even retain them in mempool for double spend checking. So Weather SV transactions will take on average 10 blocks to confirm and are not at all protected from double spending. But does this matter? In WeatherSV’s case probably not. These transactions are not between two parties. Only WeatherSV could double spend these transactions and they have no incentive to do so. This is data recording, not a value transfer so there’s nothing to double spend. Presumably the delay in confirmation is something WeatherSV has decided is either not a problem, or an acceptable compromise for the saving.
So here we see an interesting principle demonstrated:
The purpose of a transaction significantly affects its security requirements.
So it seems Mempool has a win here, doubling revenue. So what is to stop the whole network going in this direction in a race to the bottom with miners slashing fees until we hit zero? Well first, as demonstrated above, the double spend problem means this model is not at all suitable for payments except perhaps in special circumstance (internal transfers within a company for example). But also there is a cost. If the public transaction fee is so low that other miners will ignore it then Mempool has just raised their orphan risk. When propagating blocks they will not able to take advantage of Compact Blocks, Streaming Block Templates or any other similar technology for this particular set of transactions. So it will cause a measurable delay in their propagation. Right now that might be small and is probably negligible. But that fact it exists is important because in puts a floor under the lowest transaction fees they can charge. Which brings us to second important principle:
A privately mined transaction will always have a higher base cost than a publicly available one.
In a perfectly efficient market there would two economically sensible responses to this: 1) limit the number of privately mined transactions so that the additional revenue more than offsets the cost of additional orphan risk or 2) increase the premium charged over and above a public transaction to offset an even higher orphan risk and allow a larger number of private transactions. We might even one day see sophisticated market mechanics where this available private transaction space is measured and auctioned off.
Now these responses don’t really square with the fact that WeatherSV fees are cheaper than almost anyone else’s on the network. Why is that? Probably because the market for mining services is still in its infancy. Transaction fees are not a significant portion of miner revenue at this stage so miners aren’t really incentivised to look too closely. In the future we expect this market to become fiercely competitive and margins to be razor thin. But we aren’t there yet. At this point I’m only aware of two miners that are doing any work in the area of modelling their costs for transaction processing and that work is only in its early stages. So most miners don’t actually know what transaction fee levels are profit or loss making. But now the race has begun. Other miners should be looking at what Mempool are doing and considering whether they can undercut them or perhaps do a deal with Mempool to take a cut of the fees if they also agree to mine them at the lower rate. There’s many possible permutations here and rather than try to model and predict I’ll take the lazy option and just see what pans out in the market.
One really interesting point to look at though is that this a special case where the smaller miner has an advantage over the larger miner. The ‘special case’ here is that we assume confirmation time doesn’t matter and double spend risk isn’t a consideration. If we take CoinGeek as an example (~25% hash rate last time I looked), the numbers are a bit different for them. In normal circumstances they would take 25% of the full transaction fee, if they mirrored this new model, they’d be taking only 20%. Of course now they are taking 0% because those transactions are now not in the publicly available pool. But their only motivation for offering a deal like this is to take the 5% loss of revenue before someone else does and makes it a 25% loss. So let’s restate this as another interesting principal:
If confirmation time and double spend risk are not important for a transaction then a smaller miner has a competitive advantage over a larger miner.
Generalising to user based fee policies
Something I’ve predicted for a long time is the emergence of user based fee policies. Variations like:
- Whether to price in fiat or Bitcoin stable terms
- Whether to take fees embedded in bitcoin transactions or out of band
- How to price different elements of a transaction
- Sliding scale volume pricing
- Private/public dissemination of transactions
This move by Mempool uses some of these elements already, and it’s only the beginning. We can expect to see other miners (the ones who are paying attention) react to this and become a lot more proactive in developing and implementing fee policies. Merchant API is due for beta release very soon and will provide the fundamental platform on which to start building these sort of flexible pricing features.
Taking it further
It’s worth exploring a more sophisticated version of this model to see where it could potentially go. Imagine that Miner A enters into agreement with App B to mine there transactions for a fee less than that most other miners but greater than the fee required to relay the fee and respect the first seen rule (currently this fee in known as “minrelaytxfee”). The fee is divided into two parts, the first part is payed as a normal transaction fee at the level of “minrelaytxfee” which ensures other miners will not ignore it. The second part is the difference between the total fee and the minrelaytxfee and is paid direct to the miner. Thus even if another miner does choose to mine those fees Pool A still gets a cut, but likely no one else will so Miner A gets all of the fees and App B enjoys both a discount (although less than in the case of weatherSV) and also the same zero-conf guarantees as any other transaction. They will still likely have to accept longer confirmation times though.
The effect of Nakamoto consensus on miner behaviour
How might other miner react to such an arrangement (assuming they know about it)? I don’t have a good answer but it raises an interesting point to speculate upon. We have already introduced the concept of miners sanctioning ‘anti-social’ behaviour from other miners in the form a pledge to orphan blocks that contain obvious double spends. Miners representing a majority of hash rate have already pledged to do this (the ‘obvious’ part and the ‘majority hash rate’ part are the key elements that the detractors of this plan failed to understand last March) and it is simply a matter of finishing the work to make the software do this before it begins.
So we already have the concept of ‘anti-social’ behaviour. But the definition of that beyond the double spend case is a bit of a grey area. What is defined as anti-social behaviour will probably be proposed by one miner to begin with then settled by Nakamoto consensus. If Miner C doesn’t like Miner A taking private fees whilst still enjoying double spend protection they might choose to orphan Miner A blocks. But that won’t get them very far if they don’t have 51%. On the other hand if Miner C, D, E… etc come together with more than 51% of hash rate and start orphaning Miner A they have collectively come up with a new definition of anti-social behaviour that the network won’t tolerate. So whilst the definition of “anti-social” is a bit ambiguous, we have a perfect mechanism, already built into bitcoin, to clarify it on a case by case basis.
Will this happen? I don’t know, the point of this hypothetical is to show what’s possible, not whether it’s likely or whether it’s good or bad. What it demonstrates though is a final principle:
A majority of miners, voting with their CPU (or ASIC) power, can enforce agreeable behaviour if there’s consensus that it’s in shared interest of the whole network.
The starting gun has been fired on a whole new era of discovery of the real properties of Bitcoin and it was only possible due to the rising volume of activity generating miner revenues worth thinking about. This is what I mean when I say that the original Bitcoin never had a chance to be Bitcoin, it needed scale before we could really start exploring the properties of the system.
8 of 8 reviewers say it's worth paying for
0 of 8 reviewers say it's not worth paying for