Stacking: a New Consensus Algorithm for Blockchains

Does it make sense to limit any one whale miner or pool to be able to commit to PoB/PoX at most 49% of the total committed for a given block? Or it’s irrelevant because they can have more than one miner anyway? While the number of Stacks nodes and miners are low in these early days does the Stacks chain have any more or less risk, relative to other alt’s, of being sort-of DDOS’ed/forked via malicious miners with either financial or political motivations? I imagine you guys did much work on this type of subject, just curious about the general topic of chain resistance to attack compared to other designs - especially the Stacks 2.0 implementation.

2 Likes

It’s not possible in general to do this, since a whale can just run many miners.

In general, chains with lower mining power will be easier to attack. However, the Stacks chain has a couple of countermeasures (described in SIP 001):

  • The canonical fork is the longest fork for which you have data, so it’s not enough to just spend BTC. The attacker has to out-spend everyone else for at least as many sortitions as required to carry out a reorg at the desired depth.
  • All fork histories are written to the underlying burn chain (Bitcoin), so you can always see the attack spinning up before it hits.

Both of these properties make it possible for users and exchanges alike to predict how deep a transaction needs to be confirmed before being considered stable. As a general rule of thumb, a transaction that is worth $X would need to be confirmed such that the expected cost to reverse it by spending BTC exceeds $X. Note that in PoX if there’s contention as to which fork is the canonical fork, all BTC is burned, which means that there’s no way for the attacker to avoid out-spending everyone for a long time.

3 Likes

will BTC committing by PoX miners be just using on-chain BTC or also an option to use Bitcoin Lightning channel “promises” (transfers)? I’m wondering about the implications, if it’s possible/desireable, regarding Lightning’s improved speed, Tx fees, and reducing the PoX miner related Tx load on the bitcoin chain.
I suppose to do this a Stacks Node would have to be able to receive Lighting payments from the miners? It would be too problematic/difficult to implement?

2 Likes

We looked at lighting channels (between BTC and STX chains) as a potential solution. The summary was that it’ll require some modifications to current lighting protocol/implementation. We decided to side-step that problem by having a minimum threshold of Stacks holding (to reduce transactions on the Bitcoin chain). Pooling or delegating helps people below the threshold participate on the stacking side while the transaction bandwidth requirements on the Bitcoin chain remain realistic.

With that said, exploring such cross-chain lighting channels is certainly an important area of future work!

2 Likes

Maybe we’re talking about more than one thing. A min STX threshold reduces impact on the bitcoin chain, ok. But another thought…
A bitcoin miner can increase or decrease hash-power instantly since mining rigs can be turned on/off and electricity is always instantly available. A PoX miner has a potential delay of 10-60 minutes or more if they don’t already have sufficient BTC in their mining-wallet. A thought was wondering if a PoX miner had a Lightning wallet they could receive BTC instantly and could turn mining on/off instantly by committing the lightning delivered BTC.
And if a Stacking node (holder) also had a Lightning wallet they could receive the BTC rewards from the PoX miner instantly off-chain.
This would not only reduce impact on the bitcoin chain but perhaps remove extra costs for the PoX miner due to near zero BTC Tx fees.
How might PoX mining be impacted when BTC Tx fees shoot up?

Btw, perhaps you/team already knows but Blocksteam’s LN implementation has plugins which might allow needed extra functionality? >> See “Extensibility and Customizability through Plugins” at https://blockstream.com/2019/03/01/en-clightning-07-now-with-more-plugins/

3 Likes

Thank you Jude for your detailed answer! Great article by Muneeb on the website too!

Anyway, please excuse my ignorance in advance, but let’s say that in the future a new block-chain would become even more secured and prevalent than the Bitcoin: I wanted to ask you what would it take to switch from Bitcoin to that new block-chain? Who needs to validate this change? How does governance operate? Thank you in advance for your time!

I admire the flexibility and pragmatism approach of Blockstack. Blockstack has an extraordinary commitment to doing the right thing:

Kudos!

1 Like

I’d recommend you search the online docs and/or online and here in the forum about the “blockstack virtualchain” designed to make it easier to switch the base chain if needed. Governance outside of Blockstack PBC is a topic of open discussion yet to be defined. See the governance channel on Discord and the topic here on the forum. Short video What is a Virtual Chain?

2 Likes

Thank you @fluidvoice for the generosity and extensiveness of your answer. Very valuable indeed! I wish you well, Rapha

1 Like