When we talk to people about Blockchain we realize people seem to have various perceptions that is formed in the context of Cryptographic Currency and since the technology is incubation I guess each perception has to be respected. After 19 years in the industry working for fortune 100 clients I have acquired habit of doing postmortem of each new technology and try to predict the acceptance of the technology. I have been proven right on many occasions and not so right on few occasions.
I agree with people who looks at Blockchain an interesting technology advance that may solve some challenges (and create new challenges) but I don't agree that blockchain is he biggest thing since Internet as some people claim, in fact it is far from maturity and at the most it is a good prototype according to me. Taking a step back.
We implemented something called as a BPM Workflow Reference Database for one of our clients ( I concede that we were not smart enough to think of a distributed ledger) . So adding a new database that kept a track of state of the work-item by referencing it with a workitem-key helped reduce the network calls from the business process to a maximum of one call to get the state of the input reference data at each step of the process and this optimized our solution by a huge margin but we had to create some database triggers and batch processes to keep the Reference Data updated.
What do enterprises achieve by implementing business process management?
Great! So we have implemented BPM for years and clients have benefited immensely but there are some challenges that create bottleneck in BPM solutions and blockchain can solve them. But how about using a traditional centralized database to perform like a distributed ledger? I am not suggesting we deploy a database at each node rather we add a independent database that acts as Ledger Database & can be accessed by all trusted systems over the network. The Ledger Database should have add-on features of blockchain namely immutability, no central authority & global availability of asset over network. Unlike crypto-currencies a BPM solution does not have unknown participants so I think it should work well.
I agree with people who looks at Blockchain an interesting technology advance that may solve some challenges (and create new challenges) but I don't agree that blockchain is he biggest thing since Internet as some people claim, in fact it is far from maturity and at the most it is a good prototype according to me. Taking a step back.
What is blockchain?
A block is the ‘Current’ part of a blockchain which records all of the recent transactions, and once completed goes into the 'Chain of blocks' as permanent data record. Each time a block gets completed, a new block is generated. There is a countless number of such blocks in the blockchain. The blocks are linked to each other like a chain in proper linear, chronological order with every block containing a hash of the previous block.
And what is blockchain in Bitcoin context?
A blockchain is a public ledger of all Bitcoin transactions that have ever been executed. It is constantly growing as ‘completed’ blocks are added to it with a new set of recordings. The blocks are added to the blockchain in a linear, chronological order. Each node (computer connected to the Bitcoin network using a client that performs the task of validating and relaying transactions) gets a copy of the blockchain, which gets downloaded automatically upon joining the Bitcoin network. The blockchain has complete information about the addresses and their balances right from the genesis block to the most recently completed block.
So whats great about Blockchain in the BPM context?
Have you implemented workflow solution where a work-item has to pass through different people who work on it in a sequence before the work-item is processed and work is flagged as complete? Or maybe implemented a BPM solution where a business process has multiple tasks and has interface with multiple internal systems for validation and reference data which makes the process slow and consumes resources. What if each work-item in a business process was 'Smart Work Item' and could carry all the data references required to process the work item so that network IO was minimum? The processing would be faster, we would eliminate wait times and dependency on related tasks and business would run with optimum efficiency. I am assuming you are familiar with BPM so I wont give examples to explain the above statements. This can be achieved by a distributed ledger (as in Bitcoin Blockchain) or a Smart Business Object (as I like to call it) that is accessible only to the authorized parties across the internal or external network. The Smart Business Objects (SBO) are encrypted data objects with a private and public key and they can be viewed, updated by the authorized parties but they cannot be deleted by anyone and at the end of business process flow/s, when the life of the SBO is over the object would still be available on the internal network in view only mode.We implemented something called as a BPM Workflow Reference Database for one of our clients ( I concede that we were not smart enough to think of a distributed ledger) . So adding a new database that kept a track of state of the work-item by referencing it with a workitem-key helped reduce the network calls from the business process to a maximum of one call to get the state of the input reference data at each step of the process and this optimized our solution by a huge margin but we had to create some database triggers and batch processes to keep the Reference Data updated.
What do enterprises achieve by implementing business process management?
- Operational Efficiency – Streamlined business processes lead to streamlined operations, with greater visibility and control. The automation of repetitive, low value tasks can also lead to cost savings.
- Compliance – All business processes are carried out in-line with a company’s procedures and process documentation can be generated for demonstrating compliance in an audit.
- Competitive Advantage– A BPM solution ensures that processes drive operational efficiency, business visibility and can quickly adapt to customer requirements, which helps to provide a strong edge over the competition and shorter time to market
- Scalability – Automated processes scale much better than manual processes – ideal if an organisation is expanding.
- Agility – A BPM solution will enable a company to quickly update its processes in response to developments in its operational environment.
Great! So we have implemented BPM for years and clients have benefited immensely but there are some challenges that create bottleneck in BPM solutions and blockchain can solve them. But how about using a traditional centralized database to perform like a distributed ledger? I am not suggesting we deploy a database at each node rather we add a independent database that acts as Ledger Database & can be accessed by all trusted systems over the network. The Ledger Database should have add-on features of blockchain namely immutability, no central authority & global availability of asset over network. Unlike crypto-currencies a BPM solution does not have unknown participants so I think it should work well.
Disadvantages of using a Blockchain / Distributed Ledger -
The blockchain as a database is not so great, measured by traditional database standards: throughput is just a few transactions per second, latency before a single confirmed write is 10 minutes, and capacity is a few dozen GB. Furthermore, adding nodes causes more problems with a doubling of nodes, network traffic quadruples with no improvement in throughput, latency, or capacity. Worst thing is that Plus, the blockchain essentially has no querying abilities.
Advantages of using a Ledger Database-
- Globally accessible database to store data & documents
- High capacity and throughput for millions of records and documents
- Interchangeability to store large files and media
- Data immutability that brings trust and audit-ability to the records
- Query technology that enables quick retrieval records and documents
- Reduced security and liability in managing data
There is need to prototype and compare the 2 solutions, one with blockchain ledger and another with database ledger. I seriously doubt if the investment in Blockchain is really worth for enterprise computing that usually takes places between known & trusted partners. Ledger Database that I have mentioned here has been implemented successfully in the past by and it is only a design pattern. Database can be designed to act more like a blockchain without the surprises that under construction blockchain technology has to offer. Bitcoin has been successfully running on block with few exceptions-where system was hacked. Databases are not hack proof either but the benefit of creating a new database to work a Ledger Database comes very close to achieving the benefits that Blockchain offers without fully sacrificing the control of your database which is important for enterprise computing. Let's keep discussing , build come prototype for comparison and find a new cost effective design pattern using proven technologies