There’s a myth in the crypto-space that suggests that decentralization is a replacement for centralization. It’s not, it’s an alternative. It’s a layer. It opens up options and enables things previously impossible. This, I believe, is why so many people are frustrated by the “blockchain for X” solutions being thrown about. Without a clear use case that solves actual problems, decentralizing your app, doesn’t make sense.

And beyond that, decentralized apps should not be looking to kill centralized cloud computing. They should be looking to use those systems as a stepping stone toward greater user empowerment. What does that mean, exactly? Let’s take a look at an example using Graphite and Blockstack.

Graphite is a decentralized and encrypted productivity suite. It provides word processing, spreadsheet management, file storage, contact management, and more. Graphite uses Blockstack’s underlying technology to support this decentralization and encryption. What Graphite does not do is try to kill cloud-based centralized systems. Because of Blockstack’s infrastructure, Graphite users can select the storage provider of their choice. So, let’s take an example of a user choosing Dropbox as that provider. Dropbox is centralized. Dropbox does not solve any of the problems Graphite is trying to solve (user ownership of data, self sovereign identity, privacy, etc). But Dropbox also doesn’t care how a file uploaded to their service might look. That means if you have a PGP encrypted file or an RSA encrypted file or just some gibberish on a .txt file, Dropbox will still store it. This is where Graphite, Blockstack, and encryption come in.

Data stored through* Graphite is elliptic-curve encrypted client-side. This means the user owns their own encryption keys. Those keys are never accessible by Graphite or anyone else. When data is encrypted and then stored on a cloud provider that means the cloud provider cannot see that data. If, say, the NSA came to that cloud provider and asked them to reveal the contents of Sally’s files, and if, say, a cloud service like Microsoft said yes to such a request, the data they’d be turning over would be encrypted and could only be decrypted with the user’s private key. Since Dropbox or Microsoft or whoever it is doesn’t have that private key, the data cannot be decrypted.

Notice I said data is stored through Graphite? Graphite does not maintain a server or a database. Graphite doesn’t see or touch user data. It simply acts as the interface that allows users to create and manage that data.

As long as centralized services are interested more in providing a service and less in selling data, they are viable partners in enabling the existence and growth of decentralized apps. They win, decentralization wins, users win.

I didn’t mention data replication in this article, but just know that when you combine the above with replicated data, suddenly, you have true decentralization without having to write EVERYTHING to the blockchain.

If you’d like to learn more, I encourage you to check out Graphite.