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?
We discussed making two modifications to the above proposal:
- Have 90% of the median fee of the last 144 blocks count towards the VRF weighting
- 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%.
@muneeb yes thank you for pointing that out, I think we’re making the proposals better as we pressure test them.
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.
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:
-
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.
-
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.
I think there can be a solution where stackers can vote to lower the 10x limit if we’re approaching a situation where this is impacting miners (because of very high BTC fees).
Also, another reason I was originally thinking about the dust mining proposal is that deploying a change to 100% of miners is always going to be more risky than creating a small 10% bike lane and testing things there. That approach limits the downsides i.e., we know hit on BTC yield cannot be more than 10%, we know that the rest of the miners will keep making forward progress (no halting scenarios introduced etc).
In general, preserving the Bitcoin yield as much as possible should be a top priority. There are a lot of community members who primarily got into Stacks because of the Bitcoin yield and I think that proposals that can have a potentially large impact on Bitcoin yield would have a much harder time getting enough support to get implemented.
I view the 10x of fees proposal as similar to dust mining, as far as impact on Bitcoin yield is concerned. So I can be supportive of either of these.
OK I think then the place where we can have the most agreement is to have transaction fees be fixed at 10% of the STX transfer amount (AKA STX transfers must be exactly 10x the BTC fees).
I say fixed because this reflects both a minimum and a maximum. The minimum is important in order to level the playing field for miners. The maximum is important in order to prevent miners from converting all of their STX transfers into fees.
I think the fixed fraction that we’ve chosen strikes the right balance but we should do simulations and other analysis to determine what this figure should be.
I aim to produce a SIP on this and I’m happy to continue discussing here. In the meantime, I would love additional feedback and signaled support or critiques to make the proposal better.
I can get behind this fixed 10% fee i.e., 90% is the BTC bid and 10% is the fee (regardless of how much you bid). I do think we should try to keep this number a variable that can be changed without a hardfork in the future (it’d just give more flexibility to adjust things down the road as we get more real-world data).
I think there are two next steps here:
(a) @MattySTX agreed to work on some simulations.
(b) You should chat with @xan and Rena (Trust Machines) who have made progress on a different SIP (for dust mining) and maybe some of that work can be used to write this SIP instead?
Not trying to steal @MattySTX’s thunder, but y’all should read his excellent report on miner profitability: State of STX Mining - Jul 2022
Hi all, following up on my recent mining report, and this entire thread discussion, I have done some additional analysis on 3 suggested avenues for improving mining decentralization.
The TL;DR is that there are no quick fixes for everything. In the short term, Dust Mining can increase the total number of miners and (hopefully) over time some dust miners will convert into “full” miners as they get more comfortable with mining. In the mid term, counting a small portion of gas fees towards VRF (10%-30%), however this would likely have to be accompanied with other changes to STX mining to not introduce additional risks. In the long term, the only fix I currently see is non-custodial mining pools.
Here is a summary with links to full analysis reports for those interested.
-
Dust Mining - @muneeb
Mechanism of Action: Reduce the capital requirements to mine
Expected Additional Miners: ~30
Advantages: Increases the number of miners, promotes more active mining community, and provides an “on-ramp” for people to get comfortable with mining first
Disadvantages: Does not contribute to vrf commits (so no increase to miners required for 51% attack), and slightly reduces stacking rewards and/or increases STX inflation in short term
Full report: Dust Mining Analysis - Google Docs -
Minimum X% Gas Fees - @shea256
Mechanism of Action: Level the profit margin between large and small miners
Expected Additional Miners: <1
Advantages: For existing miners, makes smaller miners better able to compete with larger miners
Disadvantages: Does nothing to overcome the large capital requirements to start mining in the first place, and as such is expected to have very little actual impact to attracting new miners
Minimum Gas Fee SIP Analysis - Google Docs -
Count X% of Gas Fees Towards VRF
Mechanism of Action: Reduce the capital requirements to mine
Expected Additional Miners: ??
Advantages: Reduces the initial capital required to mine in a similar way to dust mining
Disadvantages: If too much % gas goes to VRF, and/or a BTC miner gets too much % of BTC hash power, BTC miners can mine STX for much more cheaply than other miners (since they refunded what they spend on gas in blocks they win), reducing stacking yields and potentially reducing total number of miners
Count Gas Fees to VRF SIP Analysis - Google Docs
interesting information
Love these reports, I’m down to mine and want to mine at the minimum buy in, one thing I’m trying to figure out before I pull the trigger on it is what the average BTC per STX stacked has been over time.
And how often is mining STX the cheapest way to acquire STX vs just buying it on LNswap.
If mining is the cheapest way to acquire STX and the average BTC per STX is holding up then it seems like a great way to SCA (sats cost average) into a STX position and to build up sats flow from stacking.
In my reports I’m measuring miner profitability based on market price of BTC spent and STX earned at the time the mining takes place. So when the mining profit margin is positive, it’s positive because mining is a cheaper way to acquire STX than buying on the open market. A caveat I should point out is I am using daily price data and interpolating for intraday prices due to the lack of readily available intraday historical data - so there’s some noise.
But overall it remains the case that when mining has a positive profit margin, that is because you can acquire STX cheaper than market price. Whether miners hodl to long term acquire or arbitrage that opportunity is up to them of course.
One thing I don’t understand though @brainharrington is this question:
The average BTC price? The average amount of BTC spent on mining? What are you trying to understand?
The number of STX that are stacked has absolutely zero direct impact on mining costs or profitability. It would only impact stacking returns - which are of course a benefit of holding STX but are distinct from profits earned from mining.
For example a STX miner could mine STX profitability and sell 100% of the STX they mine to lock in a profit (historically in the 12% range) and never stack a single STX.
Average sats received per STX stacked on the stacker side, For example I’ve gotten 8 sats per stx per cycle as my average with my small sample size. Is there a way to calculate this for the whole network. I want to know the sats flow of stacking so that I can know how much I should spend on mining/acquiring STX
Got it, so less to do with mining itself, and more to do with accumulating STX to stack it, and viewing mining as the preferred method of accumulation if/when mining is at a lower price than buying market STX - which is currently the case and historically has in aggregate been the case.
Check out stacking club which has some stats. Cycle 43 just ended a couple hours ago. In cycle 43 there were:
481.98M STX stacked
23.468 BTC rewards
yielding about 4.9 sats per STX stacked
Hopefully this is good enough info for now. I will be doing a stacking report next in the same style as the mining reports, likely in November and will keep you posted @brainharrington