Mining STX via PoX is concentrated to a few miners because mining is competitive, where the more competition the less immediate, arbitrage profit there is to extract. Given current BTC/STX exchange rates, and STX block rewards, there is a definitive maximum aggregate bid breakeven point that every miner shares in common and can calculate ahead of bidding.
Due to this, miners with bigger pockets can afford to continue bidding to retain their turf when aggregate bids rise so that overall mining is at breakeven or at a loss. No miner can mine at a loss forever, but larger miners ca do this for longer periods of time than smaller miners, meaning they can box out smaller miners over time.
I don’t see how the original proposal changes this. Even if “miners should only send bitcoin transactions once it is clear that they have won the round”, that does not prevent big miners from effectively pricing out smaller miners.
By reducing total BTC transactions fees spent, all that does it increase the breakeven cost of aggregate mining in BTC terms (ie a higher number of BTC now can be spent overall on mining given BTC/STX exchange rate and STX block rewards). But while there is a boost to aggregate mining, absolutely nothing prevents this profit from immediately accruing only to large miners, the same exact way profits currently are accruing exclusively to large miners.
Having miners discover price first, then only send a BTC tx when they win, does nothing to prevent boxing out smaller miners by pushing the price discovery up to a point where even if smaller miners did win, they couldn’t afford to send the BTC to win the block rewards.
With that in mind, I want to take a step back, and think about why the same dynamic doesn’t occur in BTC PoW mining.
In BTC mining, miners can compete adding hash power until the difficulty may become so great, that there is no immediate arbitrage profit between electricity costs and miner rewards. In theory, large miners with deep pockets could mine at breakeven or loss, longer than smaller miners could afford to, meaning they can box out smaller miners. On the surface, it seems like the same exact dynamics are at play in STX mining and BTC mining.
So what’s different in PoW vs PoX?
-
Variable costs of mining BTC
Electricity costs (and hardware costs) vary wildly by region, meaning different miners have different cost bases. This means that when mining BTC, you have greater variability in what is seen as the breakeven cost. Contract this to mining STX which uses BTC as the mining cost. Unlike electricity, as a liquid asset, BTC’s value does not vary greatly by region, meaning all miners have more or less identical cost bases. Relative to STX mining, the variability of cost bases in BTC mining, introduces an additional vector of miner competition, one that results in a more dynamic set of currently profitable miners, and is uncorrelated to the vector of a miner’s size.
-
Higher friction to increasing mining BTC capacity
Mining STX and mining BTC both require hardware - but in STX, once a miner is mining, scaling up mining to a larger size is as simple as sending more BTC. It’s relatively frictionless to be bidding 200 sats per STX block instead of 100 sats. The same is not true for mining BTC - a miner can not just decide they want to be spending more hash power per block. For each increase in has power they want, they have to source, purchase, deploy, configure, and maintain a hardware device for that has power. This again means that the set of largest miners is more fluid, and dynamic in BTC mining vs STX mining.
-
BTC is a store of value
Some (many?) miners of BTC may every well not care if they are mining at breakeven or even at a loss, because mining is an anonymous, KYC free way to acquire BTC, which, as a store of value, should appreciate so that they are eventually in profit. This is effectively a “no-KYC” premium some miners may be willing to pay by mining at a higher price vs buying from an exchange. STX is not explicitly a store of value, so there is likely less confidence in miners that even if they mine at a loss today, they will be eventually in profit.
With these key difference in mind, if we want to optimize for increasing the number of STX miners, then there seem to be only a few possible levers to pull:
a. Increase the variability of cost basis of mining STX
b. Increase the friction of being a big miner of STX, relative to the friction of being a small miner of STX
c. Make STX more a store of value
I think c is outside the scope of this discussion, nor what STX should explicitly aspire to. As for a and b…
At first, increasing the variability of costs basis for mining STX seems impossible, it would effectively require charging people different amount of BTC to mine. But one way to do this would be to apply a non-linearity function to disproportionately down-weight larger miner bids.
ie if there are two miners. One miner bids 100 sats, the other bids 10 sats. Instead of giving the first miner a 10x higher probability of winning, if they got less than a 10x chance, then each miner has a different cost basis for a given expected payoff in STX.
This would also achieve goal b, of increasing the friction of being a bid miner of STX. It would encourage more, smaller miners, rather than fewer, larger miners - to a point. At some point, if miners get too small, the portion of BTC they are spending on tx fees that is not getting bid to win STX reduces their profit. So introducing this function means there is an optimal size to being a miner along an efficient frontier. The lower bound governed by BTX transaction fees, the upper bound governed by the degree of the non-linear function. This function could even be dynamically optimized, perhaps by governance vote or stackers, to optimize for a given number of miners.
No doubt, you’re probably already asking what’s preventing large miners from splitting their bids into many smaller bids from different miners.
Well, nothing is preventing them, but there are couple disincentives to doing so:
This would require running a different mining instance which emulates the complications of BTC mining. I believe that currently you can actually run multiple STX mining instances on 1 piece of hardware, but is it possible to require different physical nodes (either on BTC or STX side) to run STX mining?
Due to the non-linearity, the BTC transaction fee portion of miner bids, punishes large miners disproportionately more than small miners! For example:
Let’s say BTC tx fees are 8,000 sats
A miner wants to bid 200k stats, but would be punished for doing so by the non-linear adjustment such that a bid of 200k sats only get an effect chance of winning weight worth 450 (square root of 200k).
Two bids of 100k sats each, would yield a total win chance of 632 ((100,000^.5) **2) in exchange for (100k sat bid + 8k sat tx fee) * 2 = 216k sats
Because the BTC tx fee is a linear cost, it becomes a higher and higher portion of costs the more large miners need to split up their bids. Relatively speaking, this levels the playing level between large miners trying to split their bids into smaller increments, and smaller miners placing their one and only increment to bid with.
TL:DR
I don’t see how having miners only send BTC when they win a block will help reduce centralization - it does not explicitly increase friction for larger miners, nor does it result in any variability in cost bases between miners.
As an alternative, I would propose a function that non-linearly disincentivizes large bids, thus opening the door for a larger number of smaller miners to profitably mine. The specifics of this function could be dynamically optimized, and doing so via stacker governance vote would offer a novel and compelling additional benefit to stacking STX.