For some time, I have been tinkering with definitions of technical concepts to understand them personally to explore ways in which I can expand their use cases and applications. I believe that the key to mastering a technical concept is to having a somewhat localised version, a close to home definition. For that, stories often come in handy in breaking down technical concepts.
What is a blockchain? Here’s Wikipedia’s definition.
A blockchain, originally block chain, is a growing list of records, called blocks, which are linked using cryptography. Each block contains a cryptographic hash of the previous block, a timestamp, and transaction data (generally represented as a merkle tree root hash).
Well, what’s then the parallel between trains and blockchains?
A train is a series of connected coaches(bogies) that run along a set of rails. A coach is attached on the first coach, which drives the rest of the successive coaches attached. Any coach of the train has two connecting mechanisms (connectors), one linking to the former coach (one ahead of it) and its own connector to the coach that will come after it. This is the case for all coaches apart from the first coach which only has one connector, linking the second coach to it. Not just any coach can be added on to the train, say, arbitrarily adding a cargo coach to a passenger train.
From the descriptions above, the key elements are;
Generally, several transactions make up a block where the first block is called the genesis block (block 0). When the block is confirmed by peers on an interlinked network and agreed as valid, it is joined onto other blocks making a chain. A block-chain.
A blockchain can therefore be seen as a growing list of coaches, called blocks, linked using connectors (defined by cryptography). Each block contains its own ID number, an address of the previous block, its own address (hash), a timestamp and a reference to the transaction data included in the block. The blockchain is made available to participating nodes who run and maintain it.
Nodes (participants) in a blockchain network achieve agreement as to the correct state of data on the system by agreed mechanisms called consensus algorithms. The consensus algorithms ensure that data is the same for all nodes in the network and thus prevents malicious actors from manipulating the data.
And just like trains, blockchains keep getting updated over time to become more efficient by increasing throughput and extent of scalability.
This is an attempt to scratch the surface. I hope the explanations suffice to make sense of the technology. In future articles, I shall explore types of blockchains, DApps, distributed ledger technologies and their use cases (practical and idealized).