On Bitcoin chain reconvergence

13 525
Avatar for btcfork
Written by
This user is who they claim to be.
We have manually verified this user via some other channel.
4 years ago

In his recent article titled "What are the Key Properties of Bitcoin?" on nakamoto.com, Jameson Lopp brought the following argument about convergence of Bitcoin clients, taking a swipe at Bitcoin ABC for their recent (Nov 2018) implementation of rolling checkpoints:

From: https://nakamoto.com/what-are-the-key-properties-of-bitcoin/

While there are several other things I can and would like to critique about his article, in this post I'll focus on this swipe at ABC which I find to be misleading by way of omission of certain facts.

Bear in mind here that Bitcoin ABC is a client for Bitcoin Cash - and that Lopp is using this opportunity to insinuate that Bitcoin Cash is somehow not Bitcoin because of this change.

Salient facts

  1. There is no formal consensus for a "10 block maximum chain reorganization rule" in Bitcoin Cash.

  2. The feature Lopp is talking about is an OPTIONAL feature with a CONFIGURABLE parameter setting that controls the depth at which a block is considered finalized.

  3. OPTIONAL means not all users of the ABC software necessarily have this feature enabled at all - for any depth.

  4. CONFIGURABLE means not all users of the ABC software necessarily have this feature configured to the same value.

  5. Users of the ABC software can reconfigure this feature, disabling it if desired (requires a restart of the software).

  6. Whether or not the majority of economic nodes running Bitcoin ABC actually use this feature is undetermined (no data).

So what we have here is a feature, implemented only in 1 of the Bitcoin Cash clients, that is potentially consensus relevant, but is discretionary and adjustable, with no firm indication (*) that it is actually in use on the network after the "hashwar" of 2018.

A national split means big problems regardless

In the case of a persistent split of the Internet, e.g. splitting off China, the two chains would diverge even in the case of BTC i.e. without this feature.

Lopp seems to think that automatic convergence of Bitcoin after such a split can be taken for granted simply because it's technically possible.

I would strongly disagree.

A large re-organization after an extended time period would pose a huge problem for the BTC network (or the BCH network if nobody was using the mentioned ABC feature) because a big chunk of economic activity could go unrewarded for the "losing side" that loses their blockchain history since the split.

Miners of the losing side would lose all the coinbases produced on the lesser-worked fork chain. All transactions building upon inputs from those coins would also be invalidated. These transactions would effectively be erased from history in the reconverged blockchain. Depending on how long the outage lasted and what steps were taken to limit the loss, this may represent a huge political problem that has no simple technical resolution.

This situation represents a general challenge for the concept of Bitcoin's "immutability", which would be severely put to the test by such an event.

If the outage is days or weeks, how to move on?

Which side gets to win - do we decide by least work lost, and what if it is close?

I think it is an open question, especially since during such an event, the length of the disruption and the resolution would not be clear in advance. Look at how long Kashmir has been purposely cut off from the Internet by the Indian authorities. This shows that such acts of disruption could last months if not more. In another example, Russia has recently conducted a test where they severed themselves from the Internet.

The 10-block default finalization in ABC would not play a huge role in determining any outcome under such circumstances.

When such a break of the Internet is detected, it might be expected - not guaranteed though, but I'll come to why it doesn't matter much - that miners would disable any additional finalization to make future chain convergence smoother.

However, not disabling it during the crisis would not stand technically in the way of reconvergence. Unless it was a short-lived outage (hours not days), the dispute over which side should sacrifice the record of its elapsed economic activity would likely dominate all.

We need to know that reconvergence is technically still a quick and easy process of disabling such a finalization criterion - easy because of Fact (3) above. ABC users could prepare for smoother reconvergence by disabling the feature while the network split event is happening. Even if they only notice the need after the disruption event, they can still disable and force their software to re-evaluate the chains, which only adds a little bit of time and additional work.
Miners (actually: pools) and big businesses using Bitcoin (Cash) in operation are quite familiar with the relevant processes.

Thus, the effort and time spent on technically assuring reconvergence would likely quickly be dwarfed by the economic losses to the side that will lose their coinbases and other transactions building upon them. Remember, in a Bitcoinized world, those are possibly the transactions of an entire economy, not just those of the block producers and a few exchanges and payment processors.

Ultimately, any lengthy persistent chain split on Bitcoin is difficult to sort out

That difficulty is not at all decreased by the absence of a 10-block finalization threshold.

There is NO agreed on protocol for amicably resolving such outages should they occur for a prolonged time.

