Miner Centralization

To clarify what this would look like… The btc miner without stx would be able to request that a counterparty on the stacks chain would put up collateral on behalf of it. There would be no rush to put in the “request to collateralize” transaction, so it wouldn’t matter if a particular miner didn’t let the transaction through. Once the btc miner has a btc-script-encoded collateralization agreement with the counterparty collateralizing the stx on its behalf, the btc miner would be able to begin mining, knowing that if it “misbehaved” / didn’t send a block when called upon, its counterparty would get its stx slashed and thus it would have its btc slashed.

This is more complex than the other proposal and I’m not sure it’s necessary (not my ideal design) but this would be a way to design it to address the “but you shouldn’t need to buy stx to mine” argument. I still don’t buy that argument bc every proof of stake chain works perfectly fine with this assumption. To me, it’s an irrelevant and unimportant concern.

To reiterate, I think people saying “you shouldn’t need to hold some stx to mine btc” are prioritizing a non-issue and not properly prioritizing the miner centralization issue.

For PoW, miners sacrifice electricity to get a proportional chance to win to mine a block. For PoX, miners sacrifice BTC and for PoS, miners sacrifice cost of opportunity.

I think the proposed model is like PoS plus the winner sacrifice something more.

If you believe in PoS, the plus won’t be necessary. Actually, PoW and PoX won’t be necessary too.

For the proposed model, if a collateral is too low i.e. lock for just 10 mins to make sure the winner really mine a new block, it would be negligible. This would make only winners sacrifice something and it’s totally different from other models.

If a collateral is high enough, the different is the winners sacrifice something more.

I think PoX and PoS try to be as close as possible to PoW as PoW is proved. Sadly, many people still don’t believe in them.

The proposed model is interesting and it seems to be better. But as it’s more different, it’ll take more time and effort to prove itself. Fighting!

1 Like

what does this even mean, to “sacrifice” ? Let’s make it clear/explicit…
you have to spend a rare resource otherwise it’s a less secure model/algo.
PoW spends electricity. PoX spends BTC.
PoS does not spend anything.

1 Like

Well, you asking for removing one of the key characteristics from STX. In my opinion, this is not a matter of priorization, but a matter of changing the fundamentals of a system. For large cryptocurrency, this usually results in a hard fork.

If we just apply the same argument to BTC, it’s the question between moving to PoS (requiring people to hold BTC in order to mine BTC) or staying with PoW. There are people who ask for BTC moving to PoS, but I would that it’s still a reasonable expectation of many BTC users that the essence of the consensus mechanisms remains.

If we talk about priorities, I think there should be more priority on removing probable consensus bugs resulting in miner nodes burning BTC and assuming they won blocks while there is no payout for weeks. After PoX mining works reliably, it makes sense to optimize incentives.

Would this be a protocol feature with protection for the miner against the counterparty?

Requesting something from a counterparty without protocol-level protection would be essentially what we had before blockchains were invented. No doubt pre-blockchain economy also works, but it was never capable of providing the same level of protection against intermediaries as carefully crafted blockchain protocols do.

Remedies that come to mind would be to reduce the fixed costs. Researching thin clients to the STX network up to mining capability might help. As would supporting miners behind NAT, allowing interested individuals to mine on existing dialup or mobile connections, rather than renting a VPS first.

The profit margin is fuzzy due to the volatility of both BTC and STX, so optimizing it is limited anyway. Therefore, the key to getting more participation seems to lie in reducing the hurdle for entering the game, so individuals can spontaneously decide to PoX.

This is an excellent point, and the design decision to have a fixed maximum number of stackers dictated by the protocol always seemed peculiar to me. In my opinion, fairness could be increased by allowing stacking to scale down, even if it’s only possible probabilistically.

10% discount on what? On the mining costs?
The discount would be 10% of the ~stacking rewards. In cycle #34, total stacking rewards were 30 BTC. The discounting miner would receive 3 BTC. However, the mining costs are totally different.

At a price of 2000 sats/stx, the total block rewards for the cycle would be 40 BTC.
Miners committing 400k sats + tx fees, spent around 9 BTCs and received ~22% of the block rewards. The costs of mining was therefore 0.2 BTC. What percentage of what is the 3 BTC?

No Profit in Mining
Is it even expected that miners will be profitable? Seems not.

A miner doesn’t have any special knowledge or hardware. Since there is no barrier to entry, there is “perfect competition”. Perfect competition eliminates profits. Why Are There No Profits in a Perfectly Competitive Market?

The collective miner outlay will increase until they can get STX for BTC cheaper on an exchange, at which point there is no profit.

An Example Profitable Algorithm
If we want there to be an expected > 1 return, we would have to code that in.

One such example scheme would be:

  1. (Don’t use PoX here)
  2. Aggregate all the miners BTC bids for round R, and put them in a prize fund for R
  3. Pick a winner for R weighted according to which fraction they bid
  4. Give the winning miner in R the entire prize fund for R
  5. Throw in some additional STX to increase the prize fund for R (either transaction fees or inflation)

This way, the expected return for mining will always be > 1, because they expect to get their BTC back, and they expect to get some extra STX.

New proposal partly inspired by @OwensTrevor.

Just throwing this out there for discussion, and we can pressure test and refine it.

For this proposal, as a miner, your VRF weighting would be equal to 100% of your POX spend + 90% of your Bitcoin fee.

