What is blockchain?
Tags: blockchain, programming
Published: 2022-02-07 12:05:10

You will find on Google many definitions of ‘blockchain’, so many that I will only try to summarise some of them.

Blockchain is **a system of recording information in a way** that makes it difficult or _impossible_ to change, hack, or cheat a system. A blockchain is essentially a **digital ledger** of transactions that is duplicated and distributed across an entire network of computer systems on the blockchain. (_Source: [euromoney.com](https://www.euromoney.com/learning/blockchain-explained/what-is-blockchain#:~:text=Blockchain%20is%20a%20system%20of,computer%20systems%20on%20the%20blockchain.)_)

_(Note: this is a widely accepted definition, but “impossible” is not actually the exact word to use. Maybe we can agree the statement is true in production implementations, where there are many contexts and also, a lot of physical limitations. However, it is not necessarily mathematically impossible to cheat, there’s a good description [here](https://arxiv.org/pdf/1612.06244.pdf) by J.H. White in chapter 4.3.)_

You can think of the blockchain as a specific type of database. It is storing data using **blocks** that are chained together. New data is entered into new blocks, and once the block is filled with data, this is chained onto a previous block and this makes the data chained together in chronological order.

Simplified, is a list of data blocks that are linked together with a timestamp.

As common databases have already known data types, the most common use for blockchain so far has been as a ledger for transactions.

Decentralised blockchains are immutable, which means that the data entered is irreversible. For Bitcoin, this means that transactions are permanently recorded and viewable by anyone.


## The main difference between a blockchain and a database
Actually, it depends on what you mean by “a database”. Of course, we can refer to any organised group of files linked by some logic and maybe an API, as a database; right? We can even consider an Excel document, with formulas and links between sheets, as a database as well. Technically speaking, both of these are correct. Actually, in literature, there are many opinions regarding classification models, so I can recommend this [article](https://www.c-sharpcorner.com/UploadFile/65fc13/types-of-database-management-systems/) to you, it should help you get a better idea about this.

However, in this comparison, we will focus more on the differences between a common SQL/NoSQL DBMS and a blockchain.

A key difference is in the way data are structured. A blockchain collects and groups data in blocks that have a certain capacity in terms of storage. When a block is filled, then it is linked to the previous block, using a hash of the entire previous block content.

Another key difference is that the blockchain is distributed: it does not store data in a single place and does not have a single point of failure. Of course, there are also other distributed DBMS, such as Cassandra, for example, which stores data using multiple nodes and provides a lot of support for data consistency. 

But there is one more key difference; an important one that makes blockchain technology so famous and revolutionary — it makes data immutable. There is no DML that allows you to modify the data, no matter what permission levels you have. You cannot cheat, you cannot root.

And what is more fascinating is that the solution was there with us all the time and it is a mathematical one. We do not need to struggle to make systems more secure, to hide sensitive data, to use more and more powerful servers to handle security and block attacks. We actually only needed to do the reverse: to share them with everyone and to create links between blocks of data, so if anyone changed anything, all the others would know. It is security by transparency and hiding things where everyone can see them.


## Some history
The history of blockchain as a popular trend started with the publication of the whitepaper [Bitcoin: A Peer-to-Peer Electronic Cash System](https://bitcoin.org/bitcoin.pdf), written by someone calling themselves [Satoshi Nakamoto](https://en.wikipedia.org/wiki/Satoshi_Nakamoto) in 2008. The bitcoin project started the cryptocurrency era being the first implementation of a peer-to-peer network as a solution to the double-spending problem. Even though this project continues to function and circulate successfully to date, Nakamoto’s ideas behind the creation of bitcoin have exceeded the original use case. Now, these ideas are known collectively and independently as **the blockchain**.

However, the underlying maths concepts are older than the bitcoin implementation; the P2P concept was already known and other implementations existed before blockchain, but they did not become so popular and also, did not have the same technical results in terms of benefits.

So, were there predecessors of blockchain? The answer is **yes**. Here were some:

- DigiCash — founded in 1989 by David Chaum, an American cryptographer. It was based on the mechanism named “Blind Signature”, an innovation that eventually led to the development of blockchain technology. The [whitepaper](http://www.hit.bme.hu/~buttyan/courses/BMEVIHIM219/2009/Chaum.BlindSigForPayment.1982.PDF) describing it was written even earlier, in 1983.

- HashCash — an email [PoW](https://ethereum.org/en/developers/docs/consensus-mechanisms/pow/) system designed to figure out spam emails and [DoS attacks](https://www.paloaltonetworks.com/cyberpedia/what-is-a-denial-of-service-attack-dos#:~:text=A%20Denial%2Dof%2DService%20(,information%20that%20triggers%20a%20crash.)). It was developed in 1997 by Adam Back but the [documentation](https://www.researchgate.net/publication/2482110_Hashcash_-_A_Denial_of_Service_Counter-Measure) was released 5 years later.

- B-Money — an early age distributed cash system proposed by Wei Dai in 1998, who also developed Crypto++. The smallest subunit of **[Ether](https://en.wikipedia.org/wiki/Ethereum#:~:text=Ether%20(ETH)%20is%20the%20cryptocurrency,which%20also%20go%20to%20miners.)** is **wei** named after him.

- E-Gold Ltd — digital gold currency founded in 1996 by Douglas Jackson and Barry Downey. They were using precious metals as the underlying currency as these are globally acceptable.

- Bitgold — although not implemented, it was proposed by Nick Szabo in 1998. It is one of the best known decentralised virtual currency projects undertaken before blockchain. Bitgold and bitcoin [are so similar](https://nakamotoinstitute.org/bit-gold/) that at one point, people thought Nick Szabo actually was the anonymous Satoshi Nakamoto.