It is quite likely that on both sides of such a disruptive split, users will take immediate steps to reduce their network usage to a minimum pending a resolution.

Despite the likelihood of such sensible measures being undertaken at first call, it is still possible a long incident duration means that Bitcoin splits into two chains which are not reconciled because either side refuses to take the economic hit.

I view it as much more likely that if Bitcoin is considered important enough, that in the case of such a split efforts would be intensified to reconnect as soon as possible to reduce the economic damage and make an amiable merge an urgent possibility.

Virtually the only case where this would not happen, I think, is in the case of war (†).

In that case I would expect that the warring factions disagree on the state of the ledger and would not easily be persuaded otherwise even if both sides managed to reconnect via the Internet, so it may result in the creation of a national cryptocurrency split off from Bitcoin.

Conclusion

While I think there are valid criticisms of the 10-block automatic finalization feature that Bitcoin ABC included in their software, I think the scenario of a nation splitting off from the Internet is one which is far too complex to safely use as a basis for BTC's supposed superiority in this aspect.

Both BTC and BCH networks would have problems under such circumstance which would likely require extensive human coordination to resolve. The possibility of long-lasting splits, for reasons of both economic interests and unresolved technical obstacles in fairly merging such diverged blockchains, should not be dismissed on such grounds but taken rather more seriously. (‡)


Footnotes

(*) A firm indication would be someone actually running into a limit imposed by the feature while trying to reorganize the network to a certain level. This has not happened to my knowledge.

(†) I'm at a loss to come up with some natural disaster scenario where Internet connectivity to the outside world could not be restored fairly quickly.

(‡) It is my hope that in future articles on nakamoto.com, I would not encounter such partisan arguments against Bitcoin Cash projects unless they were served with much stronger foundations than the instance in the cited article. Call this an appeal for better review ;-)

2
$ 11.38
$ 5.00 from @Read.Cash
$ 2.00 from @molecular
$ 1.00 from @Mr-Zwets
+ 10
Avatar for btcfork
Written by
This user is who they claim to be.
We have manually verified this user via some other channel.
4 years ago

Comments

Imo should this happen, currency must be forked, maintained in parallel y converged via market exchanges.

  • china got isolated for 1 year
  • BCH-China is an unintended fork of BCH
  • now, people can only spend BCH-China at China until network settles down

BCH-China will experience huge inflation but will keep its transaction history.

Eventually, BCH-China users will exchange to BCH and miners will abandon the chain.

$ 0.20
4 years ago

To me this introduction of the 10-block "rule" is admitting something that the Lopps of the world are blind to:

Bitcoin (Cash) Miners need to be more than just some algorithms. They need to be aware of the greater economy and the people mining need to sometimes overrule the artificial intelligence build into the Bitcoin app.

The thing that attracts me to Bitcoin Cash is that it is a convergence of the technical, the social and economic sciences.

The argument from Lopp you wrote about here, that in extreme cases the algorithms decide, have been explored deeply in science fiction. From "Logans Run" to much more modern SF movies and shows. The core thing they conclude is that the rule that Lopp wants us to follow always leads to misery.

$ 0.10
4 years ago

While there are several other things I can and would like to critique about his article

You can say that again. It has a huge and obviously intentional blind spot to the reality of the split as a dispute resolution mechanism. Yet he still had to throw in a swipe at ABC.

$ 0.50
4 years ago

If the outage is days or weeks, how to move on?

It's probably better to accept a split in this case, then try to figure something out (reconsoliate utxo set and then "manually" reconverge. Would mean huge discussion about the "double spends", coinbase rewards and so on)

Jamesons idea that the network would just reconverge to the longest chain when the partitions are reconnected is not a good outcome and I actually think the 10-block rule is a saviour in such a case. Unrolling weeks worth of transaction is going to wreak economic havoc and ensue in never-ending legal battles over re-doing lost transactions... companies and people would go broke by no fault of their own... huge disruption. Very bad for the coin(s).

Of course reconverging back to a single chain is very desirable (in order to keep network effect strong) and maybe it can be done by a social process: as a first step, each branch could simply mine the non-conflicting transactions that happened on the other chain after the split (EDIT: in fact any actor could just fill the mempools with the "missing" tx, right?). If the set of conflicting tx is small enough, it's mostly a matter of reaching a deal amongst miners regarding coinbase reward loss compensation to reunite the chains. Of course everyone (exchanges and miners at the forefront) would have to be in the boat and community support would need to be widespread.

