...by Daniel Szego
"On a long enough timeline we will all become Satoshi Nakamoto.."
Daniel Szego

Sunday, April 16, 2017

Comparing Blockcian with a classical relational database

Despite of the hype phase of a Blockchain, perhaps it makes sense to investigate the architecture from a little bit classical, computer engineer perspective and comparing with a classical relational database. 
- data storage: classical relational database stores the data in tables, as a Blockchain based system stores the data in an immutable ledger.
- data amount: classical relational databases are optimized to store a large amount of data, as Blockchain system are not performing very well on large data. For this reason there is usual to provide a hybrid infrastructure if a large number of data should be stored, like storing the data on off-chain storage and integrate for instance and make an integration with Merkle roots or hash values with the Blockchain. 
- data availability: data is replicated and kept synchronous on all of the nodes at Blockchain providing a high available robust architecture by design that can always be scaled up very easily simply by attaching further nodes to the network, At classical database technology data replication and availability are always additional issues to deal with.
- tamper resistance: Blockchain is tamper resistant by design, it is both computationally and photographically difficult to change existing elements of a chain, even if a couple of nodes have been hacked. As opposed if a relational database is hacked, like an administrator password is leaked, than any data of the database can be easily modified. 
- hacking resistance: We can say that Blockchain systems are much more hacking resistant than traditional databases as a certain transaction is validated by all of the nodes. 
- performance: from a performance perspective a traditional database technology is much more efficient then a Blockchain one. At a Blockchain both the validation of the transaction and the consensus mechanism take time, like considering the Bitcoin network the throughput at the moment is about 7 transactions per second. 

From a system architecture point of view, it makes sense to combine benefits of the classical relational database technology with the Blockchain building up software systems where the Trusted Computing Base is realized this way.