>> (p.1)
    Author Topic: How do we prevent Bitcoin forks (or should we)?  (Read 12798 times)
    epaulson (OP)
    Newbie
    *
    Offline Offline

    Activity: 8
    Merit: 10


    View Profile
    August 10, 2010, 08:10:30 PM
    Merited by TheNewAnon135246 (1)
     #1

    The "cryptographic race" for the longest chain to prevent double spending seems, as well as I can understand it, to be a pretty robust system against cheating and other similar maliciousness.

    However, I am curious about how much of the rest of the system security relies on everyone "playing by the rules" and using the standard (or a minor variant thereof) bitcoin program. It seems to me that if someone convinced enough people to use an alternative bitcoin program that generated more or less valid blocks but potentially differed in some other way (perhaps a Trojan), he or she could break or undermine the whole system.

    Here is one scenario to illustrate what I am thinking about:
    Let's say that when the time comes for the value of generating a block to drop from 50 coins down to 25 coins, a big group of bitcoin users whine and decide that they don't want to generate fewer coins per block. So, they write a patch for the bitcoin program and make their own clients keep generating 50 coins per block. Now, the standard client will reject these 50 coin blocks as invalid, but if the "50 coiners" have a large enough group and accept both the 50 coin blocks and the 25 coin blocks, they could impose their will on the whole system. It seems to me the "25 coiners" would grind to a halt, rejecting block after block, and the "50 coiners" would happily build away a long chain of 50 and/or 25 coin blocks. I don't think the "50 coiners" would even need a majority of users to impose their will in this way. I suppose the "25 coiners" could stubbornly continue, and the project would fork into two different bitcoin systems, but this would be a major destabilization to the value of the bitcoins.

    So, how do we prevent bitcoin from forking, down the road? At some point there is bound to be a large group of users unhappy with the status quo and an effort will be made to split the project, to the detriment of everyone. Can we build in a consensus about the valid identities of the client programs in the same way that we do for the transaction log (or is that already being done)? Or do people have the right to make a fork, despite the negative consequences?
Page 1
Viewing Page: 1