Still, I think it's not a bad idea. The miners could vote in proportion to their mining power to elect a committee to study and then make a recommendation. The recommendation would also be made by a vote.
Grrrrr. This is rubbish. I'm quite irritated with Genjix promoting this horrible misunderstanding of the Bitcoin system as being based on some kind of majority election in his post by taking "one cpu, one vote" out of context and applying it to parts of the system where it does not apply.
(FWIW, I'm the anonymously quoted person in his latest essay.)
Please go (re-)read this post:
http://p2pfoundation.ning.com/forum/topics/bitcoin-open-sourceThe root problem with conventional currency is all the trust that's required to make it work.
[...]
Before strong encryption, users had to rely on password protection to secure their files, placing trust in the system administrator to keep their information private. Privacy could always be overridden by the admin based on his judgment call weighing the principle of privacy against other concerns, or at the behest of his superiors. Then strong encryption became available to the masses, and trust was no longer required. Data could be secured in a way that was physically impossible for others to access, no matter for what reason, no matter how good the excuse, no matter what.
It's time we had the same thing for money.
The Bitcoin system is _NOT_ up for a majority election. Not a majority of hashpower, not a majority of people, not a majority of money.
For example, what happens if a super-majority—even 100%—of the current miners decide that the subsidy should be 50 BTC forever?
NOTHING. Miners who change that rule in their software simply stop existing from the perspective of the bitcoin network. What happens if a super-majority—even 100%—of the current miners decide that they're going to mine a transaction that takes all of your Bitcoin and gives it to them?
NOTHING. Miners who violate the protocol rules stop existing from the perspective of the bitcoin network. What happens if a super-majority—even 100%—of the current miners decide that they're going to lie about the current time in order to mine 20 million BTC this year instead of over the next decades?
NOTHING(* ignoring the timewarp bug). Miners who produce objectively incorrect blocks are ignored by the Bitcoin software run by everyone else.
Your bitcoin is secured in a way that is physically impossible for others to access, no matter for what reason, no matter how good the excuse,
no matter a majority of miners, no matter what.
Now—it would have been Satoshi's dream to make the entire system work completely like this but sadly Einstein came along and screwed everything up: relativity says that the temporal ordering of events is different for every observer and depends on your mutual locations in spacetime. A decentralized system does not exist in just one place and thus there can be no single constant decentralized view of the flow of time and ordering of events.
(Bitcoin needs to reach a consensus about order so that it can decide which of multiple attempts to spend the same coin is the single valid one, in the rare case that someone would attempt to fraudulently spend the same coin more than once)
To solve this, Satoshi introduced a very limited form of a specialized kind of voting: miners express their view of the ordering of events in a way which is fully decentralized, attack resistant, and inevitably convergent. This voting is very limited—miners can decide the order of transactions (including orders which place transactions infinitely far in the future). But that is it. They do not get to do anything else. This is powerful, yes, but it's also still very limited. As absolutely limited as possible.
The vision of Bitcoin is not a vision of democracy, where the wolves can vote to have the sheep for supper, it's a vision of independence and autonomy. We use a "vote" where we have no choice, but the Bitcoin system itself is a consensus of deterministic rules.
P2SH is only possible because it takes things that were previously permitted and makes them not permitted—to old clients P2SH transactions look like "anyone who knows this hash puzzle can spend this coin" (BIP16/BIP12) or "anyone at all can spend this coin" (BIP17). Going the other way—from forbidden to permitted—would be akin to boiling the oceans. We are very fortunate that Satoshi had the foresight to add many No-op instructions to the script in order to make additions like this possible.
In the case of P2SH, the development team could easily deploy this functionality
against the will of the miners: they'd simply issue a new client that enforces the BIP16 rule and send an alert which would pop up a message for every bitcoin user telling them to update. Miners that failed to update would eventually extend a chain containing a contradictory transaction and from that moment they would no longer be miners from the perspective of the majority of Bitcoin users, no matter how many yottahashes they had. Done.
(If users reject the change too—well, they can get themselves some new developers, but the miners never come into that picture except as users)
There are some reasons that this wouldn't be quite so simple. First—miners are Bitcoin users too, they are probably more technical than average, and change to Bitcoin needs to be adopted by the users by general consensus. Having their support is good and prudent. Secondly—P2SH is secure only if either >>50% of the miners have it or the vast majority of the clients do (thus making the miners who don't have it irrelevant). The former is easier to get (and easy to objectively measure, so long as people don't misrepresent the purpose of the coinbase tags), so it's a prudent path for making P2SH secure as fast as possible.
None of this translates into Bitcoin protocol being driven by a majority vote, and certainly not a majority vote of miners (who may or may not be well-aligned with the majority of the users).
The next point which is irritating me is the false controversy being made here. There is some minor disagreement, centered primarily on one person, over some technical minutia which was small enough that Genjix didn't bother to explain it and which is boring enough that you probably don't want to hear it from me an Nth time.
Among competent and involved parties there is pretty much consensus over the direction, though a little less about the timing. This is partially due to the core development team being too busy developing and testing (and shooting the shit on IRC
) to communicate effectively to the broader community.
Luke has been building a useful matrix of involved developers' views.
Gavin has started making some better public-facing documentation of the thoroughness of the work so far, and
Luke has created a parallel page for BIP17. I hope these measures and more like them will fill up some of the communications vacuum which has recently created a niche for a few uninformed hysteria promoters.
Cheers,