[Archives] 1st Non-standard IBC Transaction Executed by Persistence (2/2)
Note 1: Persistence has pivoted to liquid staking and building DeFi primitives to increase the utility for staked assets. This article is only for archive purposes. Refer to Persistence’s official blog for the latest updates.
Note 2: The Cosmos ecosystem is constantly growing and expanding. This article’s content is now outdated. For the latest content, see https://cosmos.network/.

This is a two-blog series highlighting how Inter-Blockchain Communication (IBC) Protocol is relevant for Enterprise use-cases.
The first blog introduced IBC and went into detail about how IBC will be used at the Persistence Hub (Enterprise Hub of Cosmos) level. The second blog presents the 1st IBC transaction done by the Persistence team in late 2018.

Contents:
- Introduction
- What is Comdex?
- Issuance of NFTs and RFTs
- Comdex v0.1 Architecture - First Non-Standard IBC Transaction
- Implementation Outline
- Limitations to Implementation
Persistence aims to bring interoperability to enterprise Blockchain networks by leveraging the Cosmos SDK Inter-Blockchain Communication (IBC) module, which will not only be implemented at the Persistence Hub level but also in private or consortium Blockchain applications built on the Persistence SDK.
There has been a strong focus on IBC research and testing at Persistence since inception and the team was able to successfully implement a proof-of-concept for a Non-Standard (not a general token transfer) Inter-Blockchain transaction in October 2018. This non-standard Inter-Blockchain transaction was conducted in the Comdex application and was a simulation for a cross-border trade settlement process.
The blockchain related processes involved to conduct a settlement on the v0.1 version of the Comdex platform involved an inter-chain exchange between two commodity traders of a Non-Fungible Token (NFT) that represented a *real world* physical commodity, with a Re-Fungible Token (RFT — Refunged NFT) that would represent a real-world fiat deposit.
What is Comdex?
Comdex is a physical commodity trade tech platform that is currently operating on its own Persistence SDK based zone, powered by the decentralized governance of industry leading validators.
At this point in time, Comdex is being used by SMEs and MEs present in South East Asia and the Middle East for legal agreements, negotiations and document provenance for high-seas trades. Comdex will soon begin its ‘Cross-border Settlement’ service offering, followed by the launch of its ‘Trade Finance’ platform.

NFT Issuance on Platform
On the Comdex platform, NFTs are created to represent physical commodities once a commodity trader lists a public or private sell order on the platform.
These NFTs pertaining to real world commodity consignments contain various data points such as:
- Digital fingerprints of real-world high value ‘Documents of Trade’ and other legally binding contracts
- Listed price of the commodity per unit (before and after negotiations) and its total shipment value
- Shipping and other logistics related information of the consignment
RFT Issuance on Platform
RFTs are issued on the platform to represent real world fiat deposits from commodity traders into Comdex’s exchange account.

These RFTs pertaining to real world banking transactions involved in the process of settlement, contain various data points such as:
- Details of the transaction such as the total amount of the transaction and the value of the transaction that has been redeemed.
- Details of the User Wallet Addresses that hold the ownership to the full amount or partial amount of the transaction.
RFTs are used instead of NFTs to represent real world fiat deposits because RFTs can be used to send/receive partial amount (in addition to full amount) to a wallet/escrow. As a result, RFTs retain the properties of divisibility while also allowing for the storage of unique metadata.
Comdex v0.1 Architectural Design
In the Comdex v0.1 architectural design, the Comdex application modules are split into three chains; the Hub chain, the Asset chain, and the Fiat chain. The commodity ‘asset chain’ handles the NFT metadata as well as the minting and burning of NFT related transactions while the ‘fiat chain’ handles the RFT metadata as well as the minting and burning of RFT related transactions.

Blockchain based storage (state) is the most expensive resource for most if not all decentralized applications and data manipulation is the most computationally intensive part of any transaction. The Comdex commodity trade transactions depend on NFT generations as well as transactions, which rely heavily on both blockchain based data storage as well as data manipulation.
To allow for reasonably sized application state and transaction times (in-other words increased scalability), Comdex v0.1’s architectural approach was to split the storage and transaction handling into two different application specific chains (zones) that are able to communicate with each other.
The Hub chain maintains the wallets for the participants and handles the ownership transfer of NFTs/RFTs through IBC transactions.

First non-standard IBC transaction
At the time of implementation of the non-standard transaction, the Cosmos SDK was on version 0.24 and the official IBC module was still fully work in progress. We extended the relayer from the official module to handle different message types and defined the behavior on each chain for handling these messages. The codebase can be found in the git repo. The main components of this implementation include:
- The main application which contains all application logic and includes all modules for the Hub chain.
- The asset chain application which has the logic for the Comdex NFT creation, modification and exchange.
- The fiat chain application which has logic for the proprietary commit fiat ledger system.
- The modified relayer.
All the transactions implemented:
- ibc.MsgIssueAssets
- ibc.MsgSendAssets
- ibc.MsgRedeemAssets
- ibc.MsgIssueFiats
- ibc.MsgSendFiats
- ibc.MsgRedeemFiats
- ibc.MsgBuyerExecuteOrders
- ibc.MsgSellerExecuteOrders
- ibc.IBCTransferMsg
The video for a demo IBC transaction operation can be found below.
Limitations to the Non-Standard IBC Implementation:
- The relayer for the IBC transaction was centralized and hence, a single point of failure. As a result, the system lost on decentralization, transaction censorship resistance and aspects of trustlessness.
- Only one address had to be allowed permission to relay the IBC transactions to eliminate malicious transactions from entering the system.
- The relayer address had to pay for all the IBC transactions, leading the gas fee to be continuously added to its wallet or risk IBC channel halting.
- Because of the lack of shared security, application logic and metadata storage had to be redundantly replicated at all the participating state machines.
- The cost of running three different chains for one application is extremely infrastructure exhaustive and is not practical in the early stage. Comdex does not and will not utilize an architecture involving multiple zones for the near future.
IBC going ahead…

The Cosmos IBC module is nearing the final stages of its development and it is our responsibility as active community members who wish the best for Cosmos to contribute to the development and proliferation of IBC.
The IBC working group is a community led initiative involving several individuals and organizations aligned in their goal to assist in the creation as well as the deployment of IBC.
About Persistence
Persistence is the Enterprise Hub of Cosmos powered by Tendermint Core. Hybrid in nature, Persistence has privacy and control of Private Blockchains with Distributed Consensus through third-party validators.
Persistence aims to bring enterprise-grade functionalities to the Cosmos ecosystem and find the most palatable and digestible ways for enterprises to use relatively more permissionless, public and open technology.
We are always on the lookout for connecting with individuals or organizations who wish to take advantage of the opportunities present in the Enterprise Blockchain space and want to learn more about Persistence. If you wish to get in touch, please feel free to reach out to us.