5

This I never understood ever since Dogecoin forked in mid-February 2014: If the cause of the fork was, apparently, the same as the one that affected Bitcoin in March 2013 (namely: a very long block being accepted by a new wallet using a different database but rejected by the earlier wallets) then...

How come there were up to three forks of he blockchain at a time? I would've expect at most 2 competing chains, one kept forth by the miners using the old version (then, 1.4) and another by those already on the new one (1.5, then). But, how was it possible to have three forks?

And finally (rant here), what was the point of increasing the size of the potential block size? In retrospect it's obvious something like this was going to happen. Why not treat the rules of a coin as set in stone once it's released, non-critical bugs and all? I had to delete the blockchain and resync twice, each time getting into a different, invalid forked chain - at the end I simply downloaded the files a volunteer shibe uploaded, with the potential risks that has - and hated the experience.

1 Answer 1

4

The articles you link attribute the forks due to raising the total coins limit. Which changed from 500 million to 10 billion. Now this by itself won't cause a block chain to fork, until there is a transaction larger than how many coins there should exist according to old and outdated clients. In Dogecoin's case someone created a 500+ million transaction that would create an invalid block from an old node's perspective.

To create multiple forks, you'd simply stem from newer blocks in the "outdated client" chain. Old clients would reject it and opt for blocks created by outdated miners and newer clients would be hit by a self inflicted 51% attack of sorts. Where newer nodes have multiple chains to sort and make a decision on. As an example here are the chains a newer updated node would have to choose from.

  • Original client chain
  • Original client chain with leading block containing one 500+ million transaction
  • Original chain with second-last block containing 500+ million transaction

It goes with the longest chain initially, but what happens if another chains mines a few blocks faster and becomes the leading chain? It switches over, and you have this complex multi chain scenario.

Why was the total coins possible limit increased?

The creator simply didn't expect this, all though it is really expectable. Dogecoin was set to mine itself out entirely within 1.5 years from release. Compare this to Bitcoin's ~2 centuries from now. Whoever configured these initial values expected Dogecoin to become irrelevant within this time frame or simply wanted cosmetically large block rewards to entice people.

4
  • 1
    I don't understand how that would allow for a third fork: Old clients would prefer the longest chain without bigger blocks, while the newer version clients would consolidate to the longest chain in total, hence one should only have two forks?
    – Murch
    Commented Mar 18, 2014 at 8:40
  • Understood it as: old chain is kept sans the 500+ trans. by the old-client miners, both miners see this chain as valid. Chain with 500+ trans. (new miners' only) gets worked on by some of the new-client miners, others try to add this trans. to the oldies' chain, resulting in 3rd chain. Between 2nd and 3rd chains only one should prevail, except some new miners continuously try to add offending trans. to the oldies-only chain at diff. points, spawning new forks that compete for new-client miners' attention.
    – Joe Pineda
    Commented Mar 18, 2014 at 14:09
  • @Murch imagine that hash rate is split some what proportionally, meaning any chain could momentarily be the longest.
    – John T
    Commented Mar 18, 2014 at 18:25
  • No problem with temporary chains, but under the light of Joe Pineda's question specifically asking how three forks could exist in parallel, I thought you were suggesting that there could be more than two stable forks.
    – Murch
    Commented Mar 19, 2014 at 9:21

Your Answer

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

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