2

It is conceivable (though generally buried with cognitive dissonance, I imagine) that a hard fork might not get resolved. This almost happened once before, and the miners picked the fork that solved the problem (a fork that would otherwise have lost, mind you). This was human intervention at its finest.

But what if it wasn't fixed? How long do you think it would take for bitcoin clients to appear that would ensure that your transaction is broadcast to both forks so that anyone seeing only one chain would see your transaction? Who would run into a lot of trouble in this scenario? I think people relying on transaction irreversibility might get antsy, and that bothers me a little, but only a little. The worst people using bitcoin generally rely heavily on irreversibility, and the best people nearly always have some way to re-do any reversed transaction (rebroadcast is built into the standard client).

I don't want to encourage hard forks. I just want to frustrate the people who secretly yearn for one in order to destroy cryptos.

I view a valid transaction as good, but susceptible to being hidden. It is the blockchain that currently prevents it from being hidden, but that is not the only way to make sure everyone on the planet can know that the owner of a private key has reassigned the bitcoins it controls to a private key that I own.

2
  • 1
    I suspect that this is a very contentious question with a lot of points of view. Keep it civil, folks. @Dave Mind editing the title? At present, it sounds like a poll about what each contributor would do.
    – Nick ODell
    Jul 31, 2015 at 20:57
  • I'm not sure I understand the concern, but would this work better? "Do you have a strategy for dealing with a hard fork of the blockchain?" Aug 1, 2015 at 1:11

1 Answer 1

2

A contentious hardfork (where some portion of the network doesn't agree to modify their consensus rules) is effectively a doomsday scenario, there's no making this safe or making tools which allow you to transact on two chains simultaneously with no ill effect.

This almost happened once before, and the miners picked the fork that solved the problem (a fork that would otherwise have lost, mind you).

That does not reflect current understanding of how BIP50 operated.

The chain abandoned by human intervention was actually the correct one, the decision was made just because a majority of the networks nodes were using buggy software that would have had to have been updated very quickly. Nodes running 0.7 or earlier software could randomly fail out of consensus (with 0.8, or even just with other nodes running the same version) depending on their own environmental influences.

It's a little out to argument if fixing the implementation was a hard fork or not, but BIP50 is not an applicable example for gaining knowledge about how the network might operate under intentionally changed operating conditions.

How long do you think it would take for bitcoin clients to appear that would ensure that your transaction is broadcast to both forks so that anyone seeing only one chain would see your transaction?

There is no scenario in which two networks can continue to happily operate in unison.

  • The two chains of differing consensus rules will fall out of synchronization. Inevitably due to a single transaction not confirming, being mutated between the chains changing the TXID, or someone spending a coinbase output, transactions on one side will become invalid where they would otherwise be valid on the other.

    Rebroadcasting your transaction doesn't mean anything if it literally cant't exist in both chains, no wallet vendor will bother doing this for the extreme amount of development time required to make it work functionally, and the high amount of user confusion it would cause.

  • Clients on one side (or both) will ban their peers for not following consensus rules. This is part of a long list of denial of service attack prevention measures which include sending invalid blocks and wasting validation time on something that can never be accepted. Nodes that disable this rule may find that they reorganize onto different chains and flip flop between them

  • If two fictional companies Coinbarse and Bitflinux decide they will follow alternate chains, then there is an opportunity for every Bitcoin owner with an account on each to double their money. Simply sell your BTC twice for USD on each chain and you've got double the USD you would otherwise, the markets clearly couldn't survive this sort of behavior one way or the other.

The worst people using bitcoin generally rely heavily on irreversibility, and the best people nearly always have some way to re-do any reversed transaction (rebroadcast is built into the standard client)

That does not accurately portray the behavior of the system, and I'm not sure how that couples with "worse" people. If somebody pays you with a mature coinbase output which is reorganized out of the chain, then you are stuck without your money no recourse. If someone pays you and an alternate payment included in a different block, then you are stuck without your money no recourse. The vast majority of users do not use wallets which rebroadcast transactions, and in almost all scenarios where payments could be reversed there is a high probability that they could also become invalidated as well.


The simple answer is just that if you don't want dangerous and undefined things like this happening, don't go along with the belief that 75% of the mining hashrate is "consensus". Work towards solutions which don't actively destroy the ecosystem, and have complete agreement on their implementation and execution.

6
  • 2
    Bitcoin 0.7 and before were out of consensus with itself. Bitcoin 0.8 (as far as we know) was not. Jul 31, 2015 at 23:15
  • @Bitcoin, thanks for the points you made. It sounds like you'd just give up once you decided that the fork is contentious. That is a valid answer and helpful, but it begs for verification and invites the followup: How big would each side have to be for you to give up? Aug 1, 2015 at 1:20
  • 1
    @DaveScotese That's not really an easy concept to quantify. Mining hashrate certainly does not represent the interests or costs of Bitcoins end users any more than it represents the number of mountain railways in Switzerland. Even if mining hashpower did represent consensus then leaving 25% of people behind is obviously unacceptable. Giving up isn't the right term I don't think, it's just realizing that Bitcoin as a distributed consensus system has failed and moving on.
    – Claris
    Aug 1, 2015 at 1:39
  • Somewhere between 1 and a billion, a number of grains of sand becomes a pile. Selecting the number isn't really sensible but there are things we can do with piles of sand that we won't do with a few grains. For me, bitcoin isn't dead just because there's a fork. Both forks survive only because there are enough people continuing to solve blocks on them. It seems wise to salvage what value we can when one fails. I seek strategies for such preparation. Aug 2, 2015 at 17:31
  • @DaveScotese The system is not compatible with simultaneous operation of an incompatible fork. It does not make sense to accommodate something which is effectively a signal of the end of the network. On both a technical and a manpower level, nobody is interested or able to make allowances for it.
    – Claris
    Aug 3, 2015 at 11:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.