Blockchain and cryptography
Unlike quantum computing, Blockchain has had a relatively short history. If quantum computing is the Mo Farah of emerging technologies, Blockchain is the Usain Bolt. Several Blockchain properties have their roots in cryptography, and it is essential to understand some of the terminologies in order to be able to enjoy the rest of the chapter.
It is important to understand how Blockchain depends on cryptography. This would help us in subsequent chapters to understand how Blockchain and quantum computing could potentially collide in future. A detailed, yet simplified, description of some key terms of Blockchain and cryptography are as follows:
Hashing
Hashing is a process where a collection of data is input into a function to get a fixed length string as an output – called a hash value. We use them every day. When you create an email ID with a password, the password goes through a hash function, a unique string is created, and this is stored in the database of the email provider. When you try to log in again, the password entered is put through the hashing algorithm, and the resulting string is matched with the string stored in the data base of the email provider. If they match, you get to access your email.
Figure 4: An illustration of the transaction process for Bitcoin. Source: https://bitcoin.org/bitcoin.pdf
The bitcoin hash
The bitcoin system uses a function called Hashcash. The Hashcash proof of work algorithm was invented in 1997 by Adam Back. The bitcoin hash uses two additional parameters – a nonce, and a counter. The nonce is just a random number that is added to the collection of data before it gets fed into the hashing function. So, the hash created is a combination of the previous hash, the new transaction, and a nonce. The bitcoin system requires the hash value to start with a certain number of zeros; the challenge of identifying the right hash value increases exponentially as the number of zeros increases. The counter parameter of the Hashcash function is used to record increments until the right hash value is arrived at.
Mining a bitcoin
The nodes in a bitcoin network work hard to find the hash value that has the correct number of zeros. They use different nonces to generate hashes, until the right hash is generated. This exercise takes a lot of computing power, and when the right hash value is found, the node that has achieved that will be rewarded bitcoins for identifying the right nonce.
Determining the nonce that, when put through the hash function, results in a specific hash value within a difficulty level is called mining. The difficulty level increases as the number of zeros increases. Mining bitcoins has become harder over the years as more computing power is required to determine the nonce. There are only 21 million bitcoins to ever be produced, and at the time of writing this book, about 17.5 million bitcoins have been mined. The reward to mine a block is at 12.50 bitcoins, and there are about 144 blocks mined per day. There are 65,000 more blocks to be mined before the mining reward halves again to 6.25 bitcoins.
A block
A block is just a group of transactions validated together. If a bunch of transactions are not able to make it into a block in time, they get moved into the next block. The number of bitcoins that are rewarded for mining a block started at 50 and is halved with every 210,000 blocks mined.
Proof of work
The term proof of work was coined by Markus Jakobsson and Ari Juels in a document published in 1999. Proof of work was used in the bitcoin system to ensure that transactions are validated through sheer computing power. After a chain of blocks has been established through this method, to hack through the block would require an immense amount of computing power too.
Also, in a proof of work system, the processing power that a node has decides the control the node has over the network. For example, in the bitcoin network, one CPU is equivalent to a vote, which can be exercised at the time of decision making.
Transactions
New transactions are broadcast to all nodes for validation. Transactions are collected into blocks and nodes are busy finding a proof of work for their blocks. When a node finds the proof of work, it broadcasts the block to all nodes that accept the block only if all transaction in it are valid. The acceptance of the block results in the network starting to work on new blocks.
Hacking a block means a new nonce needed to be identified that solved the work of not just one miner, but of all subsequent miners too. Also, when there are multiple chains of blocks, the longest chain of blocks, in terms of the amount of computing power required to create them, is accepted by the network.
Several of these concepts are quite fundamental to understanding how Blockchain networks work, and you should now be able to approach the topic of Blockchain with greater confidence. With that said, we'll now discuss another key concept of Blockchain: utility and security tokens. Understanding the differences between a security and a utility token has recently proven to be a conundrum for the global Blockchain community.
Utility versus security token
As solutions based on Blockchain started raising capital, they were broadly classified into two buckets – utility tokens or security tokens. A utility token is like loyalty points or digital coupons needed to use an application. Loosely, they are used for distributing profits (or dividends) when a firm makes money.
On the other hand, a security token derives its value from an underlying asset. For example, a real estate fund could be tokenized, and the token can be traded. The value of the token is derived from the value of the real estate fund. In the same way, firms raising capital can issue tokens and investors would get a share of the company. This is effectively owning equity in the company and is classified as a security token.
While I have made it sound like utility and security tokens are mutually exclusive concepts, they are often not. For instance, in the case of Ether (Ethereum's token), it is more of a utility than a security as the token is used across the ecosystem in applications and largely derives its value from Ether's demand. The SEC has developed a simple methodology to identify a token as a security, as security tokens fall under their regulatory umbrella. It's called the Howey test.
The Howey test gets its name from a Supreme court decision in 1946: SEC v W.J. Howey Co. Howey Co was offering service contracts for producing, harvesting, and marketing orange crops in Lake County, Florida. These contracts were sold to tourists who stayed at a hotel that was owned by Howey Co. The company sold land and service contracts to these visitors. The court was asked whether the land purchase plus the service contract created an investment contract. The court agreed, and the Howey test was born.
As per the Howey test, a transaction would be an investment contract (and therefore a security) if:
- It is an investment of money
- There is an expectation of profits from the investment
- The investment of money is in a common enterprise
- Any profit comes from the efforts of a promoter or third party
Let's take the Ethereum crowdsale in 2014 as an example. Money was invested (albeit in bitcoins) – and the investment was made by at least a few with a view that the tokens would increase in value over a period, and they could cash out at a profit. With the Ethereum crowdsale, the capital was pooled by investors in a scheme, and that is viewed as common enterprise by the SEC. And the value increase in Ether was expected to happen through the work of Vitalik and company. Therefore, Ether should be a security, as per the Howey test.
The way the Ethereum crowdsale happened in 2014, it is easy to categorize it as a security token. However, Ethereum is now the oxygen of a big community of applications. As a result, we can say that Ether is an example of a token, which initially raised capital like a security, but due to the way the firm and the technology have evolved, it is more of a utility today. Ethereum is decentralized due to the community it has and no longer just thrives on the initial founders of the firm.
Recently, I was part of a round table discussing the challenge in categorizing tokens as utility or security. I would describe it as a progress bar; at one end of it is the security token, and at the other end is the utility token. Depending on how the token derives it value and how it is used by the community, it would move closer to one end of the progress bar or another. Security vs utility shouldn't be seen as binary states of tokens.
We have discussed the background of quantum computers and touched upon some interesting Blockchain concepts too. The idea is to use these basic ideas as the building blocks before moving onto real-world applications across industries in future chapters. The cryptographic element is fundamental to these two technologies. Does that mean quantum computing makes Blockchain obsolete? We'll touch upon that question in future chapters.