You’re certain to have heard of them, perhaps even traded in them. All the same, we think the recent rise to prominence of cryptocurrencies requires a little bit of background information. Just in case. Lucky for us, ETF Securities is on the job.
What is Blockchain?
Cryptocurrencies are almost always built on top of a distributed public ledger called the Blockchain. This ledger is a core part of crypto’s architecture. It is designed to maintain that the network stays decentralized, that is not controlled by any one central party.
Before getting into what the Blockchain is, it would be beneficial to start with how we got here in the first place. The Blockchain is – at a most basic level – a simple and powerful solution to a famous problem in Computer Science.
The Byzantine General Problem (BGP)
Imagine it’s the year 500 and you’re a General serving in the army of the Byzantine Empire. You command a division of the army and there are more Generals like you, each commanding their own division.
|
|
|
|
|
But alas, the city’s residents are putting up a good fight and refusing to surrender.
As a group, you have to decide what to do: do you attack the city or retreat? [Generals vote on whether or not to attack.] The most important thing is that attack will only work if all the Generals participate in it at the same time; if only half of the Generals lead an attack, it will not be successful.
Since communication can only be done via messenger, a messenger can also lie about the message received or send conflicting messages:
|
|
All Generals Attack = City Defeated |
Some Generals Attack = Generals Defeated |
|
|
Traitor general ruins consensus |
Traitor general ruins consensus |
The illustrations above show a small number of Generals and therefore a small number of messages (or communication channels) between them. With a small number of these links, we can already see a lot of potential problems. Imagine what happens as the number of Generals and messengers (the parties in the system) increase.
What do you do? How do you guarantee that you and your loyal General friends reach a majority agreement and that any traitor General can’t cause a problem?
This scenario, first proposed in a 1982 academic paper titled, “The Byzantine Generals Problem,” has been a long-standing issue in distributed systems, a field of computer science.
The creator of Bitcoin, a person, or persons, going by the pseudonym Satoshi Nakamoto, was the first to propose an elegant solution to this famous problem, through what they called a Blockchain.
Building Consensus
The Blockchain is simply a public database that has a record of every transaction in a system in chronological order. If the Generals were using such a method, it could look like something like a list of lines with such statements as:
-
General A told General B attack at 5pm
-
General B told General C attack at 6pm
-
General C told General D to retreat
and so on and so forth
|
|
|
Centralised |
Decentralised |
Distributed |
Nakamoto built a system where any user can download this public database (or ledger) of all transactions since the Bitcoin network started. There is no central record keeper – like a bank or a government -that controls this ledger. Rather, it is distributed across the world and anyone – including you or I – can download the Blockchain and see all the transactions that have ever happened from the very beginning.
We can do even more than that. We can write new entries in this Blockchain – to add new transactions – or we can verify that what others have written to the Blockchain is truthful and not forged. What is revolutionary about this is that the Blockchain allows a group of people spread across multiple geographies and perhaps distrustful of each other to reach a distributed consensus.
|
How does that actually happen? If anyone can download this Blockchain, how do we make sure that all these Blockchains are kept in sync and identical? |
|
We saw a traitor General get the message “Attack” but lie and say that the message was actually “Retreat”. How can we ensure that no malicious party falsely edits a previous transaction or message? |
|
We also saw a traitor General send two conflicting messages, simultaneously telling one General to “Attack” and another to “Retreat”. How does the Blockchain receive conflicting messages and realize which one is truthful and which one is false? How does it know which message to accept and which to ignore? |
For the mechanics of Blockchain we’ll need to talk about Bitcoin.
What is Bitcoin?
Bitcoin is like digital gold
Bitcoin is by far the largest and most popular crypto asset.
When talking about the Blockchain, we mentioned that its main function is to allow a group of people that may or may not know or trust each other to reach a distributed consensus on what the truth is. This solves the famous Byzantine Generals Problem, specifically what happens if a traitor General sends two conflicting messages – one to “attack” and another to “retreat” – to two different parties.
In order to accomplish this, the Blockchain – this public ledger of all transactions – has to be synced accurately. The way we accomplish that, to put it very simply, is by making it prohibitively expensive to cheat. It doesn’t pay to cheat. In fact, the system will financially reward you (you’ll make money!) That’s where bitcoin comes in.
For that, we have to talk about the mechanics of the Blockchain, specifically how new transactions are added to the ledger, in a process called “mining.” But to keep things simple let’s just think of these “miners” as bookkeepers.
Bitcoin simplified
The following is an oversimplification but should explain at a basic level how the Blockchain syncs all these transactions. In a simple bitcoin transaction, Adam sends Sarah 1 bitcoin, which should decrease the number of bitcoins in his wallet by 1 and increase the number of bitcoins by 1. As soon as he starts the transfer, the transaction will be broadcast across the network but not be validated yet.
What the bookkeepers (or “miners”) do is collect a bunch of un-validated transactions and group them into a “block”. They then check whether the sender of the funds has the correct amount and is able to send this transaction to the receiver. The miner that is able to announce this to the network Is the first to solve a really long math puzzle; only after finding the solution are they allowed to post this to the network. After that, other miners confirm that the solution is correct and double-check that the sender has enough money. That confirms the transactions in the block and the entire block is added to the ledger while miners move on to the next block, hence the name Blockchain.
In order to incentivize these miners, who have to use a lot of computer power (which uses a lot of electricity, which costs a lot of money) to solve the mathematical problem before announcing the solution to the network, the first miner who solves it gets rewarded. They specifically make 12.5 bitcoin, which are created from scratch and added to their wallet.
Because of the large amount of computing power required, miners are de-incentivized from cheating or forging records. Quite the opposite happens. They are incentivized – by being rewarded financially – to keep the system true and synced. The network needed a native currency to pay these miners with. That currency is bitcoin.
Bitcoin is simply the network’s currency used to pay miners who sync and validate the network.
And then there’s Ethereum.
What is Ethereum?
Ethereum is like a global computer
Ethereum is a platform to build decentralized applications.
One of the best things about the Blockchain is that it took out intermediaries and middlemen, allowing anyone to verify a transaction between two parties without requiring third parties. The Bitcoin Blockchain does this for transactions of bitcoin between two wallets using cryptographic digital signatures. But what if we wanted to use the Blockchain for other applications besides transferring money? Or what if we wanted to include more rules and logic with applications involving money? For these use cases, Ethereum was built.
Smart Contracts
A smart contract can be thought of more easily as a digital self-executing contract. Applications can be programmed such that if certain conditions are met, a certain end result will happen.
It is most useful in cases where human intervention is required today, resulting in a significant amount of time for claims.
Think about a basic insurance policy after a hurricane or earthquake. With a smart contract, we could program rules that specify, for example, that if an earthquake occurs with a magnitude higher than 6.5 on the Richter scale, the insurance company’s Ethereum wallet will immediately be used to send to your personal Ethereum wallet your insurance payout amount.
Given that it’s a computer program, we can of course be even more specific. We could very easily program such a program so that,
-
If the magnitude is higher than 6.5 on the Richter scale and your house is within 25 miles of the epicenter, you get paid 100% of the insurance payout amount.
-
If the magnitude is higher than 6.5 on the Richter scale and your house is within 50 miles of the epicenter, you get paid 40% of the insurance payout amount.
-
If the magnitude is higher than 6.5 on the Richter scale and your house is within 100 miles of the epicenter, you get paid 10% of insurance payout amount.
All of this can be executed in a completely decentralized way without any third parties or human interaction. This example would save the insurance company from having to staff humans on phones and computers to take these claims and they would save you time and money.
One can easily see an endless number of other alternative use cases or industries that would benefit from a faster, flawless, decentralized smart contract platform, including:
Finance
Mortgages, bonds, payments, settlements, insurance, and property records are all activities that require significant third parties and administrators today that could be replaced by smart contracts.
Example: a bond issuance that gets to maturity automatically disburses to bond holders’ wallets.
Fundraising
We saw the largest application of smart contracts starting in 2017 with companies selling tokens or equity in a decentralized and highly scalable way through initial coin offering (ICOs). The way it worked was very simple: if the buyer sent currency to a certain wallet powered by a smart contract, the contract would automatically disburse to him specific tokens in specific types or amounts.
Example: the ICOs used by companies and startups to raise money by issuing tokens
Identity
Identity theft is prevalent and a great use case for a trusted decentralized network. When a landlord needs to verify that you are who you say you are and that you have enough money to pay rent, they don’t actually need to get paper copies of your bank account and passport that can easily be stolen or lost. They just need to verify a certain set of conditions in a trusted manner. This is a perfect application for a smart contract.
Example: Mobile apps can remove the need for usernames/passwords that can be hacked or stolen, verifying your identity on the Blockchain in a private and safe way.
Government
Government can use a Blockchain to govern and regulate more effectively. Imagine audit functions that can be embedded logically in a smart contract, taking the need for third-party human auditors spending a significant amount of time auditing transactions manually.
Example: Title or property registration on the Blockchain. Once someone has the deed to the land, it’s public information and displayed on the Blockchain without tampering or fraud abilities.