Blockchain: Peek Under the Bonnet

The definition of a Blockchain is a “chain of digital data signatures” that can be passed from one person to another using an electronic signature (hash). During this process, the sender electronically signs the previous transactions of the data and the public key of the recipient they are sending the data to. The public key of the recipient is decoded with the private key of the recipient, known only by the recipient.

“What is a Hash?”

A Hash is a function that is used in decentralized systems. All data like documents, movies or music are just strings of binary digits of ones and zeros. A hash function takes any data and runs an algorithm on it to produce a fixed length a unique digital output known as a hash. A Hash is normally much smaller than the original input. Every time the same digital data is put through the hash fiction, you get the same digital fixed length output. Even if a slight data in the digital data is changed, and put through the hash function, the digital output, the hash, is completely different to the original one.

The electronic signature of the previous transaction (hash) is also included in the newly created hash. This therefore creates a chain of transactions (Blockchain) as each new time stamped hash includes the previous hashes. The size of the Blockchain will therefore get larger as the transaction history increases.

Hash functions ensure there is no way to derive the original digital content from the generated hash. Additionally, change anywhere in a sequence of connected data, will result in a completely new set of has for the present data and all data subsequently to follow.

“Timestamps: Precautionary measures in place”

Digital data (digital signatures) can be, fraudulently, sent to more than one recipient at the same time (imagine spam emails). Blockchain overcomes this problem using time stamps.

The time-stamp server is a simple piece of software that is used to digitally time-stamp data. The server takes a hash and time-stamps it. Each transaction is time stamped and processed by the data system in order of their respective time stamp. Therefore, if a data is sent to two recipients, the data will have different time stamps; and data with second time stamp will be automatically rejected by the system.

The Blockchain system processes every transaction and announces whenever a transaction takes place. This ensures that the system, and its users, administer the chain of transactions to ensure fraudulent activity does not take place. Thereby ensuring the data system is decentralized.

“Proof-of-work: network security”

Hash based — proof of work: Proof of work is a way to deter spam requests to a network by making it very costly for brute force/repeated attempts to break into a network.

Proof-of-work requires proof that a specified work has been done by the system. A specific problem must be solved by a node and its answer presented to show that work was completed. Spamming the system with multiple requests would require too much computer power and hence proof-of-work is used to safeguard the system.

This process of solving hash puzzles essentially locks the transactions (blocks) in place within the Blockchain. To reverse a set of transactions, the work done to solve the hash puzzle would have to be undone. As the hash is built upon one another to form the Blockchain, you would also have to do work on the whole chain to undo a single block. Therefore, it is impractical to unlock a single block as the whole chain must be changed to do this.

“Network Communication”

New transactions are publicly announced to all nodes. Each node works on solving the proof-of-work, when a lucky node solves the puzzle for its block, it informs all other nodes. All nodes in the network accept the solved block, only if transactions are valid.

Nodes always consider the longest chain to be correct. If two nodes send two versions of the block at the same time, these blocks will be processed based on their time stamp. The longest chain will win. If a node is switched off and subsequently does not receive a block, the rest of the nodes will continue without it and the node that missed out will be updated when it connects to the network later.

)