One of the most interesting aspects of blockchains is the emergence of ‘dApps’ or decentralized applications. The idea behind dApps is that just as the blockchain is a decentralized ledger, developers can build applications on top of that blockchain that are just as distributed and decentralized. The most commonly cited example of a dApp is the idea of a social network in which individual users own all their data, and are not at the whim of some centralized company which has sole control over how that data is used or who it is sold to. In practice, we are still in very early days of dApps. It is unclear which, if any, dApps will succeed and how this is all supposed to work. Nonetheless, if they work (and we can come up with a better name), dApps are one of those things that is possible to get very excited about.
Let’s walk through a hypothetical example to see how this could work. We will use social networking in this, but it could easily apply to many other common applications. Stripped down to its very basics, a social network like Facebook or LinkedIn, is just a big database. That database consists of a user’s profile, their posts, their links to other users, and a whole lot metadata to
track analyze the user’s behavior to better sell ads improve the user’s experience. Obviously, Facebook has a lot more to it then just the basic database, but at heart its all that data that drives the value.
As we have discussed (repeatedly) in this series, a blockchain is just another form of database. So in theory, it should be simple to store all that data in a blockchain-based database. The key component for all dApps is the emergence of distributed compute platforms. The best known of these is Ethereum, but there are many others. These are essentially blockchains with built-in programming interfaces. In Bitcoin, or the other blockchains, the software just keeps track of all the transactions. With Ethereum, developers can apply more sophisticated logic. The ‘miners’ for these perform the computation as well as updating the ledger. So someone could build a database on top of Ethereum (or one of the others) where the data is stored on the blockchain, and all the features – like connecting to friends – is built into the compute language.
Advocates of this approach would point out that the data could be owned by the users. Since no one controls the underlying database, users could have far greater control over how their data is used. For blockchain true-believers this idea has immense ideological appeal, since the founding ethos of this whole universe is the notion of distributing power away from centralized bodies.
That being said, there are some major caveats to the above scenario, we could put an asterisk next to every verb in the paragraph above. We will close by exploring these for the purpose of understanding why so few dApps have taken off to date, and guess a little bit about the future.
First, the whole thing depends on the underlying compute layer. These are all fairly new and immature. Even the ones, like Ethereum, that are up and running still have all the bugs and inconsistencies we would expect from any new programming environment. For dApp developers, this translates into greatly extended development timeframes. They have to debug the language and then debug their app. The problem here is a little larger because there is the real possibility that any (all) of the compute tokens could (will) go through major overhauls in the future, further adding uncertainty. The good news is that these problems will get solved as the whole industry matures and the very talented engineers in the space work through these problems, which as noted, are not unique to blockchains.
Second, as you would expect in the crypto world, nothing comes for free. Ethereum comes with a built-in currency, called Gas. We will not get into the details of all that here, but it is unclear who will pay for all of this. In theory users, but the number of people willing to pay for a social network is about as large as the San Francisco chapter of Trump 2020 Supporters. The developer could foot the bill, but then they would need a revenue model.
This of course opens the biggest can of worms. Everybody wants a decentralized social network, but such a thing requires more than just a clever database. It needs a business model, it needs a user interface, it needs developers to build it. As things stand today, there is no obvious way to accomplish this without some form of centralized entity. As with many things in the crypto world, it is clear that blockchains are not cure-alls or silver bullets, and in many cases they are just overkill for the given application. At the same time, one of the great things about the crypto world is that there are a lot of smart people strongly encouraged to rethink everything. So we would not claim that there will never be a decentralized social network, but someone is going to need genius-level inspiration to work this one out. Taking this a step further, we think this logic applies to every other type of dApp on the horizon. Many applications will never move to the blockchain, but many others will naturally lend themselves to one. As far as we can tell, no one is quite sure which apps will fall into which category. So for the time being, expect a lot of wild experimentation.
(This sounds simply, but there is a huge amount of complexity involved. We plan to explore this in more depth in a future post.)
For many, this is the most