Blockchain – Part 1 – a Foundation of Distrust

Mutual Suspicion

In his 1982 PhD thesis entitled “Computer Systems Established, Maintained, and Trusted by Mutually Suspicious Groups” and subsequent essays including “Achieving Electronic Privacy” some ten years later, David Schaum discusses the need for information sharing, but also the need for privacy.  Banks need to be able to verify banking transactions such as purchases; but why is it necessary for them to know every intimate detail about your spending pattern?

Further work on a cryptographically secured chain of blocks in 1991 by Stuart Haber and W. Scott Stornetta to implement a system where document timestamps could not be tampered with, followed by the introduction of Merkle trees took the world one step closer to Blockchain.

Bitcoin – The First Blockchain

In 2008, the first blockchain was conceptualised by Satoshi Nakamoto – an anonymous person or group; and in 2009 they implemented their design to create Bitcoin.

In short, a Blockchain is a chain of Blocks of transactions, designed to be a secure register of transactions, that is shared publicly between untrusted members in a network and validated by consensus.

A Block is a record of transactions that includes a cryptographic hashcode that would take about ten minutes of compute time to generate.  The hashcode is based on the contents of the current block and the hash of the last block in the active chain. This means that each block in the chain is linked to the block before it, making the order of the blocks in the chain an integral part of the chain’s security.

How Miners make Money

In the case of Bitcoin, anybody can be a member of the network and create blocks. In the case of cryptocurrencies such as Bitcoin – these members are referred to as “Miners” because they get paid in newly created currency (mined coins) for every block they create as well as fees for the transactions in the block.

The fees paid and the bitcoins generated in payment for the miner is in recognition of the work involved in creating the block and to encourage a sufficient number of miners to join the network to ensure the integrity of the blockchain.  In addition, the number of bitcoins paid per block created, halves every time a set number of bitcoins have been mined.  This is designed to ensure that only a finite number of bitcoins will ever be created and to replicate the model of extraction of gold from the ground – also a finite resource.

The payment is only made, however, once the Blockchain they had added their blocks to has reached a certain length and has been effectively confirmed.  The reasoning behind this, is that a new Blockchain can be reversed out if a longer Blockchain is found to replace it and so Miners are incentivised to seek out the longest chain before attempting to create the next block.

Proof of Work

Under what circumstances would a blockchain be invalidated by a longer chain?

Let’s assume there are 4 miners: A, B, C and D – who each have the same Blockchain which is 4 blocks long.  All the Miners now process the next block.  A and B complete at the same time, each creating their own version of the next block but with the unique hash that they personally generated.  Now they each have a chain of 5 blocks.  D takes their update from A and C takes their update from B.  This means that every miner has a chain of 5 blocks, but A and D have the chain updated by A; and B and C have the chain updated by B.  Which chain is valid?  That is down to the next Block.  The next block is completed by C.  They now have the longest chain and so B’s chain, with C’s block appended becomes the live blockchain and A’s version is ignored.

Utilizing Blockchain

Amazon Web Services supports BlockChains using the HyperLedger framework.

 

Blockchain – Part 2 – The 51% hack and the AWS Solution

John Dunning works for 1Tech, an AWS Cloud Partner.