What does this do?

Let’s say the current situation is 5 miners committing 400,000 sats each.

And let’s say the typical miner fee is 20,000 sats.

That means the large cap miners have a fixed cost (miner fees) that is currently 5% of their bid size.

They currently get 400,000 “points” at a cost of 420,000 sats. 95.2% point efficiency. 4.8% point loss.

A 100,000 sats miner meanwhile has a fixed cost that is 20% of their bid size, making them much less profitable.

So the miner would get 100,000 “points” at a cost of 120,000 sats. 83.3% point efficiency. 16.7% point loss.

These 100,000 sat mid caps are operating at a high loss vs large caps and so they drop out.

Now let’s change the weight function to what we mentioned above.

The 400,000 sats miner gets 400,000 points for the transfer and 18,000 points for the fee. That comes to 418,000 points for a spend of 420,000. 99.5% point efficiency. 0.5% point loss.

Meanwhile the 100,000 miner gets 100,000 points for the transfer and 18,000 points for the fee. That’s 118,000 points for a spend of 120,000. 98.3% point efficiency. 1.7% point loss.

The large cap miner and the mid cap miner can operate at very close efficiencies.

Why wouldn’t we include the full fee in the point calculation?

Because that could lead to an externality where certain miners put all their bitcoin spend in fees rather than pox bc they’re equivalent in terms of points.

By counting only 90% of the bitcoin fees towards the point score for the vrf, this proposal avoids that outcome and has a secure and stable equilibrium where mid cap miners are nearly as profitable as large cap miners, and small cap miners can do just the fee and operate at only -10% the large caps.

4 Likes

This one is super interesting. Question: while it does have a stable state equilibrium, is it possible that an artificial change in the equilibrium could positively affect mining throughput?

2 Likes

We discussed making two modifications to the above proposal:

  1. Have 90% of the median fee of the last 144 blocks count towards the VRF weighting
  2. Require that POX transactions be some multiple of the fee, at a minimum

I think (2) above i.e., requiring a high multiple like 10x on the fee as PoX bid is very important here. Otherwise, Bitcoin miners can effectively mine for free (they can pretend to be many addresses and pay fees to themselves without any PoX/stacking bid in it). Also, the number you pick here is the hit we’ll take on the Bitcoin yield. In my view, the hit should not be more than 10% – maybe even better if the hit is closer to 5% instead of 10%.

2 Likes

@muneeb yes thank you for pointing that out, I think we’re making the proposals better as we pressure test them.

2 Likes

Yep, great to iterate!

I think this proposal can be effective for mid-sized miners and making them more competitive.

We can separately discuss if targeting something at small-cap miners also makes sense in upcoming SIP or not. The dust mining SIP is really about small-cap miners but if addressing mid-sized ones helps increase decentralization and no. of miners then maybe there is a less need for it.

2 Likes

I’m not sure the dust-mining SIP and this proposal are necessarily incompatible. If the dust-mining SIP works roughly as follows, then I think they could both be implemented:

  1. 90% of the time, we follow @shea256’s proposal for selecting the winner. That is, weight all block-commits (including dust ones) by PoX payout + 90% of the median BTC tx fee over the last 144 blocks, and require that PoX payouts are 10x that of the block-commit tx fee.

  2. 10% of the time, consider only dust block-commits and pick one at random.

What do you think?

Can we modify this to be a floating multiple that is equal to the 10th percentile of the median multiple of the last cycle?

The reason is, I’m concerned about the following scenario. Let’s say bitcoin fees skyrocket and the stacks price doesn’t go up. You could be in a situation where the 10x bid is prohibitively expensive and drives all miners out and then you have no forward progress.

My thought is you calculate a multiplier by taking the 10th percentile of all the multipliers of all the bids in the last cycle (or the last 144 blocks) and then you say that your pox bid has to be that multiple or greater of the bitcoin tx fee you spend. This is just one way to do it. I think this works. Maybe someone can come up with another way or double check my analysis.

You’re right that they both can be implemented, one targeted at mid-cap miners and one targeted at small-cap miners. However, one concern with doing both dust mining and this is that you take a double hit on Bitcoin rewards.

@ryan good point about thinking about what happens if BTC fees go up a lot.

In general, I think there is some complexity introduced here in general where the mining UX should warn people if they’re forming a bid that will be ignored by the protocol.

Another thing to think about is that with the percentile approach, your effective hit on the BTC rewards is potentially going up a lot when BTC fees are going up. In the 10x limit, yes some miners are forced out but the hit on the BTC rewards stays stable (the potential halt condition here is scary and we should think more about it). I understand that there is no free lunch and the hit needs to come from somewhere but something to think more about.

this might result in a situation where we can no longer predict what the hit on the BTC rewards will be?

Yes this is all true.

One thing I will re-highlight though is that the largest miners are still the most profitable, so we could always adjust the “percentage of mining fees counting towards the VRF” parameter down.

Maybe only 80% of the mining fee counts towards the VRF, for example.

There are a few parameters we can play with.

Let’s keep exploring and then we can model this out.

I can look into doing some modeling.

Anyone who wants to help with that is welcome to do so.

Maybe, will have to think about this. It may end up being the case that the 10x multiple is more sound. I’m not sure. I would be more worried about halting than bitcoin mining fees eating up stacking rewards but both need to be mitigated.