In a three-part series on Blockchain technology and Bitcoin Cryptocurrency, our bloggers unravel the technology underlying Bitcoin, which is currently hogging the headlines globally. Part 1 explores the basics of blockchain technology. Part 2 dwells on the protocols and concepts in Bitcoin. Part 3 takes a closer look at the concepts covered in Part 1 and 2. A minimal understanding of cryptography—its basic concepts and terms—will make your journey through these posts effortless.
The Quest for an Alternative
We have always depended on middlemen to exchange values amongst ourselves. The ancient barter system was unscalable and had gaping holes of inefficiency. The monetary system that replaced it infused some stability to the exchange, but it came with its own share of problems. Fraudulent schemes and money laundering have become so commonplace, they don’t shock us anymore. And there arose the question: Is there a safer alternative to the conventional banking system?
A feasible alternative was put forward by Satoshi Nakamoto in 2008. He proposed a decentralized peer-to-peer cryptocurrency, the Bitcoin, which set the foundation for a technological revolution.
However, the story doesn’t end there. If Bitcoin is the crust of what was the proposed, the underlying Blockchain technology is the meat.
Bitcoin gives us, for the first time, a way for one Internet user to transfer a unique piece of digital property to another Internet user, such that the transfer is guaranteed to be safe and secure; everyone knows that the transfer has taken place, and nobody can challenge the legitimacy of the transfer. The consequences of this breakthrough are hard to overstate.
—Marc Andreessen, Founder of Mosaic
Building Blocks of Blockchain
The Blockchain, for the most part, behaves just like your everyday database except that it has headers that are public. Anyone can verify the message you send as it has your signature, but only you can access the secure information stored within it.
The basic building blocks of blockchain technology are the following:
It is the record of an event. It is stored in the blockchain permanently.
A set of transactions are grouped together to form a block.
Hash Functions and Hash Pointers
Cryptographic hash functions are the backbone of blockchain technology. They provide the much-needed security by virtue of the following features:
- They are collision-free. It means that it is impossible for the hashes of two different data to be equal. That is, ∄x≠y & H(x) = H(y).
- They are apt for data hiding. It would be nearly impossible to get back the data from its hashed form. That is, you can’t get back the value of m from H(m).
- They are puzzle-friendly. This feature ensures that there are no shortcuts when these functions are used as puzzles. That is, if a puzzle such as H(k|x) = y is given, the only way to solve it should be by randomly finding the value of k.
A hash pointer is a pointer to the previous block. It is a hash of all the transactions within that block. It is used to link the blocks together.
It is a Binary Tree in which every leaf node is labeled with a data block and every non-leaf node is labeled with the cryptographic hash of the labels of its child nodes.
The advantage Merkle Tree brings is that it is quite easy to verify the membership of a transaction within a block. The complexity comes down to O(logn).
On a blockchain, you place a message and sign it with your private signature, then send it over to everyone in the network. Anyone in the network can easily verify the transaction as they have your public key. The public key is your identity in the network. Blockchain follows decentralized identity management and hence has no central authority to store the identities.
The security is ensured because only you can sign with your private key. To implement this, we have to ensure we use a secure key generation algorithm. Bitcoin uses ECDSA (Elliptic Curve Digital Signature Algorithm), which ensures good randomness in key generation.
It is easy to track the flow of Bitcoin from its creation to its current state. This simple feature is vital to the functioning of Bitcoin.
More about it in Part 2.