The biggest advantage:
The core value of a blockchain is that it enables a database to be directly shared without a central administrator. Rather than having some centralized application logic, blockchain transactions have their own proof of validity and authorization to enforce the constraints. Hence, with the blockchain acting as a consensus mechanism to ensure the nodes stay in sync, transactions can be verified and processed independently.
But why is disintermediation good for us? Because a database is still a tangible thing even though is just bits and bytes. If the contents of a database are stored in the memory and disk of a particular computer system run by a third party even if it is a trusted organization like banks and governments, anyone who somehow got access to that system can easily corrupt the data within.
Thus the third-party organizations especially those who control important databases need to hire many people and design many processes to prevent that database being tampered with. Unavoidably, all this takes a great amount of time and money.
However, with blockchains, we can now replace these third-party organizations with a distributed database, locked down by clever cryptography. “Like so much that has come before, they leverage the ever-increasing capacity of computer systems to provide a new way of replacing humans with code. And once it’s been written and debugged, code tends to be an awful lot cheaper” (Gideon Greenspan).
Other advantages are :
The biggest disadvantage:
Because of the nature of blockchains, it will always be slower than centralized databases. When a transaction is being processed, a blockchain has to do all the same things just like a regular database does, but it carries three additional burdens as well:
- Signature verification. Every blockchain transaction must be digitally signed using a public-private cryptography scheme such as ECDSA. This is necessary because transactions propagate between nodes in a peer-to-peer fashion, so their source cannot otherwise be proven. The generation and verification of these signatures is computationally complex, and constitutes the primary bottleneck in products like ours. By contrast, in centralized databases, once a connection has been established, there is no need to individually verify every request that comes over it.
- Consensus mechanisms. In a distributed database such as a blockchain, effort must be expended in ensuring that nodes in the network reach consensus. Depending on the consensus mechanism used, this might involve significant back-and-forth communication and/or dealing with forks and their consequent rollbacks. While it’s true that centralized databases must also contend with conflicting and aborted transactions, these are far less likely where transactions are queued and processed in a single location.
- Redundancy. This isn’t about the performance of an individual node, but the total amount of computation that a blockchain requires. Whereas centralized databases process transactions once (or twice), in a blockchain they must be processed independently by every node in the network. So lots more work is being done for the same end result.
Other disadvantages are: