Google recently revealed that the 3rd most searched “how to…” question of 2017 was “how to buy bitcoin?” This achievement amounts to hundreds of thousands of searches and shows just how much global awareness there now is about bitcoin.
Despite the fact that the number 1 question asked was the rather ridiculous “how to make slime”, this search data shows that where there is money to be made, people and companies will inevitably follow.
Thankfully, it now seems that cryptocurrency mania is largely over. Crunchbase recent reported that bitcoin trade volumes have fallen dramatically since their December highs, undoubtedly the result of a string of bad news stories and government moves to crackdown on their use.
I for one welcome this trend as I am tired of having conversations with self-proclaimed bitcoin ‘investors’ who have little to no interest in anything other than getting rich quick. That said, however, we do all owe a debt of thanks to Bitcoin mania which, in my view, served a much more important role than simply making people rich.
Bitcoin helped thrust a new technology into the mainstream, one which has the potential to revolutionize many of the processes we rely on everyday, and that technology was blockchain.
In this article, I aim to examine how to use blockchain to build a scalable database. I will begin by answering the question ‘what is a blockchain database?’ After I have done so, I will outline the key points to creating your very own blockchain database.
It is worth noting that should your company lack experience in creating a database built on blockchain technology, then it is really advisable to seek expert help to ensure that your project is a success.
What is blockchain database
A blockchain database utilizes blockchain technology to create a immutable ledger of transactions. Blockchain technology relies on peer-to-peer decentralized transactions. This offers greater security and removes the need for any single controlling entity that retains administration rights over the database.
Data is recorded as blocks. As each new transaction or block is recorded, it is added to the chain. As a result, a blockchain contains every transaction recorded since the ledger was started. In the case of a single bitcoin, it is possible to trace every single owner, including the time and date that they bought the coin, all the way back to the very first buyer.
A blockchain database can contain any information, however, blockchains are not really good at storing vast amounts of data on due to network limitations and cost etc. In the case of bitcoin, information such as ownership, time/date transaction details, are what is recorded to the ledger.
Don Tapscott, CEO, The Tapscott Group, points out that blockchains can be used to “record anything of value to humankind — birth and death certificates, marriage licenses, deeds and titles of ownership, rights to intellectual property, educational degrees, financial accounts, medical history, insurance claims, citizenship and voting privileges, location of portable assets, provenance of food and diamonds, job recommendations and performance ratings, charitable donations tied to specific outcomes, employment contracts, managerial decision rights and anything else that we can express in code”. – Blockchain: Blockchain: the ledger that will record everything of value to humankind.
How does a blockchain database work?
A blockchain database ostensibly serves the same function as a centralized distributed database. It is able to store data that can then be accessed and added to by anyone with authorization to do so. However, there are some key differences between the two tech stacks.
Blockchain vs. distributed database
A distributed client-server database uses a centralized server or servers to maintain the database and to allow users to access it. While users can access and modify the data, the master copy is always stored on the central servers. Users are required to have permission to access the data, which is granted by the administrators that control the network.
Once data is modified by a user, any change will be recorded by the central server before then being updated for anyone else viewing the database. A key component of a distributed database is that it is highly scalable, something which allows companies to store and access huge amounts of data in real-time.
A blockchain database, on the other hand, is completely decentralized. The database is maintained and controlled by a set of users who act as active participants. Each and every participant is required to validate a transaction before it can be recorded to the database.
This makes blockchain technology far more secure as every participant acts independently of one another. This means that they will act to prevent any unauthorized modification of data stored in the chain, so any hacker, for example, would need to take over the majority of the nodes in the network in order to make such a change.
Blockchain database technology
Before we get into how to build a database using blockchain technology, it is worth taking a moment to examine the pros and cons of blockchain database technology.
As I have already pointed out, the main advantage of blockchain databases is that they are incredibly secure. Since the database is decentralized, the data on the chain can’t be hacked and altered as the other nodes involved with the database will resist any unauthorized change.
Another key point in the blockchain vs. shared database comparison is that a blockchain database is not controlled by one single centralized body. This has massive implications such as allowing for increased access to contract-based services to reduced fees for conducting financial transactions etc.
The use of blockchain-based smart contracts, as championed by such organizations as the Ethereum Project, stands to bring enormous benefits to people throughout the world. The decentralized nature of blockchain also removes any politicization of the database which allows for freer transactions.
The removal of both governmental or corporate control would allow contracts to be set up for literally anything, without the need for them to follow the rigid guidelines set out by accountable institutions or adhere to a specific political ideology etc.
Finally, fault tolerance is massively increased as each of the nodes involved with the database has a complete record of the blockchain, thereby preventing data loss should one of the nodes fail.
There are a number of drawbacks to the blockchain decentralized database, however. Currently, blockchain databases are limited as to the number of transactions they can process at any given time. This is because the number of transactions that can be processed can never exceed the processing speed of any one node participating in the blockchain.
This leads to a key problem that currently affects blockchain databases, namely scalability. When a traditional database increases in size, more resources can be easily added to handle the extra compute power required. With a blockchain, this means adding more and more nodes to the network.
The problem is that inter-node latency logarithmically increases with every new node that gets added to the blockchain network. This means that blockchains become less efficient and increasingly slower as they grow. This is one of the downsides of requiring all nodes involved in the blockchain to validate transactions.
With a blockchain network, it is not easy to enact infrastructure changes to speed up the network. Since the decentralized nodes are not controlled by any one entity, but rather a community who must all agree to upgrade their equipment accordingly, it is hard to get them to all agree to do so. This effectively limits the speed and overall capacity of any blockchain database to the speed of the slowest node on the network.
Innovative blockchain developers are working hard to find solutions to these issues in an attempt to make blockchain databases a viable alternative to conventional ones. One such example of an innovative solution currently being developed is the parent/child blockchain database structure.
This approach, as championed by companies such as Ardor, allows users to access ‘child’ chains that are attached to the main ‘parent’ blockchain. Since the child chains can be removed once they are confirmed, this allows the reduction of so-called ‘blockchain bloat’ which leads to increased latency.
Blockchain bloat is arguably the most crucial hurdle that blockchain databases must overcome if they are to become widely used. Bitcoin has for years now been struggling to overcome this problem. In fact, the problem has already caused a huge split in the bitcoin development community, after both sides proposed a different solution to overcome the problem. The result was that the key developers threw their weight behind SegWit while the coin miners chose to initiate a hard fork that created Bitcoin Cash.
How to use blockchain to build a scalable database
While innovative individuals and companies attempt to overcome the current limitations of purely blockchain-based databases, the current prevailing wisdom is to combine the strengths of a conventional distributed database with that of a blockchain database. One of the companies leading the way with this combined distributed/blockchain database model is BigchainDB.
This combined software stack will allow for the best features of both technologies to be incorporated into one database. From the blockchain stack, the database will have decentralized administration, immutability and enhanced assets, while from the distributed database it will offer scalability and faster data processing speeds.
The key to implementing such a hybrid model is to ensure that the database has several administrators who control how the data is shared. This will allow the database to maintain the decentralized characteristics of a blockchain database while still being a distributed database.
4 Ways To Implement a Blockchain Database:
- Operational Blockchain Data Store With Enterprise
An operational data store (ODS) is used for operational reporting and in making decisions. In our combined distributed/blockchain stack database, the operational data will represent all the information being received from business processes that are not involved with the blockchain database. In order to incorporate the blockchain feature of decentralization, the database needs to be controlled by two or more administrators, each of whom is operating from a different location.
In the case of a company based in a single country, these administrators could be based in two separate offices, while in the case of a multinational, they could be based in different countries. These administrators would then be responsible for the overview of the database and reviewing transactions where necessary. Part of the data would be stored on the blockchain, however, this operational blockchain data store model does prevent outside clients from accessing the data.
- Non-Operational Blockchain Data With Enterprise
In order to facilitate client access to the database, a non-operational approach is needed. This approach involves setting up intermediaries who can access the information held on the blockchain database and send it to clients. While clients would not be able to access the database itself, they would still be able to get the information contained in the database. A key benefit of this approach is the short latency periods when compared to a standard blockchain database.
- Operational Blockchain Data With Consortium
The consortium approach is more in line with traditional blockchain ideology. A consortium could be made up of as many individuals or companies as is required. This would ensure that the database was completely decentralized and that no one individual or company maintained control. All the companies would act as individual nodes and therefore be required to maintain the database. Such an approach is ideal for supply chain management etc.
- Non-Operational Blockchain Data With Consortium
Once again, intermediaries would be put in place to allow clients to access the data held in the database. Companies that hold personal data or sales information that might be required by outside parties and affiliate organizations, who are not authorized to access the database directly, would benefit from such a database implementation model.
My Final Thoughts
The benefits of blockchain databases are simply too huge to overlook. In the business world, anything that gives a company the edge over its competitors must be implemented as quickly as possible. While purebred blockchain databases are not yet ready to replace most existing distributed databases, when blockchain technology is implemented alongside a distributed database, a new realm of exciting possibilities opens up.
As I have shown, these hybrid databases are able to combine the strengths of both technology stacks to make better and more secure databases. The ramifications of wide-scale implementation of such databases are enormous. Sensitive company/client data can be made even more secure and resistant to manipulation. This will help to build trust with clients and outside agencies such as governments etc.
This will effectively lead to greater transparency between companies and their clients, something which will inevitably result in increased confidence and trust within all parties involved.
Since governments would know that these databases are more secure and resistant to manipulation, they would be able to reduce the level of oversight and even regulate certain parts of the industry. Fewer regulations lead to a better and a more efficient business environment, something which will benefit everyone involved.
In the next few years, we should see most of the top global companies implement at least one of the blockchain database approaches I have just outlined. With the number of global database breaches increasing every year, many of which are now being targeted for cyber ransoms, blockchain based databases are now more important than ever. These kinds of concerns will be the catalyst that fuel the real blockchain revolution, which I believe will be a lot bigger and long lasting than bitcoin.
Latest posts by Aran Davies (see all)
- How to Build a Crypto Trading Bot - March 14, 2018
- How to Integrate a Blockchain Technology into Your Project - March 13, 2018
- How to Secure the Internet of Things (IoT) with Blockchain - March 12, 2018