Blockchain Meets Database: Replace or Combine?
If you're adopting blockchain to improve your database processes, keep in mind that you don't need to do a complete overhaul. Here's how it should be done.
Join the DZone community and get the full member experience.Join For Free
When adopting blockchain into your organization, it's not necessary to replace your existing databases and associated processes. Instead, you can integrate and improve.
Although blockchain technology offers promising advances to DevOps and the digitization of disintermediation and consensus-based dissemination of information, the proponents of pilot systems all too often suggest that existing processes and legacy databases should be discarded in favor of the new.
Companies build up their operations methodology over time, and this is usually tied to their data storage systems and associated interfaces. As employees become familiar with these methods and processes, they become more resistant to radical change, and for good reason — although the existing system has its flaws, if the company is successful, then it still basically works.
On the other hand, there is increasing pressure on DevOps to share data rapidly, reliably, and securely — not just between different departments or international offices within the same company but also with suppliers, partners, subcontractors, and consortium members. This pressure brings a whole new level of headaches to IT infrastructure managers and database administrators, to whom blockchain may first appear to be an attractive solution.
Unfortunately, talented and experienced blockchain engineers and systems architects are expensive and are in short supply. Banks and other financial institutions are snapping up suitable candidates at an alarming rate, and universities are slow at offering students the courses and training needed to address the skill shortage. As a result, even if you are able to assemble a suitably talented team to address your data sharing problems, it's going to be expensive.
Therefore, the cost of moving needs to be weighed against the advantages of adopting a blockchain-backed system. The features of immediate benefit are:
Disintermediation. A blockchain system doesn't have a single central authority that controls everything. This makes it suitable for collaborative operations — for example, where there are subcontractors with a high level of autonomy, like a consortium.
Decentralization. Each participant or node within the system can carry a full copy of the shared data. As a result, there is no single point of failure and protection against DDoS attacks or even a simple human error at a given site comes for free with the system.
Securing. In private blockchains, there's the possibility of sharing data selectively with specific parties on through a public key infrastructure (PKI) maintained on the blockchain. Unlike traditional replication and synchronization products, a blockchain can allow for selective encryption key exchanging to ensure that only specific participants of the system are able to access the shared data.
Real-time replication (almost!). Although the most commonly known public blockchain system (Bitcoin) has a block addition time of ten minutes (i.e. it can easily take half an hour or more for data to be accepted into the system), private blockchains allow the initiator to select their own average block time, allowing for much faster transaction settlement. For example, MultiChain allows you to specify block generation target times as low as a few seconds.
Auditability. The basic building block of a blockchain is a hash-linked list in which each block of data contains a digest of all the preceding blocks of data. As a result, as data is added and the chain grows over time, earlier data gets locked down and is effectively tamper-proof. The system is open to verifiable and trustworthy auditing, which can be extremely beneficial for organizations charged with strict compliance rules.
In addition, blockchain systems support smart contracts, which are distributed programs that afford the automation of workflows between different parties and also native assets such as cryptocoins or tokens, which may have an application to balance settlements, accounting or payments.
The question becomes: Is it possible to integrate and connect my existing ERP and data systems to reap these benefits in a cost-efficient manner and without requiring a total overhaul and redesign of my existing systems?
If the existing system is purely paper-based or relies on database administrators emailing each other database dumps or CSV file attachments to be manually uploaded, then a replacement system based on a blockchain could be the driver of change. However, for most, I believe that the current approach should be to integrate and extend existing systems.
The following should point you in the right direction:
Start small. You shouldn’t aim to attach all your database systems and data to a blockchain in one go. Instead, identify the urgent pain points where data transfer and sharing is manual or is conducted with ad-hoc scripts whipped together by an admin or engineer. Asking, Is the script documented and source-controlled? is a good way to determine the level of robustness and reliability of a current process or an automated script. If it isn’t, ask yourself what would happen if the relevant person were to leave the company!
Obtain metrics. An advantage of enhancing a system rather than updating it is that you can easily measure the impact of the changes. Ensure that in the first few weeks or months, you record time saved in, for example, handling customer tickets, the reduction of manual updates from one system to another, or the reduction in the number of emails sent using the improved process. In comparison, with a total overhaul, you're often trying to compare apples with oranges, making any kind of meaningful comparison extremely difficult.
Plan for expansion and improvement. Once you have a few successful use cases to present to upper management, along with metrics to back up your assertions, you’ll find that driving through further change becomes easier. At this point, you can start considering smart contract workflow improvements or other more esoteric blockchain features.
For the last year, I've been working on connecting the blockchain to existing databases with a goal of allowing database administrators to deploy a blockchain-backed solution without having to become experts in the technology (or even know much about blockchain at all). If you have an opinion, a use case, or any other suggestions or queries, please feel free to contact me by leaving a comment!
Opinions expressed by DZone contributors are their own.