CTO Insights (IDentifier November 2019)
Hello and thank you for joining me in this third part of a series where we are exploring the anatomy and features of the blockchain. In the September 2019 IDentifier,
I introduced the blockchain concept and explained how it provides a different and superior method of storing data relative to traditional centralized databases. In the November 2019 issue, we looked at the blocks that together comprise the chain and examined their structure and key features. I recommend you read those posts before proceeding as they provide necessary context.
In this installment, we look at how the blocks in a blockchain relate to each other to form chains and how their relationship confers additional benefits. As we learned in the previous article, a blockchain is like an electronic ledger and the blocks that comprise the chain like pages in the ledger. Unlike a traditional ledger (or a traditional centralized database), each blockchain creates copies of itself that reside on each computer in the network on which the blockchain resides (more about that in the first article in this series.)
The Birth of a Block
Depending on how a particular blockchain is configured, a new block is created when a condition is met. The condition is often the number of transactions or a number of bytes of storage (usually one megabyte) required to store all of those transactions. This is similar to the situation you would find yourself in after you have filled all of the rows in a ledger page or spreadsheet.
Before a new block is added to the chain, two things must happen: First, the data in the block must be cryptographically encoded and, second, all of the computers in the network must agree that the new block is valid. Only then will this new block be added to the chain sequence.
We introduced the hash function concept in the previous article. Think of it as an Enigma Machine (or, more accurately, hundreds of machines working in tandem) that encodes the information a user (or computer in this case) feeds into it. The output is a 256-bit alphanumeric string. No matter what information is input, the output is a 256-bit string that is unique to the input information. If one number or letter in the input changes, so does the output.
The information contained in the block is processed through a series of hash functions to reduce to near zero the possibility that anyone could reverse engineer the encoded outputs to tamper with the inputs.
After the block’s data is cryptographically encoded, all of the computers in the network examine it to ensure it is valid. Validity is based on how the blockchain implementation is configured but at a minimum requires that the outputs of the 256-bit hash functions match those defined by the chain’s configuration. This step adds yet another layer of security and reliability to the blockchain because of the near-impossibility of guessing the correct cryptographic solution.
The computers also look at the the new block’s identification credentials (including a reference to the previous or “parent” block) as another means to ensure its integrity. The computers vote and if the consensus is that the new is block valid, it is added to every copy of the blockchain resident on each of those computers. If the computers find the new block invalid (likely a result of a hacking effort), the block is rejected.
- Blocks are created when the total number of transactions on a blockchain network reach a certain number or byte weight.
- The data that will be recorded in a block is cryptographically processed multiple times by network computers to ensure its immutability.
- Only if all of the computers on the network agree that the block is valid will the new block be added to the blockchain.
In my next article, we will reduce the magnification of our examination to look at gross anatomy of the blockchain to discover more of its ingenious features that further distinguish it as the preeminent technology to save, protect and share data across enterprise networks.