100% Decentralized Probably Isn’t Better

one of the many matts
7 min readSep 15, 2017

--

(and for very traditional, common-sense reasons)

TLDR; you don’t need a blockchain. If you do need a blockchain, not everything in your app needs to be decentralized. If everything in your app is decentralized, you should be creating something never-before-seen.

There exists a trend of taking every centralized service and fully decentralizing it, seemingly for the hell of it. But for a large set of cases, the 100% decentralized version of that service just doesn’t provide enough additional value to justify its existence.

Not to say there isn’t value in the “100% decentralized thing”, because there is, but that the value you get by “100% decentralizing thing” isn’t enough to revolutionize any market, for the vast majority of cases.

Simply put, 100% decentralized thing isn’t 10x better than centralized thing. If decentralization is a core part of the product, the best user-experience is generally a hybridly-decentralized thing , balancing the value-add and value-loss of decentralizing a product.

Does your product need to be decentralized?

To be honest, probably not, unless it needs to operate in a fully trustless environment, immune to censorship. Most products should probably focus on providing any sort of value to justify their existence, decentralized or not, and it’s much easier to do that when you don’t have to worry about the complications of decentralized technology.

Value-Adds and Losses of Decentralization

Again, you probably don’t need a blockchain. But there’re a few good attributes you get when you decentralize a service.

The philosophical gains: now your product is (potentially) “uncontrolled”; it exists without anyone’s approval or permission. And that’s pretty cool. But unless your product actually needs to exist outside of regulation and permissions, that’s all it is: pretty cool.

There’s the socialistic benefits: your uncontrolled system is actually controlled by the participants of the network and as the network creates value, it [generally] redistributes it to the participants. And that’s pretty cool. But with this decentralized control comes necessary discussion of crypto-economic motivations, game theory, punishing malevolent actors, governance, and more.

Capitalism in an uncontrolled marketplace means costs rapidly converge (and usually to near-at-cost). If you’re creating a storage startup, decentralizing your storage (see Storj, FileCoin) means participants in the storage network provide storage as cheaply as possible, or they’d be undercut by someone who could do it more cheaply.

The trustless environment that your product now operates in: participants in your service don’t necessarily need to trust the other person they interact with. Obviously this depends heavily on your product’s design. In the storage startup example, someone searching for data doesn’t have to trust that a particular person has stored their information, only that the network as a whole has stored it.

Losses

In general the user experience of decentralized services suffers as a side effect of it being decentralized.

Consensus in a trustless environment takes time (orders of magnitude more than consensus in a trusted environment), which adds delay and uncertainty to every interaction a user could have with the network.

When a service is decentralized, there’s generally a sliding scale between speed and security. A consensus mechanism that prioritizes speed is more vulnerable to network partitions and byzantine faults. A mechanism that prioritizes security will suffer from the time necessary to validate and order state changes.

Case Studies

Good: Databases

First, the higher-level concept of fully decentralizing a thing, but in a way that provides value by creating a concept that previously didn’t exist; Bitcoin. At a very (very) high level, Bitcoin is an implementation of a decentralized, distributed database. It takes the concept of a database and fully decentralizes it. It’s not faster. It’s not more resilient to network failures. It’s not more efficient at storage. But it operates in a completely trustless environment, which no other database could do at the time. The value-add of operating 100% trustlessly offsets the value-loss of it being slow and less efficient at storage, making it incredibly useful in that specific case.

Good: Computation

Ethereum extends bitcoin’s “distributed database” concept and adds computation; code can run on a decentralized network and store state on a blockchain, but the output of your code can be easily verified by any party in the system. Due to the properties of the blockchain representing state, this results in “applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third party interference”.

There are obviously quite a few downsides of fully decentralizing computation like this, primarily that it’s ludicrously expensive, compared to traditional computing. It costs 5–10 orders of magnitude more to add two numbers on Ethereum compared to any traditional computer.

If you’d like to understand Ethereum more, I’ve written about it here:

The Good and Bad: Value Exchange

