9 Things I Learned Working In Blockchain for 24 months
After you read this you’ll know more than the average bear about blockchains.
What follows are 9 things I’ve learned while immersed in blockchain and ledger over the last two years. Consider it a primer for those embarking on blockchain endeavours. I will issue a caveat that much of my time has been spent on exploring enterprise opportunities as opposed to turning financial markets on their head. Put another way, I’ve been looking at ‘blockchain for the rest of us’.
For those with no time, here’s the BLUF: Lots of hype. Not many tangible solutions. But a foundation for opportunity exists. Add it to your innovation priority list.
And here we go…
1. Lots of Hype
Wow! Is there ever Hype (yes, that’s capitalized). Blockchains can cure world hunger. They can turn water into wine. They can make it impossible for anyone to ever lie again. They can level the playing field between governments and the common people, ushering in a new era of transparency and altruism that so far humans have been incapable of mustering. Blah. Blah. Blah. So yeah, there’s a lot of Hype.
“I think it’s a fascinating area to keep an eye out for but I think it’s being over-hyped right now,” — Peter Sondergaard, Gartner, via Fin24
However, please don’t let that dissuade you from investigating and learning. While we are still in the very early days of understanding the power of the technology, and achieving solid product/market fit, I do believe there will be some fundamental value propositions that are underpinned by blockchain.
Key Takeaway: The hype cycle is in full motion.
2. Blockchains are Just Hashes
The blocks that make up the blockchain happen to be mostly hashes (so you could argue we’re all dealing with hash chains not block chains). A hash is simply a fixed-size value that kind of looks like the alphabet threw up, but can be reliably reproduced for the same data set. They are handy to do tasks like obfuscate data, speed indexing, and many other uses. Hashes for blockchains consist of different varieties, but are usually strong enough algorithms that cannot be easily broken (such as SHA256). They usually have all kinds of esoteric properties like collision resistance and secondary pre-image resistance. None of that is really important to understand. All you need to know is you put some data into one of these algorithms, and out pops a hash that looks like this:
That’s a SHA256 of my name, ‘lee’, in base64 representation for anyone checking. Learn more on Wikipedia.
It doesn’t matter how much data, or the type of data, you put in, you’ll always get a fixed-size hash output that is the same for a given piece of input data.
Key Takeaway: The core building components are hashes, which have been around for a very, very long time.
3. Merkle Trees
The basis of many blockchains, or chains of hashes, is in fact a structure called the Merkle Tree. Contrary to blockchains which are relatively new, the Merkle Tree was actually patented by Ralph Merkle in the infamous year of 1979 (infamous only because it’s the year I was born ;-).
Merkle Trees, while sounding all mathematical, are quite simply structures that allow you to take a group of hashes and bind them together in an efficient way that allows you to represent the group with a single root hash, but prove all hashes in the original group helped contribute to the single root hash. Alongside collapsing a large set of hashes they also help to do efficient lookup for larger sets of data (which blockchains tend to be). A simple example to illustrate:
In the above illustration we see a merkle tree with a number of leaves. At the bottom are pairs of red leaves, which are individual hashes, and are simply concatenated together and hashed again. En example data entry is in blue. It’s hash (fictitiously represented as A1756FB32C) is concatenated with the red hash to it’s left, which creates the gray hash above it. The yellow dot at the top is a hash that’s made up of every hash below it.
Key Takeaway: Hashes get hashed together into merkle trees.
4. Train Cars (of Merkle Trees)
I kind of lied earlier. Blockchains are indeed a chain of hashes, but they become a bit more powerful because they are often a chain of Merkle Tree root hashes which represent a broad set of information or transactions beneath them. If you squinted, you could think of blockchains as a train, where each train car is a Merkle root that actually represents a large number of digital assets (aka passengers).
The only gotcha in this train metaphor is that in a blockchain each new block is also based on the previous block. So really what we’re talking about is starting at the caboose, and for each successive generation of passengers (aka kids) you create a new train car in front of the caboose. You couldn’t have created the new train car of kids without the folks in the caboose, and a simple DNA test will easily prove the ancestry. This train car DNA test is like the mathematical test you can perform on a hash to ensure it’s part of the right merkle tree root, and thus the right block in the blockchain.
Hrmm. This does seem to be getting a bit esoteric, but I hope that metaphor helps to explain what a rudimentary blockchain is, at least in spirit.
Key Takeaway: Merkle trees get linked and merkled together to form the larger structure of blockchains.
5. Enter the Ledger
Ok, so now we’ve got trains of merkle trees that are made of a bunch of hashes, but what’s a ledger, and is it any different? Short answer is yes, it’s different, but it’s partly made of hashes and merkle trees (kind of like Soilent Green is PEOPLE!). The key differentiator with a ledger is that there is a shared piece of code that is typically distributed among many anonymous parties that governs what gets added to an immutable database.
If we take a step back, the important aspects to touch on are distributed (shared), anonymous (sometimes), and immutable (almost always). Distributed so that no one central authority can control the outcome. Anonymous so that anyone can transact with anyone, in the same way you can with cash. And immutable to make it utterly impossible to rewrite history (except when it’s not*). While this sounds fairly simple, the implications are complex, and can often mean the removal of entire swaths of middle men (like central banks), which has a lot of people excited.
But don’t let that fool you. The technology is still nascent, there’s more plumbing than actual solutions at the moment, and in my experience thus far, many situations that seem like interesting problems to be solved with ledger can actually be solved with traditional solutions like secure multi-master databases or standard client-server web solutions.
The mental image I want you to have is this; imagine you crossed a typical grunge bar bouncer with a stuffy accountant, and replicated him anywhere people wanted to do transactions. You’d better believe people would do legit transactions and that they’re done correctly, and that’s exactly what the purpose of a ledger is. And if you try and change something, you’re gonna get pounded.
*It has thus been proven that ledgers are not really immutable, and if the “powers that be” decide to rewrite history for the greater good (or not good depending on your viewpoint) then it’s possible. In other words, they are still fallible to the human condition. See Ethereum.
Key Takeaway: Ledgers are distributed databases built on top of blockchains with shared code to govern the logic.
6. Smart Contracts & Consensus
OK, we’re really getting to the good stuff now! If we add another building block we come to Smart Contracts and the consensus algorithms which govern them. We touched earlier on the shared code that supports a ledger, and generally this shared code is referred to as a smart contract. It’s not necessarily a contract, though it can embody one, and is really about ensuring that the logic which agrees upon and commits transactions to the ledger is both secure and is the same code across all of the participating parties. In other words, the majority of nodes committing data must agree on what the contents of a block is, and this agreement is based on the same code executing across the nodes.
There’s varying paradigms for smart contracts, with some (Ethereum) claiming they have to run in virtual machines in their own coding language and others (Tendermint) supporting a more flexible and language agnostic approach. Regardless, in order to ensure transactions can be committed to the ledger a high degree of determinism needs to exist. Depending on the platform this may take a little or a lot of effort.
Lastly to note is that due to the required level of determinism smart contract code should be kept as small and focused as possible.
Key Takeaway: A smart contract is just a small, deterministic, piece of code that is shared between members of a ledger and governs what gets added.
A lot of the code that’s running blockchains, especially for the newer flavours that exist, is really, really new. It hasn’t been battle tested, it hasn’t run for (too many) years*, and it hasn’t supported millions of users. There’s definitely some room to grow.
*I’m clearly not talking about Bitcoin here, which has been running and stable for quite some time. Two points though; I’m of the opinion it can’t scale indefinitely, and Bitcoin isn’t that useful in solving the majority of enterprise use cases which require high speed and resource efficiency.
The next problem is scale, and while some blockchains have been around for a while now, none of them are mainstream enough to be exposed to the eventual demands placed on large scale global systems. There’s some significant maturing to do here, and I expect that the cart is going to fall off the track a few times as we tune for performance.
Speed is a tricky one, and generally we’re not sure how fast blockchains need to go. It is safe to say that they probably need to go a lot faster than they do now if they are to be used as broadly and intrinsically as some people are suggesting. Even Bitcoin would fall drastically behind if it tried to support global transaction volumes. But it really depends on how you use blockchains or ledgers, which information or transactions you need represented, and how quickly they need to be settled or verified, and all of this is largely dependent on the use case.
Some people have equated blockchain to the Internet. I’m not entirely sure if this is a reasonable comparison, but if we follow it then we’ve got quite a while before there’s any type of widespread and ubiquitous usage of blockchain. Again it’s also unclear to me whether blockchain is truly a better solution than traditional technologies for some problems. Innovation labs are going to be playing with things for a while.
It’s worth touching on energy impact briefly, and the key point here is that some of the blockchain frameworks are quite resource hungry. Bitcoin may be the worst, with every new block being added to bitcoin requiring more energy than it takes to run a typical US household for an entire day. Not all blockchains are this hungry, but I’m advocating for blockchains which are energy neutral, or at the very least energy efficient.
Key Takeaway: Not mature, limited scale, quite slow, long adoption curve, and often high energy costs to run.
8. Use Cases
Congratulations if you made it this far! As for use cases, there are either an unlimited amount, or very few, depending on who you talk to. I’m landing somewhere in the middle and believe there are some extremely valuable use cases, however it’s not a magic medicine pill that will solve all ills.
Some broad use cases where I believe Blockchain and Ledger may play important roles include:
Decentralized Digital Currencies
This one is obvious, and Bitcoin is one of the core use cases that has popularized Blockchains.
The fact that blockchains remove the middle man from transactions opens the door for efficient micro-transactions on the Internet (or for any connected IoT device – think automobile for one). Imagine a world where you could pay a fraction of a penny for reading an article like this, or watching a YouTube video, or playing a game. This delivers tangible value to the content creators without having to rely on all those annoying ads that get shoved in our face. Today that isn’t possible with existing payment processors due to processing fees that can range from $0.35 to $0.75 a transaction, making it effectively impossible to charge $0.01 (or less) for anything.
Proof of Existence
Blockchains provide a great mechanism to create a long-lived proof of existence. If you need to create proof that a digital document existed at a specific time, and was in possession by a specific entity, then blockchains offer an alternative mechanism to traditional PKI from a digital signature perspective. This may become particularly important as enterprises and governments go paperless (such as Estonia).
Data and Systems Integrity
As a follow-on to proof-of-existence, Blockchains also provide a strong integrity validation capability due to the underlying cryptographic hashes which comprise them. Not every situation that requires data integrity is a great fit, but I’ve seen a number of potential use cases in this category ranging from ensuring records in a database have not been tampered to validating virtual OS images before their first execution. Backing these digital assets with a Blockchain provides a strong second-factor integrity check that cannot be manipulated by your typical password toting admin.
Taking integrity one step further presents a very interesting proposition for blockchains: provenance. If blockchains provide an immutable record that contains contextual metadata then you can use blockchains to track the end-to-end flow of data. I believe this may become incredibly important as the trends of cloud computing, digitization and IoT play out on the worlds data. There’s some gnarly problems to solve, particularly when data flows between country borders and jurisdictions. My prediction is blockchain has a role to play here.
Stepping away from just financial transactions, Blockchains, and specifically Smart Contract running Ledgers, offer a mechanism to perform distributed consensus based transactions where any single party can’t overturn the apple cart. I’ve seen interesting use cases pop up in this area from insurance to healthcare to voting and beyond.
Key Takeaway: There are a ton of uses cases across a wide swath of verticals that are ripe for exploration. You might be interested in checking out some of the ones that IBM is currently cataloging.
9. What could go wrong?
There are a lot of people very excited about Blockchains and what they can do, however I’m not sure the future is all rosy.
At the moment we’re seeing a ton of activity in innovation labs, and while I absolutely encourage experimentation and learning, I have caught a glimpse or two of things being built with Blockchain just for the sake of using Blockchain. In my opinion this burns valuable capital that could go into systems or solutions that are truly innovative. My guidance is to be very critical in what you choose to prototype and test out. Get to failure fast (or put another way, get to validated learning fast).
Blockchains are an interesting double edged sword. On one hand they are supposed to let anyone transact with anyone anonymously, however they are also supposed to open up transparency to everything that is going on. The gloomy end times picture here is that everything we do get’s added to an immutable Blockchain, which governments monitor, and it becomes impossible to have discretion in any part of your life. I for one am for the government having the right level of visibility to keep us safe, however Blockchains present a very creepy possible future that I don’t like the feeling of. At all.
Black Markets & Undergrounds
Unfortunately I can’t skip over the fact that digital cryptocurrencies, and namely Bitcoin today, help to underpin a ton of black market activity. This is one of the reasons that Blockchain has a bad rap, although they aren’t all created equal. I’ve seen the way that Bitcoin can enable scammers and phishers to target people and organizations, extracting payment via Bitcoin to cut out any middle man and minimize traceability. Cryptocurrency doesn’t only pose a problem in the online world. It also enables the physical transfer of a massive amount of money on something as small us a USB drive, meaning that money can easily be moved around, and across borders, with minimal detection. This isn’t necessarily a show-stopper, as humans tend to find ways to exploit everything, so this is par for the course.
Rights and Legal Remedies
I believe we’ve got a lot of work to do in order to figure out where people’s rights land, and what legal remedies will exist to protect both people and corporations if things go sideways. Folks get all giddy at the idea of removing governments and banks (aka “the middlemen”), however if all centralized governance or control is removed then who is ultimately accountable when something goes wrong? Hard to say, and I’m not smart enough to know the answer, but I believe it could get messy.
I want to go back to the Internet analogy for a second. While the Internet is unquestionably important, and is the platform that underpins a lot of what we do today, it’s actually the applications that were created on top of the Internet that brought the technology into the limelight. The same thing needs to happen with blockchain. Until there’s solid product / market fit for the technology, where it’s solving tangible problems that people are willing to pay to solve, it’s going to remain a novelty. A novelty that is getting tons of interest, funding, and loads of innovative activity, but a novelty nonetheless.
I encourage you to educate yourself and experiment with the different blockchain stacks out there. But, and this is a big but, don’t get bamboozled by the shiny lights. Take a pragmatic approach to the problems you’re actually trying to solve, and determine yourself if blockchain can truly add value.
The good news is there is a lot of open source platforms popping up that allow you to tinker and experiment for free. Happy blockchaining :-)
All opinions (and artwork) are my own. If you’d like chew the fat about blockchain or ledger, or wax poetic about technology in general, please don’t hesitate to reach out!
If you found this post helpful I’d be thrilled if you clicked the ❤ button below! :-)