Summary:
A lot of organizations/institutions could be described as "code plus resources plus trust".
This means that blockchains are going to eat them.
(Originally posted in May 2021 on a boring old non-Mirror blog.)
I recently quit my job as a software engineer at a big tech company. My plan for what to do next is, "Probably something involving blockchains." But I still have trouble explaining to my friends and family why blockchains are a big deal.
I feel like maybe I should start with the mundane uses of blockchains, the ones that are only going to remake a whole bunch of our civilization's existing institutions to be more efficient and reliable and transparent. This isn't the stuff that I'm most excited about, but it's still going to be massive, and it might be useful context for my next post about the really cool stuff.
Like I mentioned in my previous post, smart-contract blockchain (the most notable one being Ethereum) is a trustworthy global computing platform. That is, it's a computing platform that can run arbitrary code (including code that handles money and other valuable things) in a trustworthy way. (Yes, you need to trust in the fundamental design of the Ethereum platform; I'd still like to write a post on that sometime, but it's out of scope for this post.) Blockchains let you replace "I trust this company" or "I trust this government" with "I've read the code and I can see that it does what it's supposed to do" (or "various computer nerds who are unaffiliated with the code's developers have read it and say that they can see that it does what it's supposed to do").
This is going to transform a gigantic number of things, because it turns out that a lot of human organizations could be described as "code plus resources plus trust". There's some code that needs to run, it requires resources to run it (as everything does), and we need to be able to trust that the code will do what it's supposed to do. Often, the raison d'être of an organization is, "You can trust us to carry out this very straightforward task."
For example, writing a Bank Account Simulator program isn't hard. Imagine a programmer saying, "I've written some code that implements bank accounts: it keeps a big mapping from Account ID to Amount Of Money, and if you ask it to send $X from your account to your friend's account, it'll check to make sure your account's balance is at least X, subtract X from your account's balance, and add X to your friend's account's balance." He's probably correct in saying that his code works perfectly. But if he then tells you, "I've set up this code to run on a server in my basement, so now I'm a bank: feel free to store your money with me," of course you're not going to do that. The guy's code might work perfectly, but you don't trust him to be honest and secure. When you open an account at a real bank, the value that the bank adds isn't "this is a complex task that requires our expertise to carry out", it's "you can trust our institution to carry out this task securely and honestly."
Blockchains let us achieve trust in an alternative way. The code is open-source, and the platform can be trusted to execute the code faithfully; there's no need for an organization to exist in order for us to feel confident that the service will do what it's supposed to do.
(Take a look at the OpenZeppelin library's implementation of ERC-20 tokens. This library isn't a toy; it's one of the most popular libraries that is being used to do many real-world things on Ethereum. And it's not actually all that much more complicated than what I just described: there's a mapping called _balances, and a function called _transfer that basically just subtracts X from one number and adds X to another number. I'm not saying smart-contract development isn't fraught with peril – there's plenty to learn about security mistakes to watch out for – but still, writing a smart contract that can safely handle money is amazingly simple and straightforward compared to the hassle of creating an entire financial institution.)
So now there's a whole Decentralized Finance (DeFi) ecosystem popping up to do all sorts of financial services: exchanging, borrowing/lending, investing, etc. It's not ready yet for your grandma to use it, but it's not just a toy, either; DeFi is already developed enough that people have been willing to lock up billions of dollars worth of value in it.
Ethereum isn't the thing that replaces Uber drivers; it's the thing that replaces Uber. Drivers and passengers don't need a company in between them to coordinate their interaction (and take a cut of the money); they just need some fairly straightforward code.
(Using Ethereum does require you to pay a fee for each transaction – the computers that make up the Ethereum network require money to run, and so Ethereum has transaction fees baked into it, to compensate the people running those computers. And Ethereum transaction fees are notoriously high right now. But those fees should go way down after Ethereum finishes implementing its various scalability solutions. In the long run, Ethereum transaction fees should be much less than the cut that Uber-the-company is currently taking.)
Twitter doesn't seem too complicated either; it might not be especially hard to write a decentralized replacement for it. (We'd need a decentralized data-storage system to store all the tweets, but there are systems like Filecoin and Swarm that are aiming to handle that: anyone can provide hard drive space and earn some money in exchange.) A lot of people these days are upset about what they perceive to be bias and censorship coming from Twitter-the-company – and even if you're not upset about that, it still seems to me like it might be good to avoid having our global communication platform under the control of one particular corporation.
(Of course, Twitter is a toxic cesspool of hatred. I think that's at least partially due to its design: limiting posts to 280 characters biases conversations in the direction of impulsive anger. I'm hopeful that in the future we'll develop coordination tools that will allow us to coordinate a jump to some global discussion platform that doesn't bring out the worst in us. But that's out of scope for this post. Here I'm just saying that it's worth noticing that blockchains will allow us to build infrastructure like Twitter but without Twitter-the-company.)
So there are a lot of people in the crypto space who are super-excited about "decentralization", and a big part of that involves replacing corporations and governments ("centralized organizations") with open-source code that can be trusted to execute faithfully.
Notice that the point here isn't just that code is more efficient. Taking humans out of the loop also cuts out a lot of human bullshit. (I like humans, usually, most of the time, but I'm much less of a fan of large organizations, whether they're public or private.) Human organizations can go off the rails in a variety of ways: greed, bias, hubris, etc. (And this is especially true in areas where the organization has a monopoly and isn't faced with pressure from competition, which is often the case with governments and with corporations in some types of industries.) For example, if you're the kind of person who thinks our civilization is systemically racist, it might be reassuring to replace those racist institutions with code. ("I've read through the code for the lending-and-borrowing platform, and there's nothing in there that makes lending decisions based on the applicant's race.") If you're the kind of person who thinks all the fuss about systemic racism is overblown, it might be satisfying to take the wind out of the SJWs' sails by creating systems that are immune to those kinds of accusations.
Blockchains allow us to create infrastructure for our civilization that works in known, predictable ways that are open for anyone to examine. This infrastructure will still cost money to run (running an Ethereum node or providing hard drive space for Filecoin isn't free), and so it'll still cost money to use, but it ought to be cheaper and more reliable than the current system. And more importantly, it ought to be transparent: if you want to know how something in our civilization works, just read the code.
