Unless you’ve been living under a rock for the past year, you’ve probably heard the term “blockchain” uttered somewhere. If you’re in the software business you’ve probably heard of Ethereum, too. Heck, maybe you even learned how to invest your money in it — as its value stretched to new all-time highs this past December. Regardless of your experience, I’d like to take a minute to share my understanding of Ethereum, blockchain, and why they are important to the high-tech world we all live in. Let’s dive in!
The History of Blockchain
The concept of blockchain is not exactly that new; it was first conceived of in late 2008 and is the technology that powers Bitcoin — the first digital currency launched in early 2009. Since then, there have been hundreds of other digital currencies launched based on the same fundamental blockchain technology. They vary slightly, but fundamentally they’re based on the same idea. Only recently though have businesses started to realize the potential power of the blockchain, with startups ranging from using it to connect IOT devices, managing medical records, and international banking.
One of these startups, Ethereum, is unique in its ability to deliver a programmable blockchain through the use of smart contracts. Launched in 2015, Ethereum quickly grew to be the second most prominent blockchain — second only to Bitcoin. While Bitcoin could be considered the “gold standard” of digital currencies, Ethereum could easily be called the “gold standard” for utilitarian blockchains.
What is a Blockchain?
A blockchain is really nothing more than a sequence of “blocks,” or digital files containing data representing transactions. This transaction ledger is maintained by a group of servers running the specific blockchain implementation. Some blockchains, like Ethereum are open for anybody with enough resources to join, while others like Ripple are maintained on a private network.
An algorithm is able to verify the validity of the blockchain by computing a “hash” or unique signature derived from the entire sequence of blocks in the chain. Think of a hash as a digital fingerprint for some data. Thus, changing one block in the chain alters the signature of the entire blockchain. Many different nodes contain the entire blockchain, and attempting to corrupt previous blocks (think hackers) changes the signature and thus invalidates that node (all nodes need to agree on the signature). Hypothetically, if a hacker were able to take over enough nodes, there could be an issue with corrupting data — but this would be so monumentally difficult that it isn’t a realistic scenario.
What Are the Advantages?
The best description I’ve heard of blockchain fundamentally is as a “decentralized trust system” enabled by cryptography. When you go shopping on Amazon, there is a certificate used to encrypt that communication that you trust is secure. This security is promised by a trusted third party known as a certificate authority. While we rely on these third parties, they are by no means immune to being compromised and in turn jeopardizing the security of those who rely on them. With blockchain, there is no third party required. The blockchain network itself has the assurance of security built into it.
Another benefit of decentralization is that there is no central gatekeeper like Google or Facebook holding the keys to all of our information. While it’s possible that individual users could be hacked — likely due to their own carelessness — this in no way jeopardizes the rest of the community. Also consider in the era of net neutrality being in constant jeopardy, blockchains are not susceptible to the limitations an ISP might try to impose (unless every ISP on earth came to the same agreement to ban the technology — a highly improbable scenario).
One of the most common use-cases for this technology has been in international banking. Digital currencies built on blockchain tech are able to transfer money anywhere around the world much faster and more affordably than many traditional banks can.
Ethereum has implemented a feature called smart contracts, which allows developers to build programmable features into the Ethereum blockchain. The concept of a smart contract is pretty simple: it is a contract just like any — a loan, an employment agreement, etcetera — but it is also able to be programmed, making it “smart.” A simple example of a smart contract would be something like a vending machine or a lottery drawing. The advantage of such smart contracts is that they allow for the disbursement of funds based on a certain set of conditions being met within the program — a lottery winner is drawn or goods are delivered. This has great potential to solve a variety of real life logistical problems.
What are the Disadvantages?
One of the major limitations at this point for both Bitcoin and Ethereum — the two biggest implementations of blockchain — is the transaction rate. At the time of writing this, the transaction rate for Bitcoin is approximately 7 per second and Ethereum can handle about 15 per second. Consider that Paypal processes about 200 per second, and Visa processes about 2,000 per second and you can see this is a substantial limitation for both Bitcoin and Ethereum. The reason for this slowness is that all transactions must be processed in sequence and agreed upon by all nodes on the network. Many problems relating to computational speed have been solved by the ability to handle multiple requests at once (like multi-threading on a computer), but this is not possible since the sequence of transactions in a blockchain are tied to the signature of the chain. In other words, if two nodes had a different sequence of blocks, they wouldn’t agree on the hash signature that validates the blockchain.
This is not to say that either of these implementations cannot grow their transaction rate through further improvements in the future — but for now, it is a problem. However, this is not necessarily a problem inherent to blockchain in general, as other companies such as Ripple are capable of handling upwards of 1,500 per second (but they are also a privately operated blockchain, giving them more flexibility).
Another problem affecting the efficiency of blockchains such as Ethereum is the large amount of data they must maintain. At the time of writing this, the Ethereum blockchain is about 345 gigabytes, or roughly the size of the typical laptop’s hard drive. Since the next block is based on the entire history of previous blocks, a node must contain all 345 gigabytes of data in order to participate. This is a pretty high barrier for entry for most people who want to join the Ethereum network and with the data growing daily it will only become more limiting.
Security is also a concern. As with any nascent technology there are bound to be security holes and bugs while the technology evolves into a mature product. Blockchain is no exception to this rule, and there have been several major blunders and security breaches in the early stages. Unlike traditional centralized services, there is no administrator that can help recover your lost funds or fix your problem.
So Why Should I Care?
While there are clearly some very big problems left to solve for Ethereum and many blockchains in general, the technology itself is revolutionary in much the same way the internet itself was in the 90s and 00s. The fundamental difference here is that the central authorities that made the internet possible (registrars, ISPs, and other entities that provided trust and security) aren’t required. Blockchain democratizes this authority ensuring that the internet gatekeepers aren’t able to manipulate what we can access and what information we share. If this all sounds a little bit nebulous, you’re right: blockchains like Ethereum and Bitcoin are infants in technological terms — they’re not even what AOL was to the internet — it’s even more nascent than that. What the future holds for blockchain nobody can predict, but what we do know is the technology itself is so basic and revolutionary that it promises to change the way our world works for the better.
This article is the first in a forthcoming series on the subject of Ethereum smart contracts. In the next article, I will walk through how to build a simple smart contract on the Ethereum blockchain.