Blockchain is a protocol and ledger for building an immutable historical record of transactions. The ledgers are concurrently stored in multiple locations, and the entries are cryptographically signed to prevent changes. An auditable trail of all the transactions is maintained, removing the need for a trusted middleman. A blockchain can provide secure, accessible digital versions to all parties in a transaction, and smart contracts can be used to manage the workflow of approvals and automatically transfer payment upon all signatures being collected.
Blockchains allows different parties that do not know or trust each other to maintain consensus as to the state of changes made to a shared ledger. Bitcoin is probably the most recognized use of Blockchain technology as it has enabled payment transactions between strangers without need for a third-party financial intermediary (that is, a bank). The scope of potential applications is broad and applies to almost every industry, giving rise to wide interest and investment in blockchain over the past few years.
At its core, any proposed blockchain solution has following key components-
Shared Ledger – Append only the distributed transaction record. While the intended design of Bitcoin blockchain was to democratize visibility, in an enterprise blockchain this would have to be reconsidered due to regulations surrounding consumer data. As the information in the block once verified is copied to every node, there is absolute transparency with access based on permission.
Public and Private – Public blockchains such as Bitcoin and Ethereum are permission-less available for use. Any node can conduct transactions as well as take part in the consensus process to advance the blockchain.
The private (permissioned) blockchains are blockchains are operated by an organization or consortium. Its access is only to trusted users who have been granted the permission to use the blockchain by its proof. The transactions in private blockchain are faster compared to Public Blockchains as it does not need a large network of hashing (miners) and heavy computation.
There are trade-offs between permissioned and public systems including transaction processing rate, cost, censorship and the flexibility in changing and optimizing the network rules.
Cryptography – Ensures authentication and verifiable transactions. Each new block contains a cryptographic hash of the previous block and makes it hard to break by any adversarial process in the distributed system.
Immutability, Irreversibility – Records in the nodes are cryptographically secured, with no possibility for anyone (without key access) to change the data, so there is no threat to data integrity.
Trust Systems or Consensus – The consensus protocol is designed to maintain a common, unambiguous ordering of transactions and blocks and guarantees the integrity and consistency of the blockchain across geographically distributed nodes. State of consensus is reached when all nodes produce the same output and the outputs produced by the nodes are valid according to the rules of the protocol.
Business Rules or Contracts – This is a rules component, as needed by any business to define the flow of value and state of a transaction.
An important success factor for blockchains in an enterprise architecture is middleware. They need to be integrated with each other and several other systems, communication protocols, and technologies in real time.
Different Implementations—for example, Hyperledger and Ethereum—cannot integrate easily and can be thought of as completely different enterprise systems. To share information between these two systems, you would need to create a blockchain integration layer or standardize on a single protocol. Enterprise blockchain implementation needs to be augmented with capabilities as depicted in the diagram.
The diagram below depicts one view that includes the components often necessary for a successful blockchain implementation. Starting from the bottom of the diagram and working upwards, note that the distributed ledger/blockchain, security components, blockchain APIs, and smart contracts are capabilities typically offered by a blockchain technology stack.
Blockchain Proxy Layer
A blockchain proxy layer is introduced to create a level of abstraction between the underlying core blockchain technology stack and integrated applications or services. When communicating via this layer, all blockchains look the same, reducing the level of dependency on the selected technology and allowing for decoupled solution architectures. Note that given the state of today’s blockchain technology stacks, it can be difficult to achieve a completely generic proxy layer as capabilities and approaches often vary greatly between solutions. However, the use of system-level micro-services that bundle commonly used blockchain features can facilitate the creation of such a proxy layer.
To enable existing applications to work with blockchain seamlessly, an access layer is needed -
1) To handle the complexities of blockchain integration and smart contracts
2) Interface with functionalities of the blockchain application and communicate them to legacy applications.
3) To have complete visibility of every event in the blockchain network.
4) Allow blockchain events to start processes across off-chain and on-chain applications.
5) Provide for secure governance and risk mitigation of the blockchain network.
Blockchain applications are going far beyond their first application domains in virtual currencies, enabling not only the execution of simple transactions, but the carrying out of computation on a network, where e.g. payments become conditional on the state of some internal or external variables whose execution does not require any human intervention.
Smart contracts—self-executing code on a blockchain that automatically implements the terms of an agreement between parties—are a critical step forward, streamlining processes that are currently spread across multiple databases and legacy systems. Instead of static data objects that are inserted into the distributed ledger, a Smart Contract is a program that can perform the generation of downstream actions when appropriate conditions are met. They only become immutable once accepted into the ledger. Business rules are embedded in a contract that can automatically trigger based on certain conditions being met. E.g. a credit pre-qualification or assets transferred after a payment is made or after legal approval is provided etc.
They are not contracts in the legal sense, but components of software that extend blockchains’ utility from simply keeping a record of financial transaction entries to automatically implementing terms of multiparty agreements. Smart contracts are executed by a network of nodes using consensus protocols and Once deployed on the blockchain, the smart contract is always running and responding to requests. Essentially this lowers the need for third-party oversight because the software itself is a controlled and open framework visible to all transaction participants allowing parties to agree upon terms, with reduced risk of error or manipulation.
Before blockchain this type of smart contract was cumbersome because parties to an agreement of this sort would maintain separate databases.
Services and Process Automation
Enterprise business services and process automation (such as workflow or case management) capabilities will access the blockchain layer for establishing a business network—or for incorporating other blockchain-related capabilities into defined business logic.
Event handlers are components configured to listen for changes to the blockchain or the connected endpoints, and to automatically invoke appropriate enterprise logic in response to these changes. Event handlers typically work in conjunction with the blockchain APIs and data distribution transport, and may be bundled or created as micro-services within the enterprise architecture.
Organizations need to consider which business transactions will be part of the blockchain, and how to define them. Adeptia helps clients capture the opportunities offered by blockchain by identifying viable, feasible, and desirable use cases; recognizing industry business processes where blockchain technology is applicable; building and integrating blockchain technology solutions.
Recommendations for a Blockchain Implementation
· Identify the business opportunity and specific use case while setting clear expectations of outcome
· Plan a staged implementation for a non-mission-critical activity that reduces operational risk
· Use a hardened, open-source code base such as that of Ethereum or Bitcoin
· Avoid multiminer implementations as long as practical
· Design in mechanisms for monitoring and for a network wide "dead man's switch" (one or more mechanisms to limit the damage in case of unexpected anomaly)
· Plan for smart contracts concepts early on, but delay development until all technical and especially business issues (including legal) are resolved
Blockchain solutions will result in a substantial change in the way applications are developed and deployed. It is important that Blockchain is able to connect to various mainstream application system like ERP, CRM, etc allowing customers to achieve business success. However, as previously discussed, a blockchain is not always the answer. Various factors must be taken into account to determine if it is appropriate.
From an IT perspective, blockchain is an important part of the enterprise’s core, so it should be integrated seamlessly with other back-end legacy systems.
In the future, blockchain solutions from different companies or even industries will be able to communicate and share digital assets with each other seamlessly.
For enterprises whose use cases upend on blockchain , the potential benefits of integration are quite clear: More partnerships within an ecosystem that can drive more value and boost ROI.
Organizations can leverage blockchain capabilities innovations that transform existing business processes, and connect those capabilities back into their core processes. To allow organizations to participate in multiple blockchains, a separate integration can be avoided by having an access layer that is integrated with the systems of record that facilitate participation in multiple blockchains.