Slashdot Mirror


Bitcoin Blockchain Forked By Backward-Compatibility Issue

New submitter jhantin writes "The Bitcoin blockchain has forked due to a lurking backward-compatibility issue: versions older than 0.8 do not properly handle blocks larger than about 500k, and Slush's pool mined a 974k block today. The problem is that not all mining operations are on 0.8; blocks are being generated by a mix of several different versions of the daemon, each making its own decision as to which of the two forks is preferable to extend, and older versions refuse to honor or extend from a block of this size. The consensus on #bitcoin-dev is damage control: miners need to mine on pre-0.8 code so the backward-compatible fork will outgrow and thus dominate the compatibility-breaking one; merchants need to stop accepting transactions until the network re-converges on the backward-compatible fork of the chain; and average users can ignore the warning that they are out of sync and need to upgrade." Turns out there's an approximately 512K limit to atomic updates in Berkeley DB which were used by versions prior to 0.8. 0.8 uses a new database, allowing blockchains that old versions won't accept to be created.

19 of 351 comments (clear)

  1. Old news. by NettiWelho · · Score: 5, Funny

    640K would have been enough for everyone.

    1. Re:Old news. by Anonymous Coward · · Score: 5, Insightful

      You laugh, but some of the developers, the lead developer Gavin, and another core developer Mike Hearn, are pushing really hard to get the current 1MB limit (7 transactions/second) on blocks lifted so Bitcoin can directly scale to VISA-like volumes.

      Never mind that Bitcoin is inherently an unscalable O(n^2) network - every transaction has to be broadcast to every node - and the issue they ran into was also a problem scaling. Mike's solution is to just throw thousands of dollars worth of hardware at the problem. Never mind that for Bitcoin *any* issue the means that some nodes can process a large block, and some can't, turns into the same hard-fork we just saw. Never mind that it will make Bitcoin centralized, and lead to perverse incentives for large miners to attack smaller ones.

      You'd think they'd say "OK, hold on, how about we just use ways to transfer funds that don't have to go into this shared state ball of mess?" but no, they're desperate to take the easy way out at any cost.

      I really wonder if my Bitcoins will be worth anything in a few years.

    2. Re:Old news. by IamTheRealMike · · Score: 4, Interesting

      Is that you Peter? :) I don't know anyone else who would describe the system like that.

      Bitcoin is not an O(n^2) network. The total work done by the core nodes is "number of nodes multipled by number of transactions" - that is two very different quantities. It doesn't help the argument to abuse formal notation like that.

      Pieter reported today that his optimized secp256k1 implementation can reach 20,000 signature checks per second on a single core. That is a lot better than the generic OpenSSL code was able to manage. Bear in mind that although it sounds scary, all of VISA is only about 10,000 transactions per second. So even if we're generous about our assumptions on number of inputs, CPU load would barely stress a single core. Today. With existing hardware. Disk IO will be the bottleneck for the forseeable future, but we're talking about a working set of a few hundred megabytes today. Even with an order of magnitude growth the entire thing fits in RAM on my puny laptop. And with two orders of magnitude growth it still fits on a pretty average dedicated server.

      But Bitcoin will not reach VISA traffic loads today, or this year, or even this decade. By the time it does, dedicating one single computer to being a node will seem a completely trivial investment in order to have full security on the worlds financial system, because let's face it, if Bitcoin is processing tens of thousands of transactions per second then it's well on its way to being exactly that.

      Ultimately, Bitcoin is growing fast and will scale up. That is what Satoshi wanted it to be, that is what most of the people actually creating businesses and writing lots of code also want - so if you think that'll make your coins worthless in a few years, I will happily buy them off you.

      -Mike Hearn

  2. Ooh, exciting! by fuzzyfuzzyfungus · · Score: 5, Funny

    Why achieve 'consensus' when we could let the fork fester, and have two virtual currencies floating wildly against one another as well as USD?

    In fact, why not introduce Bitcoin-0 through Bitcoint-Aleph and let them fight it out? I'll bring popcorn!

    1. Re:Ooh, exciting! by 0100010001010011 · · Score: 4, Informative

      The nice thing about standards is there are so many to choose from.

      How much time did this take? How much electricity was spent 'mining' ~$150 worth of BTC?

    2. Re:Ooh, exciting! by fuzzyfuzzyfungus · · Score: 4, Insightful

      I tend to think of fiat currencies as being on the 'lead standard', with their reality largely measured by how many guys with guns are available to uphold them. USD, among others, passes the test.

    3. Re:Ooh, exciting! by DrXym · · Score: 5, Funny
      Just to get the ball rolling...

      Post 0.8 users - if you fuck over the people on the earlier bitcoin format, the value of your bitcoins effectively DOUBLES!

      0.8 and prior users - if you fuck over the people on the later bitcoin format, the value of your bitcoins effectively DOUBLES!

      Just ask yourself what Ayn Rand would do in the same situation.

    4. Re:Ooh, exciting! by julesh · · Score: 5, Insightful

      Just ask yourself what Ayn Rand would do in the same situation.

      Die in penniless poverty while dependent on the state to provide basic income and medical facilities that are necessary to maintain her life, all while maintaining that such a system is inherently evil? It's what I like to think of Ayn Rand doing in *any* situation.

    5. Re:Ooh, exciting! by DogDude · · Score: 4, Insightful

      It's called "society". Billions of us all have to live together, and to do so well, we need to agree on a common method of exchange. Your silly "men with guns" strawman is patently silly, and is the result of a serious lack of understanding about society at large.

      --
      I don't respond to AC's.
    6. Re:Ooh, exciting! by TheRaven64 · · Score: 4, Informative

      If you'd like to live in a ditch and swap dead squirrels with other people, you're free to do so.

      If you do so in the USA, then the US government will still require that taxes be paid in US dollars on the transactions.

      --
      I am TheRaven on Soylent News
  3. It's a Wonderful BitCoin! by eldavojohn · · Score: 4, Funny

    Why achieve 'consensus' when we could let the fork fester, and have two virtual currencies floating wildly against one another as well as USD?

    In fact, why not introduce Bitcoin-0 through Bitcoint-Aleph and let them fight it out? I'll bring popcorn!

    BitCoin Bailey: No, no, no, everybody remain calm. We'll get through this together. You're thinking of this virtual currency all wrong. As if I had the BitCoins back in a safe. The money's not here. Your money's on Bill's computer, and Fred's computer ...
    Angry BitCoin User: Hey Fred, what the hell you doin' with my BitCoins?!
    *a run on MtGox ensues*

    --
    My work here is dung.
  4. Re:Gobble bobble wobblywob? by ledow · · Score: 5, Informative

    Bitcoin is a virtual currency that works by "doing work" (a complicated mathematical "puzzle") on your computer. It becomes a currency by the difficulty of the puzzle, and that when you have solved it you tell other BitCoin users about your success and it goes into a "chain".

    That chain is the history of EVERY transaction performed on the BitCoin network and the integrity of the system is given by every user relying on the same chain - so trying to create some extra BitCoins or a fake transaction requires compromising a lot of machines around the globe to believe it happened.

    Because of a stupid bug that nobody knew about related to the size of a transaction in this chain, a transaction that's too big for older clients to handle was (legitimately) created. Older clients can't handle it, so they have no idea what to do when it comes into their chain updates. Newer clients can handle it, but can't synchronise their chains with older clients because of it (they can accept the transaction whereas older clients don't).

    Because the chain is now effectively split into two chains, and that all the integrity of the system comes from the fact that everyone is using, verifying and updating the same chain, BitCoin is now in an "emergency" (quoted from the forum post in the summary) situation. New clients are generating coins that old clients can't see and vice-versa, so BitCoins are being generated and lost or transacted and forgotten about.

    The fix is to go back to the old code, ignore the over-size transaction, and hope to fix the code in a more backward-compatible way. Unfortunately, that requires some people on newer clients to lose coins, revert transactions, and for exchanges to shut down (temporarily) until the issue is resolved.

    Basically, someone really messed up by not checking that the database could handle transactions that could pop up in the real-world.

  5. Re:Gobble bobble wobblywob? by ledow · · Score: 4, Insightful

    It's not the preferred solution.

    The value of the currency is in the people who use it and most major exchanges have already reverted to 0.7, hence 0.7 blockchains are the de-facto standard at the moment. There was a bit of back-and-forth when the problem was discovered but all the large exchanges have settled on 0.7 as the standard for now.

    It's like saying we're going to upgrade the dollar, and yet nobody moves to the "new dollar". The new dollar ends up valueless and everyone just stays on the old one.

    The client fix is to accept large transactions but not create them - there's already code in a lot of BitCoin software to do that, but not all clients are running it - someone now has to force them to upgrade to a good version in order to stay compatible, and a lot of people might be generating coins that will later fail without knowing it.

  6. Re:Gobble bobble wobblywob? by fatphil · · Score: 5, Funny

    > most major exchanges have already reverted to 0.7

    Yet 0.7 is the version with the database bug.

    These bitcoins certainly aren't a replacement for gold - they're far too irony.

    --
    Also FatPhil on SoylentNews, id 863
  7. Re:Gobble bobble wobblywob? by ledow · · Score: 4, Insightful

    "except for miners who lost their reward for mined blocks on the abandoned (v 0.8) chain."

    Which currently amounts to about $25,000 of BitCoins, last I heard. That's $25,000 of BitCoins that might have been spent, sent, transferred, etc. but never existed in the chosen chain and the knock-on effects on your own wallet if you're dealt with someone who dealt with someone who dealt with someone.... (ad infinitum) ... who dealt with one of those mined blocks.

    Sure, it'll "catch up", but saying nobody lost out is plainly false. And isn't the point of BitCoin that everyone is a miner in some small way?

  8. Re:The concensus should be... by Chrisq · · Score: 4, Informative

    I think its fair to say that while forking code may be a good idea most of the time - when its code running a virtual currency its a very BAD idea.

    This isn't a code fork, it's a block chain fork" caused by an incompatible version update. That said, I agree with your assessment that it is not suitable for storing wealth unless you are prepared to take risks. To be fair bitcoin describes itself as ".. an experimental, decentralized digital currency".

  9. Re:Gobble bobble wobblywob? by julesh · · Score: 4, Informative

    Now can you explain why exactly is the preferred solution to revert to the old, flawed, code rather than updating everything to the newer code that can properly handle the larger transactions?

    Because updating everything is likely to be impossible. The system relies on a distributed network of data processors that perform very large numbers of difficult cryptographic operations in the hope of randomly hitting the right answer for a cash reward (this is what is referred to as 'mining' in the summary). Because of the high rewards offered, a lot of people have invested large amounts of money into these operations, with many of the larger players using hardware built around custom ICs (if you do google searches for 'bitcoin' and then 'asic' you'll start seeing adverts for them, even if you leave it months between the two searches...). These likely cannot be upgraded to the new version trivially, as it would rely on the developers of the chips providing updates to their support software -- that is, if it is even possible at all (they may have hard-coded that 512KB block size limit directly into their design).

  10. Re:For those, like me, reading this and saying wtf by dumael · · Score: 5, Insightful

    The Weimar republic and Zimbabwe suffered massive inflation, not deflation.

  11. Re:So much for being based on crypto by Jeremi · · Score: 4, Insightful

    A cryptographic currency system needs to be secure regardless of how it is implemented

    That's kind of an impossible standard, don't you think?

    --


    I don't care if it's 90,000 hectares. That lake was not my doing.