Blockchain is increasingly mentioned in various business circles, but people often lack a concrete understanding of what it is, particularly when it comes to its underlying technology.

This article is the first of two which will focus on blockchain from a technical perspective. In this piece, we explore what blockchain is for those who have heard of it, and would like to know how it actually works and why it's important. Next, we will showcase how we applied the blockchain methodology in a proof of concept with a Global Financial Services organization.

What is Blockchain?

First born in 2008, blockchain's claim to fame comes from its role as the underpinning technology for Bitcoin, but it has evolved to be used for much more than cryptocurrencies. While it is many things, it is a decentralized, independently veriﬁable, and immutable ledger at its core.

When transactions are recorded on the ledger, every member of the network is updated. The decentralized nature of this ledger ensures that these transactions and the information they carry are tamper-proof1. Thanks to blockchain's use of merkle trees, it is very easy for the network to verify the validity of each transaction.

Git repos are very similar to blockchains in structure and function

Git also uses merkle trees and this similarity is helpful, because blockchain can be seen as a peer-to-peer (P2P) hosted git repository. In order to modify this repository, users must have a copy of the whole repository and pull the latest commits2. When you download a blockchain client and run it, you have to checkout the entire blockchain history, much like checking out a git repo.

To run a node, you must download the entire blockchain and run the blockchain client software. Each commit in the repository can be thought of as a block in the blockchain as it modifies state and is immutable once committed.

The P2P nature of blockchain removes the need for a centralized repository so instead of requiring something like github, each node publishes its changes to existing nodes simultaneously. As in git, each block contains a current hash and a hash of the previous block; this plays a central role in the transaction verification process.

You can think of this verification as a git pre-commit hook. For instance, it will verify that the person sending currency is authorized to sign for that transaction, that they own the coins they are trying to send, and that they have sufficient funds to make the transaction. Blockchain is also built to prevent merge conflicts since it cannot resolve them.