Interoperability as an Argument
Interoperability has been one of the major narratives and arguments of decentralized applications in the realm of the Cosmos SDK. The main feature to push interoperability is the Inter Blockchain Communication Protocol. Or IBC for short.
Terra Classic is an IBC enabled chain. Yes, there might be some SDK level restrictions on some IBC channels regarding Osmosis, Juno and Crescent. But IBC on TerraClassic is not disabled after all. I know from my own experiments, that it is indeed possible to open new channels to let’s say cosmoshub-4 and transferring LUNC there.
The nuked IBC infrastructure
Despite of IBC being completely functional on Terra Classic (apart from 3 or for 4 channels) the IBC relaying infrastructure is almost completely gone. Most of the IBC relayers seized operation after the Terra crash. And because of that pretty much all connections to peer chains are now in an outdated Tendermint client state and can only be recovered using funded government proposals on TerraClassic as well as on the peer chains (Updating these canonical channels by means of on-chain governance is not part of this proposal and should be discussed elsewhere).
If we do nothing about it, then the IBC infrastructure won’t recover from it’s current state. Why is that? It’s because there is no big organization backing Terra Classic anymore. There is no organization that is willing to pay for such an infrastructure. On TerraClassic the only thing we have is our LUNC and our mostly unfunded community.
You have to bear in mind, that running an IBC relaying infrastructure is a very cost intensive activity. Paying the server infrastructure is only a fraction of what you need to pay as a relayer. IBC relaying means committing state changes on the chains that you are relaying between. You as a relayer have to pay gas fees to do so. Imagine paying gas fees for thousands of the users who use your relay. My bags certainly would not withstand such a drain.
Think about that: You only have the costs of running the infrastructure. When you are not a validator you have basically no income to cover your expenses. Relay operators need incentives. Otherwise the TerraClassic IBC landscape will stay as nuked as it is.
A Way Out
Luckily, there is a way out. The Interchain Standard (ICS) has been extended by ICS-29 far back in 2021. This section of the standard proposes on-chain incentives for relay operators. There is a wonderful Medium article explaining all the technical ins and outs ( IBC Relaying as a Service: The In-Protocol Incentivization Story | by Interchain | The Interchain Foundation | Medium).
What this means is, that the relay operators are getting paid for each transaction a user initiates. Quite similar to how validators are paid for each transaction they process for you on the blockchain. Fees will be escrowed and then paid to the relay operators.
An implementation of ICS-29 for on-chain relay operator incentives are available in the ibc-go module as of version 4.0.0. Current version of ibc-go on TerraClassic is 1.1.5.
This post proposes to bump the ibc-go module version on the TerraClassic blockchain to 4.0.0. Version 4 of ibc-go gives the developers access to the newly implemented 29-fee module as well as to the corresponding module keeper. It is proposed, to incorporate this new module and its corresponding keeper in the TerraClassic blockchain. It is also proposed to incorporate any version bumps that are required to update the ibc-go module to 4.0.0.
Whether this proposal is going to be posted as on-chain governance proposal depends on how well it resonates with the community and what insights the discussion might provide. I, as the proposer, expect a timeline of 10~12 days to be enough to thoroughly discuss the issue. Then we’ll see how to go forward. Contributions to this discussion are very welcome.