The protocol itself has to be upgraded, and majority has to agree before we can mine bigger blocks.
People talk as if there is a Bitcoin conspiracy where some central entity decides all things Bitcoin-- where blockstream is the equivalent of the illuminati. If someone thinks they can do a better job then go fork the source and convince everyone else why it's better.
Consensus aside, this is a lot harder said than done. one of the reasons btcd is not widely adopted, even though it's purporting to be 100% compliant with core, is that there is no formal definition of what that even means. to be 100% compatible with the bitcoin protocol is to be 100% compatible with core - bugs and all. the community needs an RFC like paper describing in details what 100% compatible means. Then we can safely run other nodes without worrying that we'll get screwed by not having the same bug as core for example.
I'm not one to believe in conspiracies or even subscribe to the thinking of core==blockstream. But I don't think you'll disagree that what goes into the consensus protocol is under control of the 5 maintainers
The consensus protocol is dictated by exactly that, consensus, not this allegedly omnipotent cabal.
Miners are a different story though; understandably, they're very reluctant to change (who would with so much money on the line). It is also unfortunate how miners switch back and forth between classic and core so quickly.
We can't do anything with those three examples, and Bitcoin, until a consensus agrees and actually does something due to our usage of them as centralized in practice. That's an immediate disincentive, and likely deal-breaker, to improve as has been demonstrated by literally five decades of history. E-mail is long due for some defenses against spam, but we literally cannot. The Internet is due for a rethink on its architecture, but we literally cannot. Spam, source filtering on network egress, DNS security, and IPv6 adoption are four examples of problems that we've had for multiple decades with the aforementioned protocols and cannot remotely begin to address because of the barrier of individual work within a decentralized protocol or system creating an economy of incentives. It takes the worst part of software deployment itself (outliers running old versions) and then makes it even worse (administrators need incentive and/or consensus to upgrade said outliers). Momentum is already a bitch to deal with in traditional software, and decentralization accidentally gives momentum a frightening amount of power.
Bitcoin is just demonstrating all of this on an accelerated timeframe, and it's worth thinking about when discussing the benefits of decentralized systems. The Bitcoin block size is simply its IPv6 moment, and look how long we've been in dire mode on IPv6. Yes, Bitcoin is decentralized (yay!) but everybody uses a centralized blockchain (well...) and just papers over that fact. Seriously, the very concept of a blockchain split undermines the description of Bitcoin as a decentralized protocol, because it requires out-of-band resolution. Who are the out-of-band resolvers? The centralization.
I watch all the improvements to these systems try, and fail, and I cannot help but wonder why people still try to make decentralized systems when usage patterns almost always make a system centralized (IRC: decentralized chat; networks: centralized. IP: decentralized routing decisions; Internet: centralized). Then the FLOSS crowd tries to decentralize big centralized systems (identi.ca, GNU social, "pure" XMPP and so forth, most of which amusingly have a "centralized" option) and wonder why nobody uses a system that starts with "step 1, become root," which is a slightly different issue but related.
Decentralizing a system is one of the worst decisions you can make if you expect the usage thereof to be centralized in nature. You're dooming yourself or, far more likely, those begrudgingly after you to supporting the choices you made in the first version for a long, long time (despite what you tell yourself while writing it), and you need to think about every single decision long and hard. And then you'll still get it wrong because you cannot predict the future. Don't get me wrong, I love the spirit of decentralized systems, but I've been sitting here since I started this comment trying to think of an example of it going right. Still trying.
Perhaps it's time to objectively look at decentralization itself. I might be wrong, but it seems to keep shooting us in the foot and making beds we have to sleep in, often against our will. Maybe there's a different means to accomplish the grand decentralized vision without the problems I've touched on here; I'm aware of the benefits of distributing authority, and I wish we could advance decentralization to a place where bummers like this don't happen, but I don't know how.
(Also, not trying to be negative, nor am I criticizing Bitcoin. Just stepping back and observing in general, and I did write this comment with the context of many things I mentioned succeeding despite the problems decentralization brings.)
I'd take slight exception to this:
> Seriously, the very concept of a blockchain split undermines the description of Bitcoin as a decentralized protocol, because it requires out-of-band resolution. Who are the out-of-band resolvers? The centralization.
Well, in the original architecture as proposed, each individual user - or at least every fullnode operator - is also a miner. So there "should be" something like 5000-10,000 miners by now (based on current numbers of miners and fullnodes) none with much of a hashpower advantage over the others.
In that environment, conflict resolution would - could only - move forward in a "one man, one cpu, one vote" fashion, with "majority rule" controlling the blockchain.
The task is not to make a magic free-floating decentralised system, but one which is resistant to getting central points lopped off or controlled. For that look at bittorrent, or even DNS. Whenever the US government has flexed it's muscle, trying to assert control over DNS, other countries have threatened to make their own DNS root and the US has backed down. Anyone can run a DNS root, but that alone doesn't fix the problem, it takes people actually using that fact to prevent centralisation. Bitcoin is stuck in a place where the vast majority of users have to agree to a change before change can be made.