Chris de la Iglesia
About Blog Github

You Don't Need a Fucking Blockchain

April 27 2022

Ok, clickbait title out of the way. Lets talk about blockchains.

A blockchain, put simply, is a way of building distributed consensus in a trustless system. It allows multiple entities (i.e. computers) to collaborate and do computations without needing to trust in either a central authority or in each other, as every computation must be verified before it is accepted. There are many ways of building this consensus (e.g. proof of work, proof of stake, etc) but ultimately blockchains are all about collaboration without trust.

This can be incredibly useful, and is necessary for some applications. For example, building a banking system typically requires trust, but with blockchains it is possible for many entities to collaborate on how much currency is in which account without needing to trust each other. Smart contracts generalize this further and allow entities to collaborate on any arbitrary computation.

However, not all applications require a blockchain, and in my opinion, most of them do not. Most applications simply do not require global consensus in order to operate. Take identity, for example. The only entities that need to collaborate are the user and the site the user is logging into. The user can easily create a single, decentralized identity with decades old technology: public keys. The user's public key uniquely identifies them, and only the user can authenticate with it because they are the only one with their private key. A blockchain simply does not need to be part of this transaction.

This approach can be extended massively by allowing other entities to sign off on that public key. Services such as social networks could link the user's account to their global identity by providing a signed document proving the user's public key is tied to a certain account, or users can do this on their own by providing a public cryptographic proof on their account. Users can link other public keys, such as blockchain credentials, to their global identity in such a way as well. For almost every use case, global, trustless consensus is not needed, and thus a blockchain is not needed. Hell, even Ethereum now allows you to log in using only your public/private keys.

Well then, you might ask, why are we running around logging in with email+password, or god forbid, Login with Facebook? Why aren't we logging into everywhere with public keys, if the technology is so old? Well, it's not because we didn't have blockchain technology before, but because decentralized identity was not the goal before. One of the most promising and new developments in recent years has been a renewed interest in building decentralized systems of all types. Many people are looking into building a system of decentralized identity and giving that control back to the users.

We are entering a new world with a new focus on giving users control over their data, their identity, and their systems. We are building distributed filesystems, distributed identity, and yes, blockchains. I think oftentimes we end up seeing only the blockchain technology due to the headlines and the financial investment, but distributed systems as a whole are taking off in a big, big way.