stacksgov / grants-program

Welcome to the Stacks Foundation Grant Program. Community members interested in submitting a grant proposal may do so by opening an issue in this repository and filling out the grant application.
140 stars 36 forks source link

Continuous Stacking #85

Closed joberding closed 3 years ago

joberding commented 3 years ago

This proposal intends to enable continuous stacking without requiring a consensus-breaking update to the Stacking contract. Stackers will be able to stack during the “cool-down” period thus avoid missing reward cycles.

Background

What problems do you aim to solve? How does it serve the mission of a user owned internet?

A major problem in the current implementation of stacking is that stackers lose rewards during a “cooling period” cycle in-between stacking commitments (SIPS issue #6). If they for example lock STX tokens for 2 cycles, they will not be able to stack in cycle 3 but have to wait until cycle 4 before they again can participate in stacking (Hiro's Feedback on Stacking):

Hiro's Feedback on Stacking

The discontinuous Stacking issue is a universal problem/impediment to overall growth of the Stacks ecosystem (@cuevasm 1, 2). Requiring a longer stacking commitment to avoid losing rewards is an additional burden or barrier to entry that may significantly impact the stackers decision about where to place their funds; This limitation imposed on users might encourage them to invest in a different ecosystem (Hiro's Feedback on Stacking #5).

Stacking for short intervals is more helpful to the network than Stacking once for a long interval. Yet the cool-down cycle unfairly penalizes users for Stacking in short intervals, even though they're helping the network more (jcnelson).

Project Overview

What solution are you providing? Who will it serve?

Our solution enables continuous stacking by stacking from a credit line of Stacks in place of stacks restricted from stacking due to cool-down requirements.

For example, say a stacker locked their STX tokens for 2 cycles. Their stacks can not be stacked in cycle 3 due to the cool-down requirement. However, STX tokens are fungible, allowing one token to be interchanged for another. In place of the unstackable tokens, we stack STX tokens from the credit line, passing on the rewards to the holder of the unstackable tokens.

The solution will benefit stackers and improve their Stacking experience, indirectly benefitting the larger ecosystem by making stacking more attractive. In the case that continuous stacking is implemented natively in Stacks 2.1 (around August 2021) the ecosystem will have gained experiences and learned valuable lessons that can benefit the design decisions for the technical upgrade.

Related Proposals

A proposal related to enabling continuous stacking is to re-conceptualize Stacking as a multi-item open auction, providing a “STX future” token that can be traded on the secondary market, thereby allowing stackers to practically sell their STX while they are locked up. However, introducing such an auction may have undesirable properties, potentially corrupting mining strategies (comment1, comment2.

Our suggested approach also relates to “a service that Stacks a whole bunch of STX, and rents out the locked STX’s reward slots at a fixed rate to Stackers via a smart contract”, as proposed by @jcnelson in Hiro's Feedback on Stacking.

Scope

What are the components or technical specs of the project? What will the final deliverable look like? How will you measure success?

The main deliverable is an MVP level Clarity contract that implements a way to stack during the cool-down period, together with a minimalistic interface for stackers to use the service, and supported by an agreement with the Stacks Foundation to have access to a line of credit of unstacked STX tokens proportional to the size of the pool.

Other deliverables include a report analyzing the potential legal and governance considerations relevant to, among other issues, STX credit delegation and continuous stacking.

Success is stackers using the service for continuous stacking, bypassing the current cool down periods.

Depending on the outcome of the first milestone, we may apply for subsequent grants to further build out the user interface for stackers, applying the use of STX credits to solve other problems in stacking, such as:

Budget and Milestones

What grant amount are you seeking? How long will the project take in hours? If more than 20, please break down the project into milestones, with a clear output (e.g., low-fi mockup, MVP with two features) and include the estimated work hours for each milestone.

Grant request: $5000

M1: Scope of work, deliverables, and grant amount of total.

Team

Who is building this? What relevant experience do you bring to this project? Are there skills sets you are missing that you are seeking from the community? Please share links to previous work.

Juliet Oberding has been active in the Stacks ecosystem since 2019 as an app miner, community evangelist, member of the Governance Working Group, Project Lead of the Stacks Code of Conduct and a community representative to the Stacks Foundation Board. Juliet’s education and experience as a lawyer and law professor complements her work as a founder and in the area of governance.

Terje Norderhaug joined the San Francisco ecosystem meetup in 2017 and has contributed to app Mining with multiple applications while also serving as a community evangelist working with developers building apps within the Stacks ecosystem. He is the creator of Clarity.tools, an interactive development environment for Clarity contracts.

Risks

What dependencies or obstacles do you anticipate? What contingency plans do you have in place?

The solution depends on access to a credit line of unstacked STX tokens from a major stacksholder such as the Stacks Foundation.

A key risks is whether organizations like the Stacks Foundation are legally allowed to provide STX credit. This issue as well as other legal/governance risks will be researched concurrent to MVP development.

If our approach to continuous stacking turns out to be infeasible, we will explore alternative solutions, eventually pivot to deliver a report on our attempt with a discussion of reasons for the lack of feasibility.

Community and Supporting Materials

Do you have previous projects, code commits, or experiences that are relevant to this application? What community feedback or input have you received? How do you plan to share your plan to the community over time and as the final deliverable?

314159265359879 commented 3 years ago

I think it is admirable you put this together. I am not sure if the problem you are trying to solve is worth a 5000$ grant if it is only useful until ~September 2021 (at BTC block 700,000) when the stacks 2.1 upgrade addresses the problem: enabling continuous stacking. I am confident it will be addressed at that time because of the issue #6 mentioned (https://github.com/stacksgov/sips/issues/6) and the acknowledgement here https://github.com/stacksgov/sips/discussions/16.

Perhaps this project will still have value for other purposes after the stacks 2.1. In that case please supplement your grant request with other purposes/examples of how your solution could help the stacks community.

The "re-conceptualize Stacking as a multi-item open auction," issue you mention is not to resolve the continuous stacking issue. It is to address the currently harmful way the minimum stacking amount is increased as explained here https://github.com/blockstack/stacks-blockchain/issues/1846 .

cuevasm commented 3 years ago

Great work Juliet!

+1 to @314159265359879's comments around how this meshes with 2.1 - maybe @jcnelson could share his insight here since he's been very closely tracking the continuous Stacking related improvements. I'd hate for anyone to go through a build like this and have it nearly immediately rendered obsolete by the planned upgrade. In this case, I just don't have a good enough handle on the tech to say whether that would be true here or not.

Watching closely! 👁️

joberding commented 3 years ago

Thanks @cuevasm & @314159265359879.

I'd hate for anyone to go through a build like this and have it nearly immediately rendered obsolete by the planned upgrade.

We don't mind creating a stopgap solution to the problem of stackers not getting a reward during the cool-down period, even if it is superseded by support for continuous stacking in the planned upgrade in the fall. Stackers are unhappy about missing out on payments, resulting in grievances that may cause substantial costs to the ecosystem. It would be highly beneficial to resolve this problem as soon as possible given the impact on stackers, pools and the community.

Also, as addressed in the proposal, in the case that continuous stacking is implemented natively in Stacks 2.1 the ecosystem will have gained experiences and learned valuable lessons that can benefit the design decisions for the technical upgrade. I am confident we can find a way to eventually pivot the project to make it viable for the longer run, but also happy if it runs its course while resolving a pressing issue.

cuevasm commented 3 years ago

Cool! What are the costs you're referring to? Primarily brand damage or have you seen hard costs?

On Tue, Apr 13, 2021, 4:55 PM JMOberding @.***> wrote:

Thanks @cuevasm https://github.com/cuevasm & @314159265359879 https://github.com/314159265359879.

I'd hate for anyone to go through a build like this and have it nearly immediately rendered obsolete by the planned upgrade.

We don't mind creating a stopgap solution to the problem of stackers not getting a reward during the cool-down period, even if it is superseded by support for continuous stacking in the planned upgrade in the fall. Stackers are unhappy about missing out on payments, resulting in grievances that may cause substantial costs to the ecosystem. It would be highly beneficial to resolve this problem as soon as possible given the impact on stackers, pools and the community.

Also, as addressed in the proposal, in the case that continuous stacking is implemented natively in Stacks 2.1 the ecosystem will have gained experiences and learned valuable lessons that can benefit the design decisions for the technical upgrade. I am confident we can find a way to eventually pivot the project to make it viable for the longer run, but also happy if it runs its course while resolving a pressing issue.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/stacksgov/Stacks-Grants/issues/85#issuecomment-819103838, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABOY35HT7MFHMVOZFNTL23TTITDXVANCNFSM423AEKZQ .

joberding commented 3 years ago

What are the costs you're referring to? Primarily brand damage or have you seen hard costs?

@cuevasm I have been diving into community challenges for a while - attending town halls, meeting with community leaders and reviewing social posts. In my social review, I have noted repeated mentions about the cooling off period but there have also been discussions about empty slot problems and people who lock in for a sustained period without sufficient funding resulting in no rewards, among other issues that we referred to in our proposal. These types of complaints fall under potential brand damage. I am interested in hearing your thoughts on that.

Not getting a reward for the "cooling period" is a pain point for stackers. Using the example from the proposal, stackers that have locked 100K STX tokens for two cycles may face a notable loss of a ~$1000 reward for the cooling period in the third cycle. No doubt this creates a problematic user experience. Without our solution, many stackers will experience cooling periods in upcoming weeks and months.

Fixing related issues with stackers not getting rewards is a potential next step on the project roadmap, building on the solution of using unstacked stacks in place of locked or unstackable stacks that are not getting a reward. Per Stacking.club, in the current round, there are 70 "stackers below minimum" that currently don't get any rewards due to having stacked less than the 100K STX now required for a slot. Most of them may have expected to receive a reward of up to $1000 for the period, and many of them likely won't receive any rewards in upcoming rounds, compounding the loss. We can expect them to be unhappy with the situation.

cuevasm commented 3 years ago

I realize it's a pain point, I do work on this everyday ;). I was just asking for more clarity on what you mean when you say costs vs. assuming I know what you meant.

RaffiSapire commented 3 years ago

Hi @joberding looks like you decided to close this on your own? Our feedback, FWIW: Would be interesting to focus on financial derivatives or financial futures

Jude already started on this: https://github.com/jcnelson/stx-future

rather than this being a stop-gap solution that promotes continuous stacking which will be solved for in September, we suggest you aim for STX futures, which could be flushed out in many ways.

joberding commented 3 years ago

@RaffiSapire

Thanks for the feedback! We are very interested in STX futures. @njordhov and I will discuss and submit a new proposal.

joberding commented 3 years ago

FYI @jcnelson - Today's news from SEC - primarily relevant to Mutual Fund - but may have impact to the above https://www.sec.gov/news/public-statement/staff-statement-investing-bitcoin-futures-market