You’ve likely heard of cryptocurrency (ahem, Bitcoin), but what do you know about the underlying blockchain technology that it’s built on? If you’re researching coding bootcamps today, then it’s safe to say that blockchain will be a part of your job in some way during your lifetime. Brian Sweeney, a Blockchain Consultant for IBM, is designing a new blockchain curriculum for Hack Reactor and is giving Course Report readers the first look. Read on for a primer on blockchain (you don’t need to be a technical whiz to understand it) and learn why any good developer needs to know this technology.
What you need to know:
- Blockchain is a trustless database that is add-only and distributed
- While the first use case for blockchain was cryptocurrency, you’ll see the technology applied to supply chain management, food safety, contracts, voting, and more.
- Starting April 23rd, the Hack Reactor Remote Immersive and Remote Part Time will include blockchain curriculum; sign up for the SSP Prep Program to enroll.
What Is Blockchain?
What blockchain is and how it works
The most common definition for blockchain is “a distributed ledger system with immutable data add-only functionality.” To a non-technical person, that means absolutely nothing.
On a less technical level, blockchain is a trustless database. For most databases (and most use cases for blockchain), there needs to be some central organization that you trust and believe will maintain your data accurately. While you should fundamentally trust an organization, we all know that there are bad actors. Blockchain is cryptographically secure to ensure that nothing can be changed without being noticed.
Blockchain is add-only, which means that it’s easy to add information to the blockchain, but you can’t take out information. Blockchain is also distributed, which means that blockchains aren’t hosted in one location. For example, instead of Citibank having the financials for their customers stored in one giant server farm, it would be spread out between hundreds of computers that each have their own independent copies of the same data. You can compare your data to any of the other copies and they’ll be functionally identical.
The Origins of Blockchain
Is blockchain a new technology or is it just a buzzword right now?
Most people hear about blockchain in the context of Bitcoin and cryptocurrencies as the first implementations of blockchain technology. Digital currency had been around even before Bitcoin, but developers needed a central database to track all of the transactions. The first Bitcoin whitepaper was written in 2009 by its creator(s); blockchain as a general-use technology has been around for the past five or so years. It’s relatively new and has been coming into its own over the last two years.
How did you get interested in Blockchain? Take us on your journey from Hack Reactor graduate to IBM consultant.
Since I graduated from Hack Reactor, I’ve done a bit of everything: front-end, back-end, data visualization, contract work. Like many people, I got interested in blockchain because of cryptocurrencies like Bitcoin – trading, tracking, etc. I liked the idea of a trustless system that didn’t require belief in a government or central bank and was entirely regulated by math. Unsurprisingly, many millennials like myself don’t have tons of faith in the government and banks. In the US, it’s easy to trust a bank, but if you talk to someone in Greece, they’ll have a different opinion; there are days when you go to a bank in Greece and your money is not there.
A friend gave me a book about the underlying concepts of blockchain, and once I began to understand use cases beyond currencies, it clicked. It was no longer a toy that I was playing with, but rather a technology that I think will change the world and soon have its hands in everything.
I applied for the job at IBM after doing online courses in blockchain. I program on a daily basis, and also meet with clients to discuss how blockchain can help their businesses.
Uses + Disadvantages for Blockchain
You consult for IBM in financial markets, but what are other uses or applications for blockchain beyond cryptocurrency?
In the last three to four years, we’ve started to realize that you can use the same concepts that Bitcoin is using to do all sorts of things (that have absolutely nothing to do with money)!
One huge application is supply chain management. From the second a piece of asparagus gets picked out of the ground, to being bundled in a rubber band, to ending up in your salad at Sweetgreen; if you use the blockchain to keep track of that, then you can be 100% sure that you know where that piece of asparagus has been along the way. If someone gets sick from that salad, you can see exactly where it’s been and which farm it came from on which day. Plus, that system can be used by different actors in the supply chain. You don’t have to work within a vertically integrated system that controls everything from the farmer to Sweetgreen.
Other potential applications include identity control. Imagine a digital passport where if you input a certain phrase, someone can be 100% sure that you are you. That enables you to do things online like voting.
In a less first world example, imagine being able to use your digital identity as a refugee. Many refugees are escaping a war zone, so they’re not taking physical documents with them and can’t prove their identity. With a digital identity on the blockchain, you can prove who you are without a physical document.
What are the disadvantages to blockchain?
There are a lot of use cases, but in some instances, there are better ways to accomplish something than using the blockchain. Part of my job at IBM is to consult with companies that want to use blockchain. In some cases, they should just be using a database. If you use blockchain for anything and everything, then it can dilute the "brand."
One common argument against blockchain is that it requires a lot of energy to power the computing. That argument has more to do with how the Bitcoin protocol works (aka mining bitcoins aka how to create new bitcoins). New bitcoins are created by mining, and energy is consumed by machines that are helping to actively maintain the bitcoin ledger of transactions. This is a design feature of the bitcoin system itself, and is not necessary for every implementation of blockchain. For a vast majority of business use-cases in which blockchain improves a current system, energy use is a non-issue, since there is no mining used to maintain the system, and instead it is done by the various members of the blockchain network. Mining as a protocol is necessary in a lot of ways for bitcoin's implementation because the network exists between unknown and potentially untrustworthy actors. Without getting too technical, the cost of mining is essentially the cost of electricity and works as a way to prevent people from trying to game the system since it would cost them incredible amounts of money to cheat the system by creating fake transactions of undoing previous transactions. However in smaller networks where all participants are known to each other, the “cost” of cheating is that all the other members of the network would be able to see who it was that tried to game the system.
Aside from cryptocurrency, give us the pitch for a why a good software engineer should understand blockchain.
Even if you’re not going to work directly in a blockchain job, it’s going to be involved in your job in some way. Cryptocurrency is volatile and most people don’t understand what they’re investing in. But blockchain as a concept is happening, and will continue to be applied to new areas. Blockchain is like the Internet in 1994. It had been around and people were using it, but its full implementation hadn’t been thought of yet. And companies like IBM are already interested in it. For example, the team I’m on at IBM is new; I was the 30th person on our team and it will be over 200 people by the end of the year. Education will play a huge role in building up the skills to navigate Blockchain technology. You can be among the new generation to master Blockchain and add this competence to your skillset.
So many tech jobs will include blockchain – DevOps Engineer, Security Engineer, Systems Architect, Distributed Systems Developer, Blockchain Engineer – you name it.
Blockchain at Hack Reactor
How is Hack Reactor adding blockchain into their curriculum in 2018?
First, we’re hosting a free, 1.5 hour “What is Blockchain” (video below) workshop to introduce non-technical folks to blockchain. You’ll learn what blockchain is, what it can be used for, why you should care, and why it matters. I’m also working on a blockchain curriculum for our Hack Reactor Remote bootcamp, which will be more in-depth.
Are there any prerequisites for this workshop or can you be a total beginner? How experienced in coding do you need to be?
No, this will be a conceptual workshop. I might go over some programming terms, but I will explain them as I would to a beginner.
Tell us about the new blockchain curriculum for Hack Reactor Remote – what will it cover?
The curriculum will cover the basics of Cryptography, which will include hashing. Hashing is a one-way function. If I put a giant paragraph into the function, it will output a compressed string that is impossible to predict. You can’t go backward from that compressed string. That makes the blockchain immutable because the smallest change in input will completely change the output.
The April 23rd Hack Reactor Remote and Remote Part Time cohorts will be the first to include the Blockchain curriculum. To enroll in those cohorts, we recommend students prep with our Structured Study Program (SSP)..
What will students be able to actually build in that blockchain module?
During the blockchain module, students learn an actual implementation of a blockchain and will build a clone of Cryptokitties. It’s a cat-breeding game; you start by buying a cat with Etherium, and each cat has genetic properties (ie. blue eyes or small ears). The rarity of those genetic properties determines the value of your cat; when you breed cats, the resulting offspring have their own traits based on the parents' traits. The lineage of the parents is important, so you’ll be able to track the cryptokitties’ lineage on the blockchain.
What is jQuery: An Intro for Beginners
Should you learn jQuery? We look at the debate around jQuery and what jobs need jQuery.
What is Express? A Guide for Beginners
Git and GitHub: A Guide for Beginners
Turing School instructor David explains Git, GitHub, version control, and repositories for beginners