My guess is, in a day or week-long partitioning of the network, we'd simply end up with a split, which is still more desirable than auto-converging to the strongest chain.

oh and btw: I don't think people would hold back on their economic activity during a prolonged partitioning of the network. I think there would be panic selling in all branches.

$ 0.50
4 years ago

I would like an extended / updated version with how avalanche could modify the picture. IMO avalanche block finalization would remove the 10 blocks deep reorganization current limit in ABC nodes. What would happen once the isolated side of the world reconnect after 1 day for example?. It would be a race for Avalanche nodes in order to gain the chain race?

$ 0.00
4 years ago

Unfortunately I have too little information, in terms of how the set of nodes would be chosen that settle Avalanche queries.

Additionally, I presume Avalanche would initially be used to resolve double-spend situations - whether it would be implemented to orphan mined blocks that go against what Avalanche decided, is still unclear to me.

Once Avalanche is involved in the decision to orphan blocks, then I think the question you raise becomes quite important to consider.

Somehow a new quorum of Avalanche nodes must be formed on each side of the split.

Even if this does not happen for some reason, I would assume (or hope?) that the base protocol could carry on working in a slightly degraded mode, basically equivalent to what we have now without Avalanche. But perhaps in future with added double spend notifications which offer some minor protective benefits.

Merchants might need to wait a few seconds to ensure no double spends while Avalanche is degraded and busy finding a new set of deciders.

$ 0.10
User's avatar btcfork
This user is who they claim to be.
We have manually verified this user via some other channel.
4 years ago

Yes, we need to wait more, but IMHO avalanche should be used not only for resolve double-spends but also to finalize blocks. As you say a quorum of Avalanche nodes should be formed on each side of the split, but what avalanche could solve would be which side emerge as the race winner based on which side has a majority of avalanche nodes and the avalanche protocol once the two sides reconnect. It could solve any minority isolation gracefully.

$ 0.00
4 years ago

I don't see how it would solve minority isolation gracefully, esp. given the lack of concrete information in this discussion.

Using avalance to settle blocks would definitely be a departure from PoW that needs serious examination.

Maybe you could write an article on this site to explain your thoughts on the subject in more detail?

$ 0.00
User's avatar btcfork
This user is who they claim to be.
We have manually verified this user via some other channel.
4 years ago

I don't agree with "Using avalance to settle blocks would definitely be a departure from PoW" but as you said "we would need more concrete information in this discussion". Anyway we need to wait for more avalanche specifications/discuss/implementation/experimentation to advance.

$ 0.00
4 years ago

the consensus protocols presented in this [AVA] paper can adopt any Sybil control mechanism, although proof-of-stake is most aligned with their quiescent operation.

https://avalanchelabs.org/QmT1ry38PAmnhparPUmsUNHDEGHQusBLD6T5XJh4mUUn3v.pdf

Every single suggestion I've seen for implementing Avalanche on BCH with the ability to orphan blocks, leans towards some kind of proof of stake.

$ 0.00
User's avatar btcfork
This user is who they claim to be.
We have manually verified this user via some other channel.
4 years ago

"leans towards some kind of proof of stake." I totally disagree. The snowglobe specification (avalanche for BCH) say that it uses staking only for sybil resistant purposes but continue to use all the benefits of PoW. You should also see the Acceptance Depth parameter, which initially = 0 . https://github.com/tyler-smith/snowglobe/blob/master/spec/snowglobe.md

$ 0.00
4 years ago

I don't understand - the spec clearly says it uses "coin block" ( = coin amount x coin age) with some threshold as a staking requirement.

How does that not support that the protocol leans towards a proof of stake for its decisions?

Sure, while AD = 0 I would interpret the spec as saying that Nakamoto Consensus still overrides the Snowglobe decisions.

However, if you assume that the protocol will want to develop its potential,as it claims:

The most obvious increase in usefulness would come from increasing the Acceptance Depth used by nodes

Then it means it will heavily lean towards stake, since there are many more possible AD > 0 than the single AD = 0 which would be abandoned in that case.

$ 0.00
User's avatar btcfork
This user is who they claim to be.
We have manually verified this user via some other channel.
4 years ago

How does that not support that the protocol leans towards a proof of stake for its decisions? Not in this case, the coinblock is only required to join a new node in order to prevent sibyl attacks. The decisions that each avalanche nodes takes is wich tx is selected in case of a double-spend or wich block of the same height in a block race. Every miner continue in the race to find a block to include the tx. PoW continue as the consensus protocol for normal tx (not-double spend)

$ 0.00
4 years ago