A quick proposal for Stacker pooling

Since the release of SIP-007 (the proposal for the Stacking consensus algorithm), I’ve seen a bunch of discussions around STX holders who want to participate in the Stacking algorithm as Stackers but are below the 0.02% of supply i.e., 94K STX limit.

Here is a quick/dirty proposal for Stacker pooling. My hope is to quickly get it out so the community can build on top. The ideas here will likely need to be improved significantly before being fully useful.

In the new consensus algorithm proposal Stackers send signed messages to signal their participation and associate Bitcoin addresses with their respective Stacks holdings. It’s entirely possible to collaborate with other holders on a multisig Bitcoin address and give that address as the one that should receive the rewards. Example:

Stacks Address A: 50K STX
Stacks Address B: 10K STX
Stacks Address C: 40K STX

Let’s say that owner of Stacks Address A volunteers to become the Stacker pool operator.

The three independent owners decide on a 3/3 multisig Bitcoin address and set it up. Let’s call it “Bitcoin Address 1”.

For the Stacking algorithm we need to sign appropriate messages that prove 100K STX on the three addresses and assign Bitcoin Address 1 as the receive address for the payouts. (Note here that only 94K out of 100K of the STX will qualify in this example.)

Owner of Stacks Address A would setup a Stacks 2.0 node and participate in the consensus algorithm on behalf of herself and owners of addresses B and C. Together they meet the minimum threshold.

A round of Stacking with PoX mining runs (say roughly one month) and Bitcoin Address 1 accumulates some BTC, now the three independent owners produce transactions to send BTC to their respective owner addresses. They’ll need 3/3 signatures and if one person does not cooperate anymore it’d mean the BTC for that round cannot be moved until they resolve their conflict. Important to note that the original STX holdings are not at risk. The Stacks were never moved from the original addresses.

You are not trusting the Stacker pool operator with your STX, you’re risking one round (approx one month) worth of rewards and the pool operator will lose her earning as well if she stops to cooperate.

Over time people would build trust relationships. Also, software can help automate some of these steps and larger Stacker pools can emerge.

I can imagine doing this with simple JavaScript libraries for signing transactions. Thoughts?

P.S: Everything I say requires disclaimers these days. So please read the disclaimers at the end of SIP-007 and please remember that I’m just discussing ideas out in the open, these are half baked, no such Stacker pools currently exist and if they’d ever exist people should run/join them at their own risk.

3 Likes

Thanks @muneeb. How does the protocol handle stacks users that add their wallet address to multiple pools? What prevents me from stealing other’s wallet addresses from explorer and setting up my own “pool” with only myself?

You can’t steal other (random) wallet addresses because you cannot produce signatures from those addresses.

If you’re asking that can you submit your own address (for which you do have the private key) to multiple pools then the answer is that the protocol only accepts one BTC entry per valid address signature. So you can update the BTC address associated with your STX address but there can only be one BTC address per STX address.

Thanks i missed the wallet signing part. But that does not prevent me from signing for multiple pools. How does the protocol handle this? Accepts the first associated bitcoin address submitted? The last?

@dant Looks like the last, because the BTC address will be overwritten for your STX address

Probably the last. The BTC addresses would be “locked in” once the anchor block for the reward period gets mined, but you’d be able to set and re-set it for STX up until then.

1 Like