What is Blockchain all about? The term ‘blockchain’ has become synonymous with cryptocurrencies like Bitcoin, but the phrase actually refers to the underlying infrastructure used to transport and store cryptocurrency transactions. When Bitcoin was developed, a secure method of storing currency and completing transactions was required, and so the blockchain process was created.
When Bitcoin was developed, they needed a method to transact and store the currency using a secure method, so they created the blockchain process.
In the bygone era of 70s and 80s computing technology, hardware was obviously much less powerful and hard disk processing much slower than it is today. To link records together we used chains of relative record numbers, or RRNs. These RRNs pointed to the previous and next records in a chain, for example adjacent rows of a file or table, or related records. Software programs could follow these chains in order to extract information. This structure of chaining records together was commonly used in back office systems like stock control, for example to allow the easy extraction of widgets, widget meaning anything that might be managed in a stock management system like items locations etc, being stored in a particular location. IBM developed an early Enterprise Resource Planning System (ERP) called MAAPICS, which stands for Manufacturing and Accounting Production Inventory Control System, and which used RRNs. RRNs were a good way of allowing the association of things together without a complex database technology under the covers. If the chains, or RRNs, were corrupted then the integrity of the data was compromised. With more modern technology came faster and bigger hard drives and faster processors. The use of complex databases allowing logical indexes became commonplace, allowing lookup by key (or number, for example widget number), or store location code thus doing away with the need to chain records together.
The concept of chains linking data together is used in blockchain, providing integrity rather than speed. Individual records, or blocks, are linked together in a chain. If the previous hash of a particular transaction does not match the value of the previous transaction then that indicates that the chain has been tampered with. The advantage of blockchain is that records of transactions are duplicated across a network of computers, so finding out the correct value is straightforward. This is where the concept of consensus comes into play. If the majority of machines share the same previous and current transaction values, then you can be confident that those values are correct.
A phrase you hear quite a bit in relation to Blockchain is “Immutable Ledger”, which sounds to me like something you would use while fly fishing in Scotland. It’s just a fancy way of saying that transactions stored in a blockchain are very hard to amend once committed to the chain (although theoretically not impossible). In financial circles a ledger is a record of financial transactions. “Immutable” is defined as unchanging, or not able to change over time. So, an Immutable Ledger is simply a record that cannot be changed.
When a blockchain transaction is processed it is duplicated across a network to many computers, which are known as nodes, or peers. A blockchain network is a peer to peer, or P2P network. The fact that the data is mirrored across multiple computers is one reason (but not the only reason) it is difficult to retrospectively amend a transaction once it has been accepted into the ledger, because it would involve making changes to the transaction records on many computers.
Transactions are added to the chain by one node in the network and are then duplicated to all the other nodes. To win the privilege of adding transactions* to the blockchain, a node must first do battle with all of the other nodes on the network. In a Bitcoin blockchain the winner is rewarded in bitcoins, or part of a bitcoin. This act of battle is called “mining”.
The battle that takes place in the mining process is actually a puzzle solving competition by all the nodes in the network to see who can solve the puzzle the quickest. This process is known as Proof of Work or PoW. To try and give themselves the best chance possible of being the first to solve the puzzle and win the mining fee the computers that do the “mining” are made to be as powerful as possible using specially made hardware. They consume quite a bit of power and some organisations have built server farms with many nodes in order to increase their chances of winning as many PoW contests as possible and therefore maximise their profit.
The process of actually adding transactions to the blockchain involves bunching individual transactions together in order to create a block. The block header contains the hash which was created in the Proof of Work process (by the winner of the mining process) and the hash from the previous block.
Because the hash of each block is built using the hash of the previous block this means that to amend transactions in any given block you would have to go back and amend all the hashes and previous hashes in every other block created before it and also on 51% of the nodes in the network to get consensus. This is what gives blockchain technology its “immutability”.
The hashes, previous and current, that we talk about that are stored in the block header are created by the PoW process as we previously discussed. A hash takes bits of information, concatenates them together and then applies an algorithm to return a fixed length string of characters that is used as a unique identifier for the block. The PoW concept comes about through adding complexity to the hash creation process by way of stipulating that the hash must begin with a certain number of zeroes. So when the hashing algorithm creates the return string if it does not begin with the required number of zeros then the process of hashing the concatenated information is retried until the number of leading noughts is realised.
The hash function is basically a mathematical equation that takes an input string of any number of characters and outputs a string of completely different characters with a fixed length. The result will always be the same for a given input string. The hash process is known as being deterministic ie the same input string will always produce the same output string but you cannot reverse engineer the output string to get back to the original input string. The hashing algorithm used in Bitcoin is SHA256. Hashing is used because it means passwords can be stored without exposing the actual password. To verify a password it is hashed and if the hash matches the stored hash then the password is correct.
Use the demo below to enter a sentence and press the “Press for Hash” button to view how the SHA256 algorithm turns your string into a fixed length set of numbers and letters.
In Bitcoin, which is stored using blockchain, the coins are transacted using “Wallet” functionality. To access the wallet private and public keys are created using what is known as Elliptic Curve Digital Signature Algorithm (ECDSA) to create hashes utilising SHA256. The owner of the wallet must keep their private key secure as this is the method by which they access their wallet and perform bitcoin transactions. People that know your public address can send you bitcoins.
One of the other elements that makes up the block header is a timestamp turned into a Unix Epoch time which is the time in seconds since the 1st of January 1970. Use the demo below to enter a date and time and then press the “Press for Epoch” to see your chosen date and time converted into seconds since the 1st of january 1970.
The block header is made up of the version number, previous hash, this hash, epoch time, difficulty and nonce. As mentioned previously the difficulty is thrown into the mix to make the block creation or mining process a competition to see who can find the answer first and win the privilege of creating the block and earning the mining fee. The difficulty part of the mining process stipulates how many zeros the hash must have at the beginning and is geared towards making a 10 minute gap between block creations. This is dependent on the power of the mining computers, how many of them there are and how many transactions are being processed in a period of time. A nonce is added to the end of the string being hashed to attempt to find the required number of zeros to be prefixed to the string, if the required zeros aren’t found on the hash computation then a new nonce is tried until the right amount of zeros are computed. The nonce is effectively a random number 4 characters long. To vary the complexity the number of zeros is upped or lowered accordingly. The diagram below explains the hash creation process highlighting the way the difficulty is used to build in complexity.
Hitting the button below brings up an interactive demo which models the blockchain mining process in real time.
Blockchain technology is being considered by the HM Land Registry for use with land registry transactions. In a blog HM Land Registry wrote in May of 2019 Could blockchain be the future of the property market? they outlined the steps they took to “build a prototype that would enable a digital transfer of a property that automatically updates the Land Register”. They bought together payment services firm Shieldpay, law firm Mishcon de Reya and conveyancing MyHomeMove, know your customer (KYC) and anti money laundering (AML) services provider Yoti and HM Revenue & Customs to build as they described an end-to-end proof of concept.
They used video to allow the participants to remotely interact allowing them to coordinate their various tasks. Each step was actioned and then the process was handed on to the next party in turn.
The aim of the simulated transaction was to demonstrate the speed, trust, security and transparency that the technology could bring to the property market.
In the article The Land Registry said they are continuing to work with industry to explore how new technologies like Blockhain can influence future transactions.
Smart contracts are being tested by the legal profession and by industry as a way of recording contractual agreements and storing them in a blockchain ledger. This could speed up transactional processes such as shipping contacts and documentation by allowing documents to be created , submitted and shared in a more secure and timely approach.