-
Notifications
You must be signed in to change notification settings - Fork 677
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Stacks-2.1] remove PoX sunset and cap unburnt PoX output to be a function of the last prepare phase #2613
Comments
Been thinking about this more -- in particular, the high coordination cost of getting 75% of the STX to do anything at all, and the fact that PoX will start to decay in less than 2 years. I worry that 2 years isn't enough time for the system to really hit its stride, especially since the Stacks Accelerator applicants probably won't start to hit product-market fit right away. What do we think about this instead for 2.1?
The thinking here is that we really only need a vigilant minority of STX holders to watch out for bad miner behavior. I'm not too worried about griefing here, because these STX holders will always have the choice between Stacking their STX and getting a payout, or disabling PoX. Even if all STX are locked in PoX, 15% of all liquid STX still represents 600 reward slots, so this is potentially a lot of BTC that the 15% minority is turning down unless it was for a good reason (note that this is about the size of a "big" Stacking pool, or two "medium" Stacking pools). So, the only way we'd even get to 15% of all STX voting to disable PoX is if something well and truly terrible is going on with PoX -- e.g. Stackers aren't getting paid, miners are rampantly discount-mining, and so on. What do you think about this approach instead of a sunset? |
@jcnelson Would you explain a bit more why this is valuable and how it would work?
I like this approach, I think I am missing some of your assumptions because 15% of the total (unlocked) supply (~1100 M stx) is about 160 M stx now and about 200 M stx at the end of the year while the biggest pools on stacking.club show 36 M stx. |
You can vote to disable PoX for the next reward cycle using your STX. But right now, this happens through a Stacks transaction. Because the only reason to vote to disable PoX when you could be Stacking is to prevent miners from discount-mining, the miners won't mine your disable-PoX transactions. By instead recording them to the Bitcoin chain (as we currently do for
It's 25% right now. I welcome pushback on this -- the number needs to be high enough that someone can't just grief the system, but low enough that the system has a chance of overcoming rampant discount-mining. |
Prioritization on this: Easiest and fastest, all-else-fails, we-run-out-of-time-before-2.1:
Less easy, but covers the essentials
Nice-to-haves:
|
I think the decision we landed on was "extend PoX forever" and "make it so stacked STX can vote to disable it." |
Another update on this: "extend PoX forever" is definitely on the table, but trying to use |
Okay, we've landed on a solution:
The sortition weight windowing already does a good-enough job at making discount-mining very difficult and expensive -- so much so that we feel confident that we don't need to address it in 2.1 (but might in a future network upgrade). We'll revisit this then, so I'm going to re-tag this as |
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Create an extension contract that will allow network stakeholders to vote to extend the PoX sunset window by a fixed amount of blocks. This allows PoX to keep going under "good behavior" from the system, beyond what the 2.0 implementation mandates. I propose requiring 75% yes-votes from all liquid STX, to complement the 25% vote required to disable PoX for a reward cycle. If 75% of the liquid STX vote to extend PoX within a year, the sunset gets bumped by a protocol-defined constant (e.g. 5 years). Protocol constants subject to negotiation.
The text was updated successfully, but these errors were encountered: