Blockchain – What Is It?
Blockchain as we know has been the buzz word for quite some time now. Blockchain is based on the concept of distributed ledger.
As compared to a centralized database where the data is stored in a central server and has access restrictions, the Blockchain network is a decentralized data store that makes data available to all the parties in the network.
As depicted in the picture above, the traditional database model relies on a central server (or a cluster of servers) to store and retrieve the data.
Also, the access is controlled to a select few who have full access to the database (DB Admins). In a Distributed ledger system, the data is replicated among all the participants in the network and there is no access control on the data availability and accessibility.
In the case of a central server, there is potentially a single point of failure, whereas in the case of a Distributed System, the data is available on the other nodes even if 1 node goes down.
The first implementation of the distributed ledger was done by Satoshi Nakomoto in 2009 through Bitcoin, which also happens to be the first crypto currency to be based on DLT.
Ever since there has been a boom in the number of cryptocurrencies that have sprung up.
To answer this question, let’s take a look at the characteristics or the features that Blockchain promises and delivers.
Blockchain allows everyone on the network to view every transaction that happens thereby providing transparency and immutability among other advantages.
- The data that is stored in the blocks on the chain is encrypted by a secure hash mechanism and stored in the distributed nodes of the network
- As compared to centralised database, the data written in the blocks are replicated to each node in the network, thereby making it extremely difficult to tamper with.
- Data once written into the blocks of the Blockchain cannot be edited. Each block contains the hash of the previous block. Any change in the data to the block will result in a different hash
Transaction And Blocks – Under The Hood
The fundamental building block in a blockchain network are the blocks that are chained together.
What does this block contain? Simply put, Blocks are a collection of transaction that happen over a particular time window.
All such transactions are grouped together, and a block is created after the time elapses.
A transaction is an exchange of asset or information between 2 or more participants and this is usually accompanied by a state change in the blockchain data tracked using a blockchain.
Growing Requirement For Blockchain
Storage space was probably not one of the focus of early blockchain miners or for people who were running full node.
The priority was the speed of transaction processing and incentivisation which focussed more on the processing power to compute the block hash.
With the growing trend of the blockchain network, it has become inevitable and everyone is looking at the growing storage requirements and ways to tackle the same.
Lets look at the top 2 Crypto blockchains (Bitcoin and Ethereum) to see how their journey has influenced storage.
Ever since the first block was created in 2009, the size of the Bitcoin blockchain has been growing. As per statistics, the current total size of the bitcoin blockchain stands at close to 200 Gigabytes (GB).
Below is a representation of the growth in the years of Bitcoin existence:
Though Ethereum blockchain started much later in 2015 than Bitcoin, the growth has been exponential.
In an Ethereum blockchain, to validate transactions, the entire blocks (from the genesis block) needs to be downloaded.
The current size of the Ethereum blockchain (full node) is at 185 Gigabytes (GB). There is another type of node called the “Archive node” that is much more than the “Full node”.
The Archive node stores all of the intermediary and historical states of each block. The size of the archival node of an Ethereum blockchain is said to be more than 1TB.
Consider that a user wants to run a full Ethereum node. Some of the considerations are:
- Node configuration: To run a full node, it is imperative that all the data blocks need to be downloaded, starting from the genesis block. Typically, a machine that has around 500 Gig of Storage would be a good bet
- Type of storage disk: The disk technology has advanced tremendously, and we have quite a few options for disks to match specific requirements. One of the main requirements in running a full node is the time taken to sync with the network. The initial time is huge since the blocks must be written to the storage. SSD’s provide faster writes as compared to traditional spindle-based drives.
- Cost: Probably one of the major considerations for anyone running a node would be the investment and the return on investment. The rate at which the blockchain size is growing demands larger storage needs and computational power. To that extent, getting a (decently) powerful processor with acceptable RAM and affordable storage is a math that would play a great role in determining the kind of node one would opt for.
Storage space cannot be an independent parameter anymore in the context of blockchain.
With the growing demand for the blockchain technology and the adoption, storage space and the deployment options would need to be carefully thought and factored into the solutioning.
It is interesting to see several solutions being worked upon to address the growing storage requirement of blockchain.
It remains to be seen as to which solution will get the maximum consensus and how the implementation will further shape the blockchain networks and forks.