What can blockchains do?
There are a lot of mechanisms that can be built into the way a blockchain works that help validate what’s happening on the network.
What network?
Who’s in and who’s out is defined by the software. A blockchain can be private or public. Private blockchains allow control over who validates blocks of records, and over who transacts on the network. By contrast, the Bitcoin blockchain is open to the public. Anyone who can figure out how to use it, can use it.
By the way, sometimes the term “private blockchain” is substituted by “permissioned blockchain”. Actually, some people have told me these are two different terms. If you know something about this, please leave a comment!
What’s happening?
Firstly, payments. Hello, bitcoin and altcoins!
Payments are possible because 1) bitcoin is an advancement in numerous fields, including computer science, finance, and economics, and 2) people accept that digital currency has value.
In the context of the history of money, I think about how it must have been for the average Jane when we invented a piece of plastic allowed you to pay for things by swiping it on a machine (credit cards). Digital currency puts it all on the machine, and with the exchanges and other apps, you can convert digital currency into fiat currency. Bitcoin exists on the blockchain, whereas your online bank account shows you a digital representation of physical cash (wherever it is/is not). There are some blockchain technologies like Corda that use the more traditional model of tracking balances rather than sending actual currency.
This is why bitcoin is hard to explain. Once you move away from the technical details about its digital existence, you are speaking in the abstract. I’m more used to this working the other way around (something exists in the physical world and then it gets digitized), which is part of why it’s so interesting.
The real value of money is interesting to think about from the end user’s perspective. A cafe takes your green piece of cotton with George Washington’s face on it, and gives you a cup of coffee in exchange. If each bill contained data about every transaction that came before it and you could only use it if it was specifically sent to your wallet, it would be more like bitcoin.
Other interesting ways that bitcoin moves money forward: there will only be 21 million bitcoin ever made, and it’s divisible down to 0.00000001 bitcoin (called a “satoshi”). Micro-payments unlock some interesting business models that were previously cost prohibitive. This unlocking depends on the cost of complying with regulations, which are in flux and emerging.
Applications that do all kinds of things beyond payments could use blockchains, too. We’ve seen this happening more since the recent invention of Ethereum, a decentralized computer processing platform that explores the possibilities of “smart contracts”. For example, there are apps that run transactions for crowdfunding endeavors, prediction markets, peer-to-peer insurance, and micro-payments for music and other content.
Basically think of anything where a bunch of parties need to be on the same page and transact with one another, and you can probably find a use case for blockchain technology. Whether that use case is worth building out and how to go about it are different questions. 🙂
A deeper look into the tech (from a non-engineer’s POV)
#hashing
I think that to understand blockchain tech, it’s helpful to think about some of the problems it’s solving. We said it that a blockchain is a digital database. What can go wrong with a database? Well, databases can get screwed up if we don’t know when things happen, or if things aren’t recorded in the right order. Blockchain has a cool way of handling this.
Firstly, each block contains a certain number of transactions and a “cryptographic hash” of the previous block.
A “hash” is like a fingerprint of a data set. We get a hash by applying a “hash function” to the data set. A hash function is a complex math problem that turns data into a string of characters. No matter the input you enter, you get a certain number of characters back out that is unique to that input. That means you could hash a graphic, a word document, or even a video. BUT, you probably can’t reconstruct the actual file. Instead, you’d check to see if it was the right one by running the hash function on the file again, and seeing if you get the same hash. How is this so? Because if you change just one little itty, bitty thing about the input data, it changes the whole hash. Try it!
A hash function only goes one-way. It’s infeasible to get back the input data from the hash (you’d have to try A LOT of different inputs). Every time you apply that function to the same data set, you’ll get the same hash.
Consensys, a blockchain venture production studio, has a nice in-depth explanation of what I’ve explained so far, if you’re looking for another take.
What makes a hash function cryptographic? Again, I think this is an area where there is general agreement about the principle that a cryptographic hash function is designed for security (e.g. changing one part of the input drastically changes the output rather than only slightly, which would be a problem because if two different inputs end up creating the same output one day, then things can fall apart). I haven’t found any definitive list of what differentiates hashes and cryptographic hashes – let me know if you do! 🙂
So, hashing can give you proof that the data existed in a certain state at a certain point in time.
Therefore, by including a cryptographic hash created from the previous block full of transactions into the next block, we can create a nicely ordered chain (a blockchain!) that solves the problem of 1) knowing when things happened, and 2) keeping them in the right order while 3) maintaining openness about who can participate.
An invention that gives us proof that data existed in a certain state at a certain point in time… We’ve spent a lot of time figuring out how to do this through other methods like notarization. See Federal Rules of Evidence for other ideas. 🙂
Cryptographic keys (no, it’s not the name of a stealthy dueling piano bar)
Public-private key (or asymmetric) cryptography is another way that blockchain technologies prevent things from getting screwed up, and allow for authentication among peers.
Let’s say your phone has a super secret password. No one can get in there and take your photos, for example, unless they have the super secret password. But, people can still send you photos because they have your phone number.
When your friend sends you a pic, you can’t open it unless you put in your super secret password. This is good for the sender because they know that you will be getting the photo they sent (unless you pulled a classic news anchor move and accidentally give the world your super secret password – don’t lose your keys!).
In this example, the super secret password is analogous to your “private key” and your phone number is analogous your “public key”. And when you put in your password to get in the photo, you’re “decrypting” the pic. Now, imagine that there’s a bunch of really complex math happening between each step of this process and… Hey, we just learned the basic dynamics of asymmetric cryptography! *high five*
People can send you cryptocurrency by sending it to your public key. You cannot spend crypto without your private key. Key management is a whole field.
Also, your public key can also be turned into a QR code (those black and white square things with all the dots). It would be cool if one day street artists start wheat-pasting these next to their work, so we could tip them for making sweet art…
High degrees of immutability
The default is that once a transaction is recorded on a blockchain, it’s on there. Pretty immutably. This is another one of the characteristics that can make blockchains superior to pre-existing technologies.
Yep, it’s like if you accidentally uploaded a terribly embarrassing selfie of you wearing a moose hat on LinkedIn and could never take back the fact that you did that. It’s permanent. Unless of course you can convince everyone on LinkedIn to use a new version of the site that doesn’t have that piece of the record on it, but that takes a lot of work. Same situation with blockchain, as we’ve seen with The DAO.
I emphasized fact above because files aren’t typically stored in blockchains. Blocks on the Bitcoin blockchain, for example, contain information about the transaction itself, as explained above. Apparently there are some JPGs on the blockchain, too, but at this time, extracting the file is more like going on a treasure hunt for multiple puzzles than trying to efficiently store a pic or make it available. It also really slows down the network. Instead, some of the apps and tech companies covered in this blog use blockchains to supplement their file sharing and content distribution platforms.
By default, Edit + Undo does not exist
So, value itself can be transferred on blockchains. By default, there’s a flat out no refund policy for bitcoin. Once you send it, it’s gone! Soon after the transaction is validated, the recipient will be able to access it with her keys. Efficient, and irrevocable.
Not to worry though; some of the user applications built on blockchains have built in ways to do refunds, or at least hold some transactions in escrow until other conditions are met.
The security and reliability of such applications might be a different story… Think Internet in the 1980s 😉