In this blog, we explain why interoperability is critical in the logistics industry for the widespread adoption of blockchain.
We are aware of several projects that are building cross-chain networks. However, we believe that is not enough and hence a call to action from the logistics industry itself, because the industry is highly fragmented and we fear it will stay that way in the foreseeable future. The logistics industry has always used a wide array of applications and vendors and we believe it will continue in that trend adopt multiple flavors of blockchain built on open and enterprise infrastructure. This will exacerbate the adoption of blockchain and slow industry innovation, such as fractional asset sharing, trading freight invoices between parties, and many more.
Use Cases for Interoperability
Use Case 1 – Trading or swapping assets between different blockchains
Let’s assume that Alice has X asset in Blockchain A, and Bob has Y asset in Blockchain B. If they want to swap each other’s assets (e.g., liquidated invoices, collaterals), then both Alice and Bob have to use a trusted intermediary or a notary. If both Blockchain A and B were interoperable, Alice and Bob would be able to trade each other’s assets (a process known as a cross-chain swap) without a trusted intermediary. Swapping assets, especially tokens across chains, requires using an in-house ledger of centralized exchanges and then withdrawing the new token on a new chain. This process is expensive since both Alice and Bob will have to pay transaction fees to the intermediary. Swapping and trading assets is common in bulk logistics and maritime industry. The ownership of shipments on the way from New York to Hamburg may be traded and swapped many times.
Use Case 2 – Communication between blockchains to verify each other’s transactions
Alice has ownership of a container full of auto parts. The ownership is registered in a private blockchain application (it can be public as well). The container is transported and delivered to a consignee, Bob, who is an auto manufacturer. Alice registers Bob as the new owner of the container. Bob’s blockchain needs to verify that Alice’s blockchain has confirmed that the container ownership has been transferred to him. Alice’s blockchain needs to do the same at her end. An auto manufacturer like Bob receives parts and orders from hundreds of suppliers spread across the globe. How realistic is it to think that Bob and all his suppliers, who may also supply to other manufacturers, will be on the same blockchain that Alice uses?
Vitalik Buterin in “Chain Interoperability” mentioned two other use cases that caught our attention because of their usability in supply chain. They are combined and summarized below as Use Case 3.
Use Case 3 — Portability and encumbrance of invoices
Alice, a carrier, has an invoice anchored in Ethereum and wants to borrow against it from a bank or DeFi service. The provider agrees to provide finance against the invoice, but the smart contract is in a different blockchain and needs to lock the invoice in Ethereum so that Alice doesn’t go to another bank with the same invoice and double spend it. If not utilized on another chain, then the asset can be moved back to the original chain. Also, the asset in the original chain can be locked by another chain in order to finance it as a collateral. Multiple parties “sharing” blockchain where invoices are stored would reduce fraud in invoice and other trade financings.
Use Case 4 — Multiple transfer of asset ownership
This use case is an extension of Use Case 2. In the oil and gas industry and container movement across the globe, the ownership of goods/containers can change several times before reaching the consignee, because goods may be traded in mercantile markets during transit. The process is currently handled by multiple intermediaries, legal contracts, and cross border payments. If all the owners use the same blockchain, the problem is solved. A trusted intermediary may force asset owners to use its own blockchain. What if that is not the case? Imagine, assets being transferred from one blockchain to another.
Trusted notary mechanism
One obvious solution is to utilize a “trusted” intermediary that listens to events (Alice and Bob’s transactions) in both or multiple blockchains and provides digital signatures as proof that those transactions have taken place. Mr. Buterin calls it a “notary mechanism.” An obvious flaw or shortcoming in this approach is the centralized intermediary, which can be improved by creating a Byzantine fault-tolerant decentralized exchange, which would then become a “custodian” to maintain a proof that asset transfer has taken place.
Hash lock time contracts
Hash lock time contracts do not require knowledge of what’s happening in counterparty’s blockchain. They also remove a requirement of notaries: a conditional transfer of tokens where the condition is enforced by the blockchain native to it. Hash lock time contracts are enforced by the blockchain, so the parties transacting only need to trust the blockchain to correctly execute the contract. It also works well in a payment channel environment. The simplest description of hash lock time contract as described by Mr. Buterin in “Chain Interoperability” is as follows:
- Alice generates a random secret s, and computes the hash of the secret, hash(s) = h. Alice sends the hash h to Bob.
- Alice and Bob both lock their assets into a smart contract with the following rules (Alice locks first, Bob locks after seeing Alice’s asset successfully locked). On Alice’s side, if the secret is provided within a certain time period, then the token is transferred to Bob, otherwise it is sent back to Alice. On Bob’s side, if the correct secret (i.e. the value whose hash is h) is provided then the token is transferred to Alice, otherwise it is sent back to Bob.
- Alice reveals the secret to claim the token from Bob’s contract. However, this ensures that Bob learns the secret allowing him to claim the asset from Alice’s smart contract.
Cross chain message relay
Instead of relying on a trusted intermediary to pass information between the two blockchains, one of the blockchains (let’s say Blockchain A) takes the block header of Blockchain B to verify transactions and confirm an event or state in Blockchain A. Although, this is more nuanced that it sounds because both blockchains need to use a similar consensus mechanism and structure of ledger. Fahad Shah described cross-chain messaging as basically a query of belief. Mr. Shah questioned how can one design a system to relay messages between blockchains in a situation when one of the chains may be an orphan or forked. It is also conceivable that a message being sent is from a forked or orphan chain.
There are at least 10 projects in this space dealing with the problem of interoperability from multiple angles. For example, Cosmos is creating a hub that connects independent blockchains called “zones.” Aion’s solution is to create a bridge between blockchains and eliminate the need for an intermediary. In addition to these projects, there are alliances and standards bodies such as Blockchain in Transport Alliance, Blockchain Interoperability Alliance trying to define standards and ease the path to interoperability. While there are many projects and initiatives working hard, we hope the interoperability between blockchains will NOT be a “long and grueling battle”.
Feel free to send me your thoughts and comments.
Released on January 14, 2020 on Medium