Decentralize All The Things!

They gave us a fully decentralized Internet and we used it to build web services–Facebook, Twitter, Gmail, iCloud–so massively centralized they verge on being quasi-medieval fiefdoms. Now we’re building the Internet of Someone Else’s Things, wherein every room of every home will contain devices controlled by servers the homeowners don’t know, control, or understand. What is wrong with us?

Don’t try to blame ignorant, tech-illiterate users. The world’s software developers do exactly the same thing, every time we push to or pull from Github:

Bruce Sterling calls them “the Stacks”: the gargantuan American companies that control so much of what the world does on the Internet. The greater Stacks: Amazon, Apple, Facebook, Google, Microsoft. The lesser Stacks: Netflix, Twitter, Yahoo!. Between them, they probably know, conduct, control, manipulate, and monetize almost all of the following: your phone, your computer, your email, your online shopping, your social media, your videos, your games, your news — in other words, your entire online (and, increasingly, offline) existence. The Internet today, I’m sorry to say, consists largely of the Stacks and their supplicants.

Once again: what is wrong with us?

Listen, are we helpless? Are we doomed to do it again and again and again? Have we no choice but to play the Phoenix in an unending sequence of rise and fall? … Are we doomed to it, Lord, chained to the pendulum of our own mad clockwork, helpless to halt its swing?

–Walter Miller, A Canticle for Leibowitz

…Maybe not.

It’s not like we didn’t have good reason for adopting the Stacks. They’re very good at what they do. They’re helpful. They’re efficient. They’re simple. Do you really want to run your own web server for your site? Your own mail server for your email? Your own Diaspora pod for your social media? Do you really want to go through the trouble of rooting your phone? Of course you don’t.

A few brave freaks do, and more power to them. They’ve brought us nifty services like Cyanogen and Sandstorm and MIT’s OpenPDS. But as excellent as those are, only a tiny minority of people actually want to root their own phone, and/or configure and run their own server. (AKA their own single point of failure.) Most people just want to connect to something that handles it all for them. Which means a Stack. Right?

…Maybe not. Because over the last five years, in the shadow of the Stacks, whole new decentralized online architectures–paradigms, even, much as that word usually makes me roll my eyes–have slowly been growing.

I would say “quietly,” but there’s nothing even remotely quiet about the best-known of them. I refer of course to Bitcoin, a currency with no central bank, built on a decentralized distributed-consensus system known as the blockchain. It in turn has spawned projects like Counterparty, and Ethereum, a project whose explicit purpose is to “decentralize the web.” MaidSafe, “the new decentralized Internet,” actually predates Bitcoin.

Others are talking about “the dawn of trustworthy computing,” and/or using blockchains to build “distributed autonomous corporations.” Blockstream recently raised $21 million for core Bitcoin/blockchain development, including sidechains, potentially a means of iterating the Bitcoin blockchain into something far more powerful. As The Economist puts it:

Where all this may lead to is a constellation of linked crypto-currencies and blockchains, with all sorts of uses: stores of value, means of exchange, mechanisms for transferring assets and verifying transactions, whatever. The original bitcoin may remain at the centre of this constellation—or not. Whether its price recovers from last year’s slump may not matter.

Joel Monegro of Union Square Ventures writes, of the so-called blockchain application stack: “This is what I think the architecture of internet applications is going to look like in 10 years.”

I am intrigued–but skeptical. That is a very tall order. It’s true that the distributed trustless transactions of a blockchain are a major breakthrough, an extraordinary achievement; and it’s true that “when you remove the trust required (for a transaction), you remove some of the advantages to consolidate into large organizations,” to quote Blockstream co-founder Gregory Maxwell; but it is also true that the blockchain is also perhaps the single most inefficient datastore ever devised.

Bitcoin’s blockchain, which soaks up a truly gargantuan amount of computational power, maxes out at torpid 7 transactions per second. This can be increased (by eg increasing the block size) but there’s no getting around the fact that blockchain transactions are still, fundamentally, enormously slower than–well–almost any alternative.

It’s probably past time for a concrete example. Think of email. Imagine a distributed email service, like Gmail or Yahoo! Mail: call it DMail. DMail’s actual data is encrypted and stored (with multiple redundancy) across the computers of all those who use it. (Bandwidth and storage will become cheap enough in Monegro’s 10-year horizon that this seems plausible.) Mail sent to or from a @dmail.com address is also processed by DMail’s client computers, on a round-robin basis.

So far so good — but can you imagine the throughput and bandwidth requirements of GMail or Yahoo! Mail? Millions of users an hour; billions of emails a day; terabytes upon terabytes of attachments. DMail’s hypothetical blockchain-based datastore will choke, roll over, and die, long long long before it scales to that size. There’s a reason we have the Stacks.

People say “the blockchain is the new database,” and to an extent that may be true, but blockchains are so slow and inefficient that we’ll need to partition applications such that blockchains only orchestrate ownership/identity/trust. Something else will have to do the vast majority of the decentralized work. But what?

(And that’s without even talking about the centralization of mining, which, it seems to me, is quickly becoming Bitcoin’s Achilles heel. More on that in a future post.)

Let me just fantasize a moment. Pie in the sky. A pipe dream. If only there was some other decentralized system out there. Something proven to succeed at Internet scale. Indeed, something which already occupies a significant percentage of all Internet bandwidth on certain occasions, such as, I don’t know, the release of a new Game of Thrones episode. If only there was something like that, and if only the people behind it were working on more generic and generally useful decentralized software.

Sigh. Oh well. A man can dream, right? No matter how unlikely and impossible that–

Hang on a minute.

It started with a simple question. What if more of the web worked the way BitTorrent does?”

Yes, indeed.

I’m as enthusiastic about blockchains as the next futurist, but they do have very real limits and weaknesses, especially when you start thinking about using them at Internet scale. It seems to me that if we really do want to decentralize (parts of) the Internet, blockchains won’t be enough; we need a whole other layer of scalable decentralized network(s). So keep a close eye on BitTorrent’s Maelstrom project. It just might, maybe, in some optimistic future, transform into the thermal exhaust port of the Stacks.