People ask me frequently, “Please tell me, what is blockchain and how does it work?” I have been using various approaches and media answering this question, whiteboards, paper and even beer-coasters, and recently created a single page canvas combining all my scribbles and drawings to answer this question. This works very well, with great response and I like to share it including the story that goes with it. Maybe it is somewhat technical but most people follow the explanation quite well and really feel that they have learned something. Re-use is granted, but please keep it “as is” and respect the copyrights. (See below for downloads, OpenOffice and PDF format)
Doing business and transactions between organizations and people requires TRUST. Normally we do not think about this but every day we pay our invoices or buy goods with a debit- or credit card, issued by a bank or credit card company who guarantees these payments. These so called middleman are initiated, regulated and audited by governments giving us the required trust. But what if you could arrange this via technology providing us with the same guarantees as a middleman but without the middleman. This is where blockchain can help us, providing a mechanism to do business without knowing your counter party or their reputation. First used for Bitcoin transactions (crypto-currency) but suitable for any other transaction or contract that we want to register in an immutable and secure manner. Think about registering land property, music rights or mortgages.
In a typical blockchain we recognize four important elements: the hash, the block, the nonce and the consensus model. How does this work?
First let me explain hashing, a key-element in blockchain. Hashing is a mathematical function that converts an arbitrary text into a fixed length digital key. This process is irreversible, every key produced is unique and even the slightest change in the input generates a completely different key. (Observe the W and w difference). This key, also called the HASH, can be seen as the unique signature or fingerprint of that piece of text or information. (FYI: Hash functions are designed by the United States National Security Agency (NSA) and made available under a royalty-free license.)
Next, let’s have a look at a block and its structure in a simplified model. We distinguish two main parts: the heading of the block with housekeeping details and a section containing the transactions. (In this example you see a set of simple financial transactions, but any transaction can be included.) The housekeeping section is especially important as it is used to link the new block with previous blocks. Within the heading we see several fields and most are pretty straight forward; version info, time stamp and a copy of the previous block Hash. To secure that the transactions in the block itself are fingerprinted in an irreversible way, a “Transactions Hash” is generated from all entries with the above explained algorithm and added into the header. The information of all these header-fields is then used to generate the Hash, or signature of the block.
So why do we include a NONCE in the header?
Creating a signature of a new block is pretty straight forward but makes it also vulnerable for anyone who wants to tamper with its content. Calculating a hash is a matter of milliseconds, so changing a transaction and creating a new hash is very easy, too easy and therefore not 100% secure. We can prevent this by demanding that the Hash of a block starts with leading zeroes which is only possible if we change the input for the hash calculation. This is where the Nonce (Number Once) comes into play, every time we change its value a different hash is generated. Verifying all possibilities requires serious compute power/time and that makes it unattractive to tamper with the transactions in the new and all depending previous blocks. This process is known as – “the mining of a block”, providing us with the security that transactions are “written in stone and immutable”. Mining – especially of crypto-currency – is financially very profitable and more compute power is added on daily basis. To deal with this, the number of leading zeroes is regularly adjusted to balance the increase in compute power. (FYI: Mining reward for the Bitcoin Blockchain is currently 12,5 BtC per block).
Once the right Hash is found, the newly mined block is presented to the network of “fellow” miners for approval and consensus. Typically six fellows have to confirm that the block is correct after which it is added to the chain. This consensus cycle is another security mechanism adding to the robustness of a blockchain. The process repeats itself and the hash of the recently added block is used as input to mine the next block resulting in a chain of blocks. Impossible to alter without changing the previous block, and the previous block, and the previous block…..
Blockchain offers us an highly effective means to organize the need for trust in a different way, secure and clean on a global basis, robust and transparent with no/limited overhead.
Originally posted at: LinkedIn