Many people are still confused about the differences and similarities between traditional databases, and the more recent blockchains.
One likely source of that confusion stems from the fact that a blockchain is a type of database since it is used to store information in data structures called blocks. A traditional database also stores information, but it does so in data structures called tables.
Even though a blockchain is a database, a database is not a blockchain.
The two are not interchangeable, because even though both are used to store information, they are different in design and purpose. It is understanding this different purpose between the two that makes it possible to understand why blockchains are necessary, and why databases are better suited for some data storage cases.
A traditional database is designed to use a client-server architecture. In this design a user is able to modify the data that is stored in the database on a centralized server. Each database has a designated single authority in place to authenticate each user before allowing them access to the database.
Because the access to the database is controlled by a single administrator it is possible to alter or delete data if the administrator or their account is compromised. In most cases, if someone is able to get access to the database then they can also exfiltrate the data and use it in nefarious ways.
A blockchain database does not reside on a centralized server. Instead it is designed to reside on decentralized nodes, which can number in the thousands or even millions. Every node is part of the administration of the blockchain. All of the nodes are able to enter new information on the blockchain, and all of the nodes verify additions to the blockchain.
A majority of nodes must reach consensus to verify the addition of any new information. This consensus is what provides the network with security, and it is very difficult to alter or delete information once it is added to the blockchain. Moreover, blockchains are secured with advanced cryptography which makes it that much harder to alter data.
The upside to these differences is that traditional databases are quite good in storing data for certain uses, while blockchains are suitable for a different set of uses. Let us consider some of the differences between the two as well as advantages and disadvantages of each.
One of the primary functions of a blockchain is the enable sharing information between two parties who don’t trust each other without requiring a central administrator. Each transaction gets processed by the total network using a consensus mechanism. This creates a shared record across all users simultaneously.
Decentralized control is valuable in that it avoids the risks inherent in centralized control. If you have to work with a centralized traditional database there is always a risk that someone with sufficient privileges can modify or delete critical data within the system. Administrators limit this, but even administrators can become bad actors in the system.
It’s true that some administrators have earned trust. For example, banks record transactions and hold them in centralized databases, yet people have not seen their money disappear from the banks.
Of course that also means that the banks are spending immense amounts of money (which is a resource) to keep those databases secure and safe from hackers and data thieves. As long as the administrators behave properly we remain safe, but there is always a chance an administrator could break our trust.
Traditional databases store their information in a state that is up-to-date to a certain moment in time. They are not real-time, but exist as a snapshot of a certain point in time.
Bloackchain databases are kept up-to-date in real time and they keep all of the information that’s ever been stored in them. This means they give their own history while remaining up-to-date in the moment. This makes blockchains more than just a database, they are also a system of record.
Blockchain databases have been called immutable, and it is because of the costs that are involved in changing or compromising a blockchain that make it immutable.
Blockchains excel as systems of record and as a platform for conducting transactions, but in terms of performance they are extremely slow compared with modern databases, such as those used in banking or payment systems like Visa.
Perhaps this is why performance has been one of the primary focal points for blockchain developers. More speed and larger blockchains are the goal, but the blockchain will always need to sacrifice some speed in order to maintain security. In fact, it has often been labelled the “Blockchain Trilemma“.
This performance issue occurs because the thousands of nodes in a blockchain network aren’t sharing and compounding their processing power. Instead each is an independent entity which works to verify transactions, with the results compared throughout the network until consensus that something happened is reached.
In the case of centralized traditional databases, they have seen performance increases in line with Moore’s Law. After decades of performance improvements modern databases are quite fast and can scale to immense size.
Blockchain databases like Bitcoin are both write-uncontrolled and read-uncontrolled. That means there is no confidentiality since anyone can write a new block and anyone can read the existing blocks.
There are also permissioned blockchains that can have controls on the read and write aspects of the blockchain. That means the blockchain can be designed so that only those participants with permission can read and write to the blockchain. These private, permissioned blockchains are more like the traditional centralized databases.
If confidentiality is the only desired feature and there are no trust issues, then there is no benefit to using blockchain technology over centralized database technology.
Those who want to hide information on a blockchain find that there is a great amount of cryptography required. This puts added computational burdens on the network nodes. In this case it is far more effective to hide the data in a private database, which wouldn’t even require network connectivity.
There are some distinct advantages to using a traditional database which include transaction speed and scalability, stability of the system and the degree to which the database can be customized to make it more user friendly.
Blockchains have a different set of advantages which include security, transparency, immutability and decentralization.
The problems associated with using a traditional database to store data include the security issues, the need for a centralized administrator account, and the single point of failure of such a system. This is particularly relevant in today’s climate given the extensive list of high profile data hacks that have occurred over the past few years.
Blockchains aren’t without their own set of problems which include a lack of interoperability, high transaction fees, the ever increasing size of the blockchain, scalability issues, and the large energy consumption of Proof of Work blockchains.
Blockchains are also not ideal for those individuals that are concerned about privacy of information. Public blockchains are by their very nature open to the public. Having said that, there are a number of blockchain storage projects that have developed distributed and encrypted storage options. However, these are still only in the initial stages.
|No centralised control||Admins make changes (Centralised)|
|Public access for anyone||Permission based (admin rights)|
|Changes can be made by those completing “work”||Only entities with read / write access can change|
|Slower given decentralised propogation||Centralised and much faster|
|Immutable history of record & ownership||History only exists until it is centrally deleted|
The stability and user-friendliness of databases makes them best for large enterprises. Databases are also needed for systems that deal with immense amounts of data and which need to process thousands of transactions per second. If trust is not an issue a database is an adequate solution, and because of the private nature of databases personal information is best stored in a database.
Blockchains exist to create trust and provide transparency. This makes it useful for supply chain, distribution and inventory use cases. Transparency can help combat fraud in industries such as advertising. While blockchains aren’t good for large scale data storage, they are ideal for validating information. Blockchains work well as notaries and could be use in applications such as voting stations.
There are many other aspects of databases and blockchains that can be explored, but I think you’ve begun to get an idea of how the two differ, and where each can be put to the best use.
Featured Image via Fotolia