- What is this cryptocurrency hype after all?
Cryptocurrencies have boomed in 2017. If we used to talk about politics or the Kardashians during our Thanksgiving gathering, this past year many of us switched the topic to what seemed even hotter than politicians’ bloopers: cryptocurrencies.
Unfortunately, people recognize this bizarre domain just as the news described it (maybe we should change our source of information): a bubble that will eventually pop after the price had risen astronomically. Just to provide some context here, only Bitcoin grew more than 2,000% in 2017, from $900 to over $20,000.
In other words, if you had invested $1,000 at the beginning of 2017, at the end of the year you would have had more than $20,000. That is insane! A thing that has never happened before! People have every right to consider this space a bubble, that is not healthy growth whatsoever. Let’s not mention other coins which had even more spectacular growths (in the tens of thousands percentage) and the ICO craze which generated lots of controversy between entrepreneurs and governments.
An ICO (Initial Coin Offering) is similar to an IPO (Initial Public Offering) and means that when a company goes “public”, it starts to sell their own cryptocurrency just like a company sells stocks. Because the whole ecosystem is new, regulations are almost non-existent and people can found ICOs, avoiding most taxes and laws that classical companies are exposed to.
Let’s get past the price for a moment and see the reason behind all this hype. Cryptocurrencies are trying to solve a real issue here and have provided a potential resolution through the use of an innovative piece of technology called blockchain, to which I will come back a little bit later. Let’s understand the problems Bitcoin and other cryptocurrencies are trying to solve.
As some of you may know, the government of most countries have control over printing money. This may not be a serious problem until it becomes a problem (obviously, duh). Let me explain. In most countries, money is not backed by anything anymore. It used to be backed by gold, meaning that for every new dollar printed, there had to be the same value in physical gold. Since gold is a limited resource, people were assured that governments could not overprint money and thus destabilize the market. Printing more money leads to inflation. Controlled inflation is considered beneficial and is how most countries approach money printing. In the United States, the gold standard was eliminated in 1971 by president Nixon and represented possibly one of the most significant events in economy, also called the Nixon shock.
Now, inflation may not be so serious in the US but in countries such as Zimbabwe and Venezuela, money has become unusable because the governments are irresponsibly printing money. Hyperinflation in Zimbabwe has become so alarming that in 2008, the Zimbabwean dollar was losing half of its value DAILY. In other words, inflation was at about 98% every day so if someone had 100 Zimbabwean dollars on March 1st, that would be worth 50 dollars on the 2nd. What’s the point of saving money anymore, right?
Denominations of the Zimbabwean dollars increased so much that instead of owning 100 dollars, people owned hundreds of trillions of dollars in one banknote. In case anyone is still not convinced how bad the situation was, people were forced to carry money using wheelbarrows since a 100 dollar bill was not even worth a toothpick. Now, there are multiple countries in similar situations, although not at such a high scale.
Since money is only backed by people’s trust in the government, can we be sure that whoever we voted makes only right decisions? Should we trust anyone with such a big responsibility, given that they follow our interest in the first place? Time has proven that centralization of power is detrimental and as we can see, supreme power is prone to failure. Governments can print as much money as they want, they have no limit anymore and even though this is a rare case and laws exist in order to prevent this, it can still happen and has happened before.
The solution I am going to talk about in this article is blockchain technology and one of its implementation — cryptocurrencies. For now, understand that the blockchain is a digital ledger that stores transactions. Nothing more, nothing less. But what are these cryptocurrencies after all? In short, they are a form of digital cash. Even though there have been many attempts in the 90s to digitize currencies, all of them have failed. So how are cryptocurrencies different from the futile solutions of the past? Well, the most important feature is decentralization, or in other words splitting power between the users of the system. Also, there is a hard limit on most cryptocurrencies. In Bitcoin’s case, the limit is at 21 million coins, meaning that there is no way to “print” more than 21 million coins. Thus, we can say that cryptocurrencies are deflationary, in opposition to government money which is inflationary. There is a famous story on the Internet about the first real world Bitcoin payment. A developer paid 10,000 Bitcoin for 2 pizzas which back in 2010 were worth not more than $20. Now, that would be somewhere around $100 million.
Now let’s jump into a quick history lesson about the blockchain ecosystem, just to provide some context of how this space was created. Satoshi Nakamoto, the inventor of Bitcoin, created this digital coin in 2008 after the Great Recession during which the economy experienced a significant decline due to toxic mortgages and irresponsible risk taking by financial firms. However, he has never planned to create a currency. Instead, in his eyes, Bitcoin was meant to be a peer to peer electronic cash system. His vision was to remove the need of a third party that would manage transactions between parties (in most cases banks). Thus, he created this innovative protocol that would make it possible to almost instantly transfer this “token” from one user to another, just like people would transfer files or emails over the Internet.
As a side note, Satoshi chose to remain anonymous and we are still not sure if this is even his real name. There have been multiple attempts to expose his real identity and there are “suspects” who, however, denied any involvement with Bitcoin.
So far, we know that the main advantages of cryptocurrencies are decentralization, meaning that there is no need for a third party to manage transactions, which also means faster transaction times. Good, this is basically the main point, from a very high perspective. To mention some extra bonus points, the transactions are transparent in one way, while still anonymous in another. Weird, huh? Let me explain. Everyone can see every transaction since the first appearance of a cryptocurrency. We can see who sent how much of one coin and to whom. This explains the transparency. However, the parties involved in a transaction are represented by a string of random numbers and letters (not really random but the pattern is out of the scope of this article). For example, a Bitcoin address can look like this: 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2. This doesn’t tell us much about the physical person who owns this address, and this is where the anonymity comes in. Unless we know who has what address, it is almost impossible to trace a transaction to a person. Besides that, everyone can just create a new address every time they want to transfer money, making it even more “private”. Another extra bonus point is the multitude of different use cases of blockchain technology, besides cryptocurrencies. As mentioned before, we can implement this decentralization principle in many domains and completely remove the trust in a third party. For example, some ICOs are trying to digitize assets such as cars and houses. Who needs notaries after all, right?
We should also talk a little about how the blockchain and cryptocurrencies work, since they are a piece of technology running on a computer. We’ll start by exploring the “classical” implementation of a blockchain, using Bitcoin as an example. First of all, we need to understand that every address has a public key and a private key. This is the base of public key cryptography nowadays and this is how secure data transfer works. A public key is simply a public address, a thing everyone can see (think about it like your mailbox, everyone can put things inside). However, the private key is meant to be kept secret. No one besides the owner should have access to it because with this key, any information sent to the owner can be decrypted. However, without this key, the information is useless and is just a string of indecipherable letters and numbers. Think about this as the key to your mailbox, given that nobody can just force their way into the mailbox using hammer or other brute force methods. This being said, this is what a part of a blockchain looks like:
Let’s understand what is going on here. The blockchain is composed of multiple blocks (hence the name). Every block is linked to the previous block, forming a list. The first block, however, is the only exception. Since it has no preceding block to point to, this block is a “special”, preprogrammed block called the Genesis Block. By preprogrammed I mean that all the details in this block are specified by the programmer of the blockchain and basically represent a starting point to which the next block can tether to. Here is Bitcoin’s Genesis Block:
These are the details that compose a block. The first field of a block is the Height. This is a value that represents the number of preceding blocks, in this case 0 since the Genesis Block is the first in the blockchain. As you can notice, the Previous Block field of the Genesis Block is a string of zeros, which also confirms that the block we are looking at is indeed the first. I will skip the fields which contain the long strings such as the Hash, Next Blocks and Merkle Root for a moment to quickly mention the not so important fields. The Time field holds the time-stamp when the block was published, the Difficulty is a number that represents how hard it was to discover a block through a process called mining (we’ll get there in a sec), the Bits is dependent on the difficulty, the Number Of Transactions is the number of transactions that have been encapsulated in this specific block, the next two fields represent details about the transactions value, the Size is the number of bytes that the block occupies on a computer, the Nonce is a number used to adjust the difficulty, the Block Reward is the “prize” given to whoever discovers this block, and finally, the Transaction Fees field represents the amount of Bitcoin spent on fees after sending a transaction. Now let’s get back to those scary 3 fields.
Let’s talk about hashes woohoo! A hash is simply the output a function, just like in math. You use some data as an input and get some other data as an output. That’s all it is! The function f(x) = x+3 is a hashing function for example. Using this function, the hash of 4 is 7. However, this is a pretty useless function in the case of cryptocurrencies.
Why do we need hashing, you may ask. Good question! It has to do with security. Hashing is used for “masking” sensitive data everywhere. This is how your password is stored in a database — as a hash. Just think about keeping a password as is. In case someone breaks into the system, they suddenly have access to every password. TERRIBLE! So, in order to prevent this, we use hashing to transform meaningful data into apparently meaningless data. Coming back to our password example, the system only needs to compare if the user-inputted password is the same as the one stored in the database. In order to do this, the application hashes the user-inputted password and then compares it to what is already stored. Consistency is extremely important here since if we get different hashes for the same password, the hashing function is useless because it won’t certify anything. Also, we need a good enough function so that we cannot get the input if we know the output. Using our function as an example again, if we know the result is 7, we can just subtract 3 and reverse the hash, getting the input back and thus the sensitive data. Instead, cryptcurrencies use more complicated hash functions such as SHA-2, X13 and Ethash. A SHA-256 hash, included in SHA-2’s family, may look similar to this: 5a3ecc3d8eea238dfe523ebf64515fda88345c7ba6d7ee4e773a2a8601b7716e. This is, in fact, the hash of the string “Cryptography is cool!”. You can use this website to play with hashing on SHA-256.
By using a secure hashing algorithm, we can make sure that even though we know the output of the hashing function, and the hashing function itself (the rule we are following to get the output), finding the input is extremely hard and can only be achieved by trial and error. Thus, the only option we have so far (until the commercialization of quantum computers) is hashing a string and comparing it to the output. So on and so forth — very tedious indeed.
Coming back to the remaining 3 fields in a block, Hash, Next Blocks and Merkle Root, one important thing we all need to know is that they use some form of hashing to condense lots of data into a single output. The Merkle Root for example, takes the transactions in a block as input and outputs a hash. This not only saves a lot of space but also secures the system. The reason why the blockchain comes in the form of a list, is that a block points to a previous block and is pointed at from the next block. Every block also stores the hash of the neighbor blocks and the hashes must match character by character. Playing with the website I mentioned before, try changing even one character. Guess what, you get an exactly different hash! This is how the blockchain makes sure that nobody can modify any data that has already been published. In case anybody wants to change something, they also need to change all the following blocks which is impossible for a single computer. Actually, in order to do this, someone would need to have 51% of the hashing power in the network, which trust me, is an insane number. You can read more about the 51% attack here.
Now that we mentioned about hashing and possible attacks, we need to talk about mining, which you may have heard about (although possibly in a different context). To make sure that the transactions are valid and, for example, no one tries to spend money they don’t have, the blockchain uses some form of validation, which is done by the participants of the system. In Bitcoin, mining means constantly hashing blocks until a valid block that satisfies a mathematical condition is met. We could ideally eliminate the need of mining since it consumes alarmingly high amounts of energy by using trial and error to find the right hash (just like we talked about previously). People are motivated to mine because the first computer to find a valid hash gets rewarded. The only reason we might need mining is that, if people compete for a prize, we can be almost sure that no one can out-hash the system by themselves. In other words, the hashing power of one individual must be less than the hashing power of everyone else combined. Thus, following this reasoning, nobody can approve bogus transactions unless they can corrupt 51% of the network. Mining rewards incentivize users to remain fair and punish fraudulent transactions.
The mining process is called Proof of Work. One alternative (safer for the environment) is called Proof of Stake which is a newer principle. Here, instead of wasting your computer power to solve cryptographic puzzles (hashing blocks until you find a valid hash), the participants bet some of their money on correct transactions. In case a transaction is deemed malicious (spending more than the sender has for example), the better loses their money. Otherwise, they get rewarded for being fair. Thus, it is in everyone’s best interest to approve only correct transactions. Proof of Stake is starting to get adopted more and more by new coins, and variations of this consensus algorithm such as the Delegated Byzantine Fault Tolerance used by NEO (another popular blockchain) improves the security of the network from 51% to 66% and permits faster transactions — about 10,000 of them per second, compared to Proof of Work algorithms which are hundreds of times slower. Just to recap, here is a nice representation of how a transaction is published on the blockchain:
Ok, now that we have a basic understanding (I hope) of the blockchain, we should talk about the apparition of various “modified” implementations of this technology. Some of you may have heard about Ethereum. It is a very popular coin, currently valued at a whooping $88 billion in market cap, second after Bitcoin. Ethereum was launched in the summer of 2015 and completely changed the direction of the cryptocurrencies from stores of value to decentralized applications (also called DApps). In short, Ethereum lets people build their own blockchain applications, along with all the advantages we have talked about, on Ethereum’s blockchain. This facilitates an extremely quick and easy (well, at least easier than building everything from scratch) method of decentralizing computer software. Applications that provide secure medical records or direct payments to musicians who sell their art online have appeared. Even more ambitious solutions such as machine to machine communication (think self-driving cars) inside a secure network have emerged. There are really infinite opportunities now.
Ethereum also introduced the notion of smart contracts which permit the execution of user-written code on the blockchain. This innovation is what led to the ICO craze in 2017. People realized that it has become way easier to build a decentralized applications and have taken advantage of this. Unfortunately, scammers couldn’t stay away and some malevolent ICOs released some applications with the intent of just stealing people’s money through crowd-funding. Unfortunately again, because some who do not really understand this space and just want to become rich over night actually bought some of these coins in the incipient stage, the reputation of cryptocurrencies had to suffer a little because people lost money. Learn your lesson guys, invest responsibly.
The last section I am going to talk about in this article is a little bit esoteric and involves some very cool information, especially for my tech-savvy readers. Although I strongly recommend that everyone read this section, it is not mandatory whatsoever for a basic understanding of blockchain and cryptocurrencies.
Throughout the years, different implementations of the blockchain have been proposed (as I have mentioned before). These have been proven to bring increased performance to the network with little to no drawbacks. The constant innovation of the space is yet another proof that blockchain technology is here to stay and new improvements that solve scalability issues are continuously populating the space. Thus, there have been “patches” to blockchains, also called forks. These forks represent a deviation in the default software that the blockchain runs on, and is usually triggered by a major software update or when the community of developers do not agree on the needs of the network anymore. In the first case, the fork is called a soft fork and does not force the users to move to another network or even update their local version of the blockchain. Here, the two blockchains can coexist. A recent soft fork of Bitcoin’s blockchain was SegWit (Segregated Witness), in which we solve some scalability issues by reducing block sizes and moving the signatures part of the block outside of the block.
In the second case, when the community splits, a hard fork happens. This usually means that the original and the forked blockchains live independently and no longer recognize a common root. This, in fact, usually creates 2 different coins. In the case of Bitcoin, for example, some recent hard forks include Bitcoin Cash and Bitcoin Gold. Bitcoin Cash appeared in late summer 2017, when the community couldn’t agree on a single solution for the scalability problems. Thus, some developers of the Bitcoin network chose to implement SegWit as a soft fork, and the others chose to extend the block size to 8MB, hard forking the blockchain.
Bitcoin is not really that fast anymore. Verification times can last even days, a fact which definitely contravenes Bitcoin’s purpose. Also, because every transaction needs to be verified by a miner, miners usually choose the transactions that pay the highest fees in order to get higher rewards. Just think about paying for a coffee with Bitcoin; it is not viable now, unfortunately, at least not with Bitcoin. You would either pay more on fees that on the actual coffee or wait days for your transaction to get published on the blockchain. However, Bitcoin proposed a solution called the Lightning Network, which is currently in testing. In short, the Lightning Network creates an off-chain channel that can instantly transfer Bitcoin between parties. All these micro-transactions get bundled and published only as a minimum number of transactions on the blockchain.
Besides Bitcoin, Ethereum is also working on solving the scalability problems. The Ethereum developers are currently working on solutions, similar to Bitcoin’s Lightning Network, such as the Raiden Network and the Plasma protocol. The latter involves the concept of blockchains inside blockchains. Pretty cool huh? In short, the main blockchain can be represented as a tree, hierarchically. Thus, we can simply skip the blockchains that do not economically impact us.
Other coins such as RaiBlocks (now called Nano) and IOTA have come with completely different approaches to these scalability problems, using different data structures for their blockchain. These two in particular, instead of representing transactions as a linked list, they use a special type of graph called DAG. Nano introduced the idea of parallel blockchains, also a form of the DAG, that link to each other using sending and receiving blocks. Every user has their own blockchain and can refer other’s blockchains depending on each transaction.
IOTA on the other hand, is meant for machine to machine communication inside the Internet of Things. With this evolving concept, we need fast and secure transactions and data transfer between “smart” devices that can interact with each other. One use case for IOTA can be autonomous delivery of products by drones, including the automatic payment for the items. IOTA is also based on a DAG, called the Tangle, and guarantees a scalable network. In short, for every transaction made, a user must verify other two unverified transactions. This not only implies short verification times (since we don’t need to verify more than two transactions) but also the complete removal of transaction fees. Help others to help yourself! Pretty cool, huh?
The whole ecosystem is fascinating and I truly believe it is not just a bubble, as some people call it. This technology has potential to disrupt the classical methods of transfer between people, be that money, data or any other form of documentation. There is definitely much more to come from both technological and economical perspectives.
If you’ve made it this far, I’d like to thank you for reading. I hope I explained things well enough so that people who did not know anything about cryptocurrencies and the blockchain now have a basic understanding, and those who were somehow familiar with the space are now even more intrigued. After all, there is a real reason to be hyped about this ecosystem — evolution.
- Date of publication:
- Tue, 02/13/2018 - 19:09
Click on the link - it will be copied to clipboard