One criticism I commonly hear of Bitcoin is that it merely transfers trust from some sort of central bank or government entity to the developers of the main project. Can anyone provide a clean summary of what would happen (technically speaking) if a large majority, small majority, large minority, or small minority of Bitcoin users opposed a backwords-incompatible change to the protocol via the standard client? And does this "power to dissent" lie disproportionately with miners, and/or with major economic players like businesses and exchanges?
2It is worth breaking this into multiple questions about the different types of possible changes. I could write six paragraphs on each of the following possibilities: Changes to the difficulty adjustment, changes to how many coins are created, changes that introduce transactions currently considered to invalidate a block, changes that introduce new transactions that users of standard transactions could ignore, and so on. (It's not entirely clear what "backwards-incompatible" means exactly. Do you mean the change would be mandatory to agree on a block chain?)– David SchwartzSep 22, 2011 at 22:25
Alright, as soon as I have time I'll break it up.– eMansipaterSep 22, 2011 at 23:46
The power to dissent over changes that causes existing clients to reject a block does lie disproportionately with miners. Any change that causes existing clients to consider a block invalid is useless until the majority of miners update.
Miners who consider the block invalid will never attempt to build on a chain that includes any such blocks. So until a majority of miners upgrade, the longest chain will never stably contain a block requiring the update.
Once the majority of miners have updated, those running clients will pretty much have to update. Otherwise, they'll be stuck on a shorter block chain that won't agree with the more secure block chain.
The change would have to be pretty detrimental to key interests for businesses or ordinary users to be able to stand up to the miners. That seems pretty unlikely to me because there interests are pretty well aligned.
The changes would have to be accepted by at least miners, and maybe also by clients.
If the new code rejects something that was previously allowed and miners accept this change, then clients have no recourse. But if the new code allows something that was previously not allowed, then the network will split in two. All clients that refuse to upgrade will always follow their old rules, even if only 0.1% of the network uses these old rules.
So miners can't increase the money supply, change the difficulty calculation, steal money from accounts, etc. Miners could implement demurrage, increase fees, freeze accounts, etc.
It would be possible for clients to reject or discourage blocks that don't allow certain transactions, but this is very difficult to detect reliably, and it could end up fragmenting the network.
Lightweight clients like BitCoinJ can't do complete verification, so miners could trick these clients into accepting certain changes such as an increased money supply.
This is all very unlikely, though. The business model of miners depends on the existence and popularity of Bitcoin, so they won't accept stupid changes. Also, if the "official project" made insane core changes, it would lose its status as the official project. Bitcoin.org, weusecoins.com, bitcointalk.org, and the IRC channels are independent of the development project. All links can be changed within days.
At present there are 310 forks of the "standard" client, each possibly having still more branches. There are sufficient developers involved in this project that the only sway held by the devs is that of consensus. That said, if an unpopular consensus is reached, people need only use an alternate client. It is not what client is considered "official" which holds sway on the Bitcoin network, it is what client is actually used. If some branch of the main client which obeys different rules holds the majority vote on the network, which is "standard" or "official" is meaningless - only the majority rule holds sway.
As for the miners holding disproportionate "power to dissent" the miners can only refuse to put transactions in a block, and it is my understanding that the network will reject such blocks so long as they break the rules as understood by the majority of clients.
5Most of these bitcoin forks have little or no actual development activity. They're not truly "forks", just maintenance forks that contribute back to the official version, not for differentiating features. It's likely that an alternate client would emerge from among them should the need arise, but don't think there are 310 candidates. Sep 22, 2011 at 21:52
True enough. Perhaps BitcoinJ or BitcoinSharp would be better examples of true forks since they in no way contribute back to the main fork? Sep 22, 2011 at 22:26
BitCoinJ can contribute back to the main fork through collaboration on common interoperability features. For example, a common wallet format to allow import/export between alternative clients.– GarySep 23, 2011 at 8:34