About the power of miners and miner software:This is incorrect.
Bitcoin client users vote by accepting or rejecting P2P network transactions to relay and include in blocks. Each bitcoin client validates the block chain independently. This is why bitcoin is decentralized.
I think I underestimated the importance of this.
So, even if a group of miners had 99% of the hashing power, they could not use that to change
the rules. They could perform a DoS by not including any transactions, or perform the infamous 51% attack which allows them to revert their own transactions, but they can not e.g. change the block reward, or accept transactions that would otherwise not be accepted. If they did those things, their very own super-high-difficulty branch of the block chain would be ignored by the community, which would instead use the branch created by the honest 1% of the miners.
It would still be possible for them to perform a "partial DoS", equivalent to a financial blockade, by following these rules top-to-bottom:
if transaction is invalid then reject
else if some payees are not in list of registered addresses then reject
else if some payers are not in list of registered addresses then reject # optional rule, will typically be introduced later
else if some payers or payees are on blacklist then reject
else accept
where "list of registered addresses" and "blacklist" would be defined by some central authority.
No end user/merchant-side verification could stop them from doing this, and this can already be done with 51% hash power (so it's another type of 51% attack). Of course, once it becomes known that frequently-used Bitcoin software includes behavior like this, many individual miners would object and switch to other software or other pool operators. But ignorance among miners could be a problem in this scenario.
About the power of end users' software:I'm afraid it's essential that the ignorant majority of end users / miners does not end up running compromised Bitcoin software. I realize now that miners (and hence their software) have limited power (though still a bit scary), but the power of end user software could be even more: hidden code in the software could silently move control over transactions from the block chain to a centralized model. If this happens to all people simultaneously (because they use the same software) they wouldn't notice it until it's too late. This power is limited by market share of independently developed clients. Unfortunately, the Bitcoin client ecosystem isn't very diverse at the moment, and nearly all clients are derived from a single implementation.
About the core Bitcoin developers and the Bitcoin foundation:Luckily, that single implementation is open source, which should make it easier to detect compromised code before it is deployed globally. On the other hand the code is enormously complex and chaotic: I consider myself to be a competent C++ programmer, but I'd have to spend weeks to get a thorough understanding of the Bitcoin source. In practice, I think we now depend on the integrity of the core Bitcoin developers (the elite group of people who do have a thorough understanding of the source code). This is where the Bitcoin foundation kicks in.
If I understand correctly, Gavin will be paid by the foundation. This will naturally give the foundation some power over development of the software: Gavin decides what is and what is not included in official releases. However, this power exists irrespective of who is paying Gavin; at least it is now exercised in a relatively transparent way. E.g. do you know who paid Gavin's salary a year ago? And three years ago? So, on this aspect, I think the foundation is a small improvement. Besides, Gavin can easily be put under pressure by other parties as well, e.g. the government of his country of residence (unlike Satoshi, Gavin is definitely not anonymous).
About the foundation acting as a centralized PR point:this is a difficult issue. Some thoughts:
- They just exercise their free speech right. It's up to others to judge the quality of their speech.
- This could affect the "Bitcoin" trademark, positively or negatively.
- We should have a simple way of quickly setting up a new foundation / forking the foundation, in case the foundation starts saying things that aren't supported by a part of the community.
- If the foundation is smart, it won't say/suggest things that are incorrect. E.g. speaking out against silk road without explaining that the foundation cannot stop silk road would be stupid, because people will find out automatically that the foundation does not have that power. Why show your own weakness in such a way?
- Having a central PR point could be very beneficial, even if you don't always agree with that central PR point. Look for instance at the poor PR of Palestinian suicide bombers: unlike Israel, they don't have a high-profile PR center that can explain their point of view to the press.