How do we prevent Bitcoin forks (or should we)?

(1/5) > >>

epaulson:
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?

FreeMoney:
Hopefully a good number of users will understand that using a "non-compatible with the current majority rules client" is going to result in a huge number of people making transactions that get delayed and generated coins disappearing which will damage the system's usefulness and the confidence of people in the system.

The particular scenario you mention is unlikely I think. In 3 years individuals who don't understand won't be minting hardly anything.

jgarzik:
Quote from: epaulson on August 10, 2010, 08:10:30 PM

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.


Yes.  The bitcoin paper describes how the network is compromised if over 50% of the nodes are not "honest."  That's inherent in the entire system.  Thus, incompatible or malicious forks are annoying and degrade the network, but shouldn't fundamentally compromise it until that 50% point is reached.  At which point, you have bigger problems.

The forks that are of more immediate concern are ones that destabilize or attempt to corrupt the network somehow, IMO.

epaulson:
One thing I've seen over and over with open source projects is their tendency to fork, often to the detriment of everyone involved. Saying that there will never be a major disagreement over the system seems naive.

I guess my real question is, how do we all decide what is the correct bitcoin program? Is it and will it always be whatever Satoshi posts on bitcoin.org? How is that different than just trusting the Federal Reserve? (In Satoshi We Trust)

gridecon:
This is a complicated topic, but I think the key points are pretty clear and factual.

1. It is impossible to prevent forks - the Bitcoin source is under a very permissive license.
2. There is strong incentive to fork - Bitcoin's growing success and current market value demonstrates the system works. The idea that you can make a lot of easy money by being one of the early adopters of a digital currency and take advantage of the early period of "cheap coin generation" before it becomes widely adopted and difficulty increases makes the idea of starting a "Datadollars" currency community based on the Bitcoin source very appealing.
3. There are already MANY competing digital currencies, to say nothing of existing paper currencies!
4. Bitcoin users generally value "freedom", as defined in various ways, and the freedom to use different currencies is an important economic freedom.

I don't think the appearance of alternative currencies based on the bitcoin model and source code is a bad thing. Bitcoin already has a lot of computational power invested in its proof of work, and that is part of what gives it value, as well as a healthy user community. The importance of that existing investment of resources is significant. I think "forks" will certainly be done for specific purposes, like creating an in-game MMORPG economy that is not intended to be transacted outside of the game or exchanged for "real" bitcoins or other currencies.

I think the real risk to be avoided is fracturing within the official "branded" Bitcoin community. As the utility of bitcoin grows, it is probably necessary to establish transparent decision making processes about things like transaction fees that may need to be changed in the code for future clients.

Navigation

[0] Message Index

[#] Next page