Let’s look at exchanges. Centralized currency exchanges like GDAX, Poloniex, and Bittrex all operate in a similar manner; they just move numbers around in an internal database in response to some trading rules. Users must trust that they can add/subtract correctly and that the trading rules are actually followed.

Because the exchange’s internal systems operate in a completely trusted environment, there’s no need to double check that the addition operation was applied correctly; the cpu isn’t going to purposely disrupt your addition operation. This means transactions are fast; as fast as traditional atomic updates can be handled, which is generally very fast™.

Now let’s decentralize it as much as possible and put the orderbook and matching algorithm in an Ethereum smart contract. We’ve made huge strides in security (you no longer need to trust a company behind an exchange; you can trust in the code that’s running), but we’ve lost most of what makes an exchange valuable to traders. Matching is slower because it’s throttled by block time. Latency is high due to the p2p nature of the network. There’s enormous friction for market makers because it costs gas to add, cancel, and execute orders. Due to the latency and p2p communication, miner front-running and race conditions are possible. Why would we trust this system? And more importantly, why would any trader use this system?

Now consider the numerous hybrid solutions, where orderbook hosting (order discovery) and matching is done off-chain (or on a very specialized side-chain) but execution is handled, atomically, on-chain: 0x, Swap, EtherDelta, and many, many others. These solutions all have their unique approaches, but check most of the value-boxes that traders are looking for. The experience is similar to that of a centralized exchange, save for execution, which is still affected by the decentralized nature of the ethereum network. By operating with a hybrid centralized/decentralized model, they provide a more valuable balance of concerns.

The Good and Bad: Social Networking

Let’s look at reddit and other media content distributors that are traditionally centralized. They work pretty well, given how much time we universally spend on them. There’s no friction to adding or consuming content; it’s free and easy. There’s no friction with interacting with the network; it’s free and easy.

So let’s fully decentralize it and make Steemit. Alistair Roche concisely describes why Steemit is unnecessary:

Solving the “rewarding-creators-and-discoverers“ problem doesn’t require decentralisation. No one is going to shut down a version of Reddit that rewards people with money for being the first to discover good stuff. Steemit doesn’t need a blockchain, it needs better branding, design, copywriting, and most importantly the ability to iterate their product quickly. They need to be able to throw features at the funnel and see what converts. You know, that thing where you build a business on the internet.

We do have to trust that the org behind reddit (or facebook, or whatever) isn’t censoring our content which would be a Bad Thing™. The philosophical argument comes into play here, but a fully decentralized social network (like Leeroy) places the cost of the network on the user; it costs money to post content, follow users, upvote content, and otherwise interact with the network. This fully decentralized social network is valuable for philosophical reasons, but not because of increased user-value-add. Leeroy isn’t 10x better than Twitter, to most people. (ps, follow me on Leeroy)

Philosophically Good: Specifically Uncontrolled Systems

Cases where avoiding centralized regulation (hello governments!) can be valuable enough to offset the poorer user experience of a fully decentralized system exist as well. The socialistic tendencies of fully decentralized systems could also more equally distribute wealth to network-value-creators.

Systems like Uber and Airbnb are examples where 100% decentralization might provide enough of a value add to justify existence; an uncontrolled p2p system for matching riders and drivers can’t be shut down or regulated by a central authority. In a perfect world, the fees paid by either end of the market pay exclusively for the cost of the network; the vast majority of value transfer stays within the network because riders pay less, drivers make more, and no central authority collects a percentage off the top.

Finally

You probably don’t need a blockchain. Your first concern when building a product should be providing user value to justify its existence.

If part of the value of your product is that it operates in a decentralized manner, not all aspects of your product need to be decentralized. More often than not, a hybrid approach provides a much better user experience by meeting the value-add and value-loss of decentralization in the middle.

A fully decentralized product has innate philosophical value, but won’t be revolutionary unless it creates user-value that’s never been seen before.

Something something 👏 clap 👏 and subscribe to feed my internet point addiction.

--

--