The integration of IT systems enables the handshake between disparate systems and prevents silos, which can lead to potential process and operational inefficiencies. Blockchain technology is based on a distributed, decentralized model in which multiple parties collaborate and build trust over a business network. While this network ensures that the blockchain nodes representing each party are inter-connected, it still enables a closed, sandbox-like environment only. What is the benefit of a blockchain network that is “disconnected” from the existing enterprise business applications? With this context, we will explain why it is imperative to understand the integration capabilities of blockchain and how to enable them.
Interoperability is the ability of different systems, applications, or software to connect and communicate in a coordinated way to exchange information. It is similar to integration; however, the key difference is that interoperable systems provide easier integration with simpler messaging and transport protocols. Interoperability of blockchain has two significant implications since it:
- Determines what mode of integration is possible with the enterprise applications.
- Determines whether two different blockchain networks can interact and recognize each other’s transactions and consensus mechanisms.
As previously said, blockchain technology is based on a distributed, decentralized model in which multiple parties collaborate and build trust over a business network. The emergence of blockchain began with Bitcoin, which is a public blockchain that can be used by an individual or entity for the exchange of cryptocurrency. The underlying blockchain technology was then applied to enterprise use cases by leveraging permissioned blockchain platforms in which one or more peers/nodes represents a participating entity, and this network of nodes is used to broadcast transactions and reach consensus before it is committed to the ledger. Each node is intended to be self-sufficient with the ability to serve any distributed applications and/or existing enterprise applications. Each of the participating entities interacts with the blockchain network through its respective node via certain integration techniques.
What kind of integration is supported in blockchain?
Any interaction with the blockchain network is only made possible by sending and receiving transactions through the blockchain nodes. The blockchain nodes comprise of a runtime engine for executing smart contracts and a local database for storing ledger data. Since smart contracts must produce a deterministic outcome to achieve consensus with other nodes, no outbound interactions are allowed. With that in mind, there are two integration patterns that can be applied:
Application Programming Interface (API) based – Communication with each blockchain node can be enabled by using a blockchain specific software development kit (SDK). This SDK layer can connect to the local or remote blockchain node (via gRPC, HTTP, IPC, etc.) and enable the posting of transactions to the blockchain node. The SDK is usually available in multiple programming languages such as NodeJS, Java, Python, GoLang, Rust, etc. This SDK functionality can be exposed as REST APIs so that it can be consumed by off-chain components such as a web-based or mobile application as well as the existing enterprise applications of an organization. A standardized integration mechanism is available by which transactions can be submitted to the blockchain network, and ledger data can be queried. This API layer becomes a part of the Distributed App (DAPP) layer that is provisioned with each blockchain node. API management (security, throttling, monitoring, etc.) is required for production-grade implementations.
Event-based – Smart contracts are not allowed to directly invoke or consume any external interface, but custom events can be triggered from it. These events can be captured by the blockchain SDK layer and used to send out updates and notifications to the off-chain components. For example, this technique can be used to update an existing legacy or enterprise resource planning (ERP) system as soon as the blockchain ledger is updated. This event-driven integration ensures that blockchain can initiate interactions and integrate with the external world.
How interoperable is blockchain?
Each blockchain network is a unique logical entity identified by a network ID that validates transactions and commits to the ledger based on the consensus mechanism, which can only be understood by the blockchain nodes belonging to that network. Therefore, it is not possible for any two disparate blockchain networks to recognize and then validate the transactions occurring in a different environment.
As blockchain adoption increases, it will lead organizations to join multiple blockchain networks that are built using different blockchain platforms. That would require seamless interactivity between these disparate blockchain networks. This can be made possible by using three patterns, as depicted in the figure below.
- Each blockchain network exposes REST APIs, which can be consumed with appropriate security controls, which is the most adopted integration technique described earlier.
- Setting up of Interoperability nodes in which a node representing each of the blockchain networks is set up on the same infrastructure to enable fast and secure interactions by leveraging the local SDK layer. Each transaction relayed from one blockchain network to the other will comprise of the transaction hash and Merkle proof, which proves that the transaction has originated from a trusted source.
- An intermediate blockchain network that relays transactions and maintains the proof of validation. There are a few initiatives such as Polkadot, Cosmos, etc. but haven't reached the maturity levels required for wide-scale adoption.
Today's blockchain-based solutions have been productionized to meet the needs of a plethora of integrations such as:
- Supply chain solutions that require integration with IoT devices and edge gateways to ensure that real-time, accurate information is relayed to the blockchain.
- Banking use cases that require integration with the enterprise’s financial systems for bi-directional updates for account updates and initiating payment transactions to/from the blockchain.
- Manufacturing use cases that need integration with their ERP systems with the organization’s blockchain node to build a closed-loop system while processing purchase orders and invoices.
Therefore, a secure and standardized integration mechanism for blockchain should be leveraged. For blockchain interoperability to be implemented in its truest form has a long way to go because the current set of blockchain platforms are not built on a common set of standards and specifications. And that is the reason why implicit recognition of transactions and relay of trust between disparate blockchain networks is not feasible.