The database we know and used so far are centralized in nature. That is we have one big database server which stores data. SQL Server, Oracle, DB2 etc are some of the popular databases. This database technology has been evolving since 80s. Now with the advent of Blockchain, there is a significant shift in the database technology.
Ethereum, in general Blockchain, is the new kind of database. It is a distributed peer to peer replicated database. Each Ethereum node will have a copy of the database. Ethereum will make sure that the database is in sync across all node, that every transaction is replicated and synced across all participating nodes. Every Ethereum node will have the same exact copy and there is no need to cross check.
Below are typical characteristics of Ethereum decentralized database:
- Decentralized control. There is no central authority to manage and maintain database
- Immutable. Once the transaction is sealed inside a block and the block is added to the chain, the transaction cannot be modified
- Scalability. Ethereum is a highly scalable architecture. It can be easily scaled by adding additional nodes
- Fault Tolerant. As Ethereum is distributed in nature, if a node goes down, the other nodes in the network automatically picks up the transaction
Unlike central database technologies, Ethereum uses consensus approach for committing transactions. When the user performs a transaction, in the traditional way this transaction is sent to the database and the database commits this transaction. In the Ethereum way, this user transaction is sent to the connected node. The node then broadcasts the transaction across the network of distributed nodes. Each node that receives this transaction personally checks that the transaction is valid. So every node in the network comes to a consensus about the transaction. As you see Ethereum (or blockchain) changes the paradigm of transactions. It transfers the authority of transaction to the decentralized network. Due to this Ethereum is sometimes called as distributed ledger.
All centralized databases provide programming capabilities with stored procedures. Ethereum also have similar functionality. It is called as Smart Contract. A smart contract is class that can have multiple methods that interact on the data persisted by smart contract. These classes can resemble the package concept in Oracle and the methods in the smart contract are similar to the procedures within the package. So smart contracts in Ethereum resembles to packages in Oracle. These smart contracts can also be similar to the database constraints.
- Ethereum promises to eventually change the database we know. But here the current limitations of this new technology:
- Query capabilities: Databases are known for their querying capabilities. Ethereum lacks this basic capability.
- Rich permissioning: Databases provide very granular permissions. By default Ethereum is designed to be public in nature, hence it provides basic permissions. There is a special fork by JP Morgan, Quorum, which provides permissioned Ethereum chain.
- Low latency: Due to the distributed and decentralized in nature, Ethereum adds significant latency.
As you see with the current state of Ethereum, it has advantages and disadvantages. So we can pair up Ethereum with database and can reap the benefits of both the world.
No comments:
Post a Comment