This is part of an on-going series of “Blockchain according to jono” in which I try to explain blockchains to both a non-technical and technical audience. This post describes some of the basic things blockchain enables.
I’m guessing if you’re reading this, you’ve heard the about things like “cryptocurrency”, “Bitcoin”, “Ethereum”, and “mining” and want to know more about this “magic money” business. Or you just like reading random nerd musings. Regardless, I aim to please. While I may get technical, I’m going to assume minimal technical background, so I’ll work from as close to square one as I can. Stop me if I’m going too fast.
The title of this particular post is a lie. I’m not even going to talk about blockchains in this post. Instead, I’ll explain what cryptocurrencies, as they were originally envisioned, can be used for. In my next posts, I’ll explain how they accomplish some of these feats (hint: it’s blockchain). I’ll also talk a bit about security, in case you plan on or do possess some digital currencies. In even later posts, I will depict a vision of the types of ecosystems that can be built on top of blockchains. I hope to leave most of you a little more knowledgeable and perhaps inspired to build things using blockchains. What I don’t intend to do in these blog posts is provide any investment advice. Disclosure: I do hold some digital currency.
Cryptocurrency. What is it good for?
For this blog post, I’ll stick to the value of traditional cryptocurrencies like Bitcoin and stay away from things like “smart contracts” in Ethereum. I’ll go into those in later blog posts.
The simplest cryptocurrencies revolve around tokens, the digital equivalent of a stamp, a casino chip, an IOU, or token used to play at a game arcade. These cryptocurrencies provide a way of sending tokens to anyone anywhere in the world much like you’d send an e-mail. The tokens themselves cannot be counterfeited and transactions are non-repudiable and tokens cannot be stolen en route/intercepted. This is all accomplished in a trustless system. ((This is not entirely true, but I’ll deal with this in a future blog post.)) Instead of representing “money” (to use the phrase loosely), as most people probably think of them, these tokens can represent anything. I’ll explain what the bolded phrases mean in a moment.
Other cryptocurrencies use the same underlying technology (known as the blockchain) to do so much more. In many ways, seeing what “first generation” blockchain software like Bitcoin could do is like the Greeks thinking and using electricity as nothing more than a curiosity, good for parlour tricks. Nowadays, we’re surrounded by everyday magic, so sending tokens around the world in this manner might seem humdrum, but in fact, it’s anything but.
In a future post, when we look at what can be accomplished with “second generation” blockchain software, you’ll see that a first generation software such as Bitcoin is like that old employee who is set in his ways, but no one will fire because he wrote the book on caring for your Selectric and, well, he’s been around practically forever. Meanwhile, second generation technology such as Ethereum is that equally-talented new recruit who isn’t afraid of technology and, despite her inexperience, can use technology to accomplish more than her predecessor.
Pre-blockchain digital cash/tokens
Before cryptocurrencies, there were two primary ways that people attempted to create digital cash and tokens. The first was a centralized (or semi-centralized) system; the second was decentralized “chaos”.
Banks are an example of part of a centralized system. If I deposit $20 cash into the bank, the bank controls my money; my trust in the bank means that I have faith that they will give me $20 back later when I ask for it. What the bank does when it receives my $20 is that somewhere on a computer, my account balance is increased by $20. If I decided to transfer $20 to pay my phone bill, the bank would deduct $20 from my account and credit the account of my phone provider by the same amount (probably less a fee). The phone provider can then take part of that $20 and pay one of its suppliers. If that supplier also happens to bank with the same institution, aside from my initial deposit of $20, no physical money has changed hands (the bank still has it in a vault somewhere).
If I have $20 in my account and attempt to spend $20 on my phone bill AND $20 on fancy Dijon ketchups, the bank would stop me from spending that same $20 in two places. It can do that because it has oversight over all my transactions.
If I then received a loan for $20, the bank can create money out of thin air (M2) by increasing my liabilities by $20 which I can then use to spend elsewhere. In the meantime, the bank has increased the amount of money it is owed by $20. I have to trust that the bank isn’t going to fraudulently change my account balances because there is one record keeper of note that is the arbiter of who has how much money: the bank.
Other centralized systems included things like gift cards: you could buy a gift card from a retailer which had a unique serial number. Each card had an associated balance. Using the card at the retailer would adjust the balance accordingly. Since gifts cards are generally only accepted at the issuing retailer, they are more akin to tokens that can be used at the store than they are to cash. But, again, these gift cards functioned via a centralized point for redeeming these digital tokens.
Decentralized systems were also in use for digital tokens. Prior to the blockchain, these tokens would have to be multi-use. For example, a coupon code used for getting a discount at a store. Because these coupon codes can be easily copied and sent to other people, without making the codes unique (as with gift card serial numbers), these codes can’t store value — that value could easily be stolen by copying.
Super secret gift card codes Code Amount of gift card PAK $5 DGH $4 JKK $3 ZJG $2 RKG $1 GUR $0
Imagine if retailers wrote a secret number on gift cards that indicated the amount of money remaining on the card. E.g., if they wrote “PAK” and it meant that there was $5 on the card. So here is what a card with $5 on it followed by spending $2 and then $3 and then becoming empty might have written on it:
PAK JKK GUR
Obviously, this system isn’t very good. In order to have unlimited spending power at the store, all one would have to do is buy a single gift card, note the code, and re-write that code onto the card whenever the card’s value is “exhausted” by spending.
PAK JKK PAK ZJG PAK …
Some software that limits the number of times it can be used uses a scheme like this. All you need to do to use the software forever is to restore the counter file after using it. Whoops. There were apparently also gift cards that did this (back when network connections to a centralized system were unfeasible), except the data was written in the magnetic strip. Tamper-resistent technology has made things better for the gift-card use case, though a dedicated enough hacker could get around this: given unlimited physical access to a system, that hacker can control the gift card. It’s law #3 of Microsoft’s Ten Immutable Laws of Security.
Enter the blockchain
The status quo for a long time was to either rely on centralized systems or untrustworthy decentralized systems. Then, an enabling technology known as “blockchain” entered the scene in 2008. In a future blog post, I’ll discuss how it works; here, I describe what it enables in cryptocurrencies like Bitcoin. It has a lot more potential than this, but I’ll have to save that for another day, too.
If these tokens can be redeemed for a certain amount of money, it’s like being able to send money to someone like you send an e-mail. “So what?” you might ask, “I can send money through an app on my phone.” Yes, you can. But do you know what’s going on behind the scenes? There’s a bank or two involved — and these banks have to trust each other. And then, of course, whoever developed the app you’re using has to set up a relationship with the bank. But what if you’re trying to send money to someone without a bank account? Companies like Western Union will take a large cut for that privilege. Cryptocurrencies allow anyone to create the monetary equivalent of an e-mail address and have people send money to that address. You don’t need an Internet connection to receive money. In fact, you don’t even need a computer to receive these tokens!
If you’re a small company trying to sell a product, right now, you probably need to give a company like Indiegogo or Kickstarter a cut of your revenue to process your credit card payments.((These sites have value in that they also provide much-needed visibility for many projects, too.)) But if you can post a digital address, not unlike an e-mail address, where people can send digital money to, you’re ready to start selling products!
When managed properly, cryptocurrency transactions can only be initiated by the owner of the cryptocurrency and cannot be manipulated after the fact. As a result, standard transactions are non-reversible (non-repudiable). As a seller of goods/services, you don’t need to worry about your customers later telling their credit card they didn’t receive your product or claiming that you billed them twice. As a customer, you don’t need to worry about merchants stealing your credit card information to buy other things or charing you twice. Retailers also don’t have to store/receive money on premises; cryptocurrency tokens cannot be intercepted which means people can buy goods at a store without the need for the tokens to pass through the hands of a cashier at a checkout counter. More on this in my next post. Say goodbye to time vaults and credit card database hacks.
And for everyone, there’s an added bonus with cryptocurrencies! Unlike physical money printed at a mint, cryptocurrencies are not subject to counterfeiting.
We’ve also been looking at cryptocurrencies strictly as money up to this point, but remember that tokens can represent anything. They could, in theory, represent a deed to a property, shares in a company, or a 10% off coupon for your next vehicle purchase. Spoiler alert: the idea that tokens can represent anything is going to play a key part in my upcoming blog posts on blockchains.
So, to recap, blockchains can be used to facilitate the transmission of digital tokens to anyone. These tokens can represent anything. Furthermore, they are generally used in a way that cannot be repudiated, cannot be counterfeited/duplicated and cannot be intercepted.
In my next blog post, I’ll explain what a blockchain is and how it is used to achieve the magical properties described above.