Why use Blockchain as a database?
Blockchains rely on cryptography to allow a set of computers to make changes to a global record without needing a central actor.
Removing the middleman cuts costs in almost every sector.
The blockchain is a ledger that records everything that happens to a collection of data known as a “block” in a chronological order or “chain”.
As a currency this is an important feature because it allows users to be sure their digital money is one of a kind, the same way each note in your wallet is unique.
“Blockchain tech will be the way we create assets because it allows you to transfer digital information without copying,” says Adam Ludwin, chief executive of Chain.com, which builds blockchain networks.
Blockchain can be used to track the history of all sorts of information and maintain its value, so, for example, doctors could use it to update medical records.
Since each change to a blockchain is made simultaneously across the whole network, no information is lost and because changes cannot be undone the system maintains its transparency. A special key is needed to make changes to each block, so individuals can keep their records safe by protecting that key.
Is blockchain a potentially viable database solution for modern, high transaction volume applications?
The blockchain technology in general has some characteristics that make it difficult to work with high volumes.
Take a look at Bitcoin for example. The average transactions per day have never been more than 300K: Transactions per day (source blockchain.info)
Even more important, the median confirmation time for a transaction is around 8 minutes!
Now how many computers around the world are responsible for keeping the bitcoin database? I’m no expert on bitcoin but I think the complete history of transactions are stored in the block chain, so all computers that participate in the bitcoin network essentially keep a copy of the entire database (the transactions part of course, not the accounts info and secret keys, these are kept in the personal wallets).
We can only estimate how many they are but I’d guess they are more than a million. 300K transactions in a day with a million computers does not sound like high volume. And 8 minutes for confirmation?
A modern RDBMS in a decent hardware can easily go up to 1K transactions per second. That’s about 86M transactions per day. The confirmation time? That depends on the size of the transaction (how many tables and rows it affects) but for a small transaction of the bitcoin type (remove 42 coins from account A and add 42 coins to account B), it will be milliseconds.
In conclusion the difference in volumes and time is 1000 to 100000-fold today.
If the blockchain technology solves this issue in the future, it might be possible to be used in medium or high volume applications. We can read discussions and suggestions for how the problem should be solved – many of the companies mentioned in the links are actually working on these issues – but we haven’t seen yet an actual working solution or product that offers high volumes and speed.
Using the blockchain as a live database:
Think of it as a first normalized form without any really good built in search capability or indexing as far as the blockchain goes. Basically a excel sheet without any computation capabilities that just gives you ‘read/write’ capabilities with lots of verification and validation. A blockchain is a great way to validate your data is sanitized and correct before you put it in a database which let’s you query it differently, index it, etc.
The blockchain in this case is purely a ledger and an API for PUT and GET requests. That’s about it. The blockchain is interesting because you need a majority of nodes to pass the transaction as valid and there aren’t any rollbacks, once it’s committed it’s committed.
Thus if someone tries to put in a fake transaction it will be caught unless the person doing it has a pool which has a strong majority share. Then they can validate it in their pool before someone can reject it. That is the strong point of the blockchain. Verification that the data is accurate. It is also typically pretty slow. You’re looking at about 10 minutes under normal load for it to get validated. Under heavy load the time goes up quite a bit.