Informal Systems

2024-03-13

Hub Monthly Update - February 2024

Marius Poke • 2024-03-13

It’s time for the usual update from the Informal Systems’ Cosmos Hub team. Here are some of the highlights:

  • We completed the testnet phase of Gaia v15.

  • We started the preparatory work for Gaia v16.

  • We started upgrading the LSM to SDK v0.50 (a prerequisite for upgrading Gaia to SDK v0.50).

  • We started the implementation phase for both ICS Epochs and Partial Set Security.

  • We collected, reviewed and implemented community & customers feedback on AtomWars.

  • We started the discussion on the Babylon integration with the Cosmos Hub.

Note that we use CHIPs to track the progress of our work. Hence, throughout this update we make several references to different phases of the CHIPs framework.

Gaia v15 - Testnet Phase

In the last months, we worked on upgrading the Cosmos Hub to use Cosmos SDK v0.47. This upgrade will move the Hub away from SDK v0.45 (which is marked as end-of-life) and enable a series of integrations, such as the Skip Block SDK (which was requested by the community in prop 842). See the Gaia v16 section below for more details in future integrations.

Throughout this month, we cut a series of release candidates for Gaia v15 that were used to upgrade the public testnets - both the release and the replicated security testnets. This work entailed fixing several integration bugs found during testing, upgrading to the latest point release of SDK 0.47, and adding support for metaprotocols using the transaction extension options. The support for metaprotocols was necessary as the upgrade to SDK 0.47 was breaking for the Asteroid Protocol, a protocol that enables arbitrary inscriptions on Cosmos Hub.

In addition, we updated both the upgrading guide and the docs.

Finally, we started the discussion within the community by posting a draft of the v15 software upgrade on the forum.

The next steps for Gaia v15 are the voting and deployment phases. The target upgrade date is March 20th.

Gaia v16

We started working on Gaia v16, which will integrate several features that are made possible by the upgrade to SDK 0.47.

First, we are working together with Skip to adopt the Skip Block SDK and include the EIP-1559 fee market lane (cf. prop 842).

Second, we are working towards enabling the ICA controller on the Cosmos Hub, which will enable the Hub to control accounts on remote chains. We are currently working together with the Neutron team to define a first use case — enabling the NTRNs in the community pool to participate in Neutron’s governance. Once we clarify all the details, we’ll post a signaling proposal on the forum and on the Hub.

Finally, we are working together with Stride Labs to integrate their implementation of the IBC Rate Limit module. This will add an extra layer of protection to IBC transfer channels in case of an exploited vulnerability. The module was already moved to its own repo, making it easier to integrate on other chains than Stride (thanks to the Stride team for this work). We are working on a proposal on the initial rate limits for the Cosmos Hub. We’ll soon post a draft on the forum.

The work on v16 can be tracked in this EPIC.

Upgrade the Liquid Staking Module to SDK v0.50

The Liquid Staking Module (LSM) was added to the Cosmos Hub as part of the v12 upgrade (as requested by the community in proposal 790). The integration to Gaia required moving the Hub on a special branch of the SDK (i.e., v0.45.16-ics-lsm starting with Gaia v12 and v0.47.10-ics-lsm starting with Gaia v15). Important to note is that having LSM on a special branch of SDK means that LSM is not being automatically upgraded with mainline SDK. Thus, LSM requires continuous maintenance until it gets added to mainline SDK. For this reason, we started upgrading LSM to SDK v0.50 (as a prerequisite of upgrading Gaia to SDK v0.50). You can follow the progress here.

Model-Based Testing

In the last months, we have been working on enabling Model-Based Testing (MBT) on Replicated Security, with the purpose of increasing the confidence of our implementation and, consequently, development velocity. Our approach entails using a Quint model of the protocol to generate tests. Check out this blog post for more details.

This month, we started working on adding consumer initiated slashing to the Quint model and integrated it with MBT. You can follow the work here. We also expanded the Quint model to include the Partial Set Security (PSS) logic and built the driver to be able to connect it to MBT once the PSS implementation is ready.

ICS Backward Compatibility Testing

Previously, we updated the ICS e2e test infrastructure to enable backwards compatibility tests. In this month, we finalized this work by adding backward compatibility tests to ICS. This means that moving forward, these tests are running in our CI, which will increase our confidence in future ICS releases.

ICS Epochs – Implementation Phase

We started implementing ICS Epochs (cf. ADR 014). The implementation is currently under review and we plan to release it as part of Gaia v16.

In addition to the initial benefits — reducing the cost of relaying for ICS — the changes made for epochs will facilitate the PSS implementation. Without going into details, the new approach introduces functionalities to manipulate validator sets, such as filtering out validators that are not opted in.

Partial Set Security - Implementation Phase

We started the implementation of PSS (cf. ADR 015). We enabled Top-N and Opt-In consumer chains to join via governance proposal, we added messages for validators to opt in and out of PSS, and we adapted the reward distribution protocol so that only opted in validators receive consumer rewards. We also started working on constructing and sending a partial validator set to consumer chains.

The work on PSS can be tracked in this EPIC.

Megablocks - Spike Phase

We continued the spike phase of Megablocks. We completed the implementation of the multiplexer shim with basic ABCI++ forwarding functionality between CometBFT and the application, including e2e testing. The next step is to add support for the multiplexer shim to handle multiple applications

ATOM Wars - Discussion Phase

End of January, we posted a design proposal for the “ATOM wars” governance platform. The forum post received many thoughtful feedbacks and valuable ideas. Several projects contacted us privately to express their interest in participating in the system to receive liquidity injections. We also pro-actively reached out to a handful of major Cosmos chains to understand what we could do to make sure they would take part in the bidding process. We then aggregated & reviewed all the feedbacks & ideas, and made a couple of updates to the original design.

Our goal is now publish an updated version of the system under the form of a litepaper that will be attached to a governance proposal requesting the community pool to allocate some ATOMs to seed the first liquidity bucket.

Babylon - Discussion Phase

We posted on the Cosmos Hub forum a description of how Babylon will integrate with Cosmos Hub. In a nutshell, the idea is to enable Bitcoin holders to secure ICS consumer chains through Babylon’s Bitcoin staking protocol. This is part of a larger strategy to make the Cosmos Hub a security aggregator, bringing together staked assets from many sources, a battle tested validator set, and innovative consumer chains.

Replicated Security as a read only protocol

Last quarter we looked into simplifying the Replicate Security protocol by removing one of the three message types – the VSCMaturedPackets (see the Q4 updates). Although such a simplification would make it easier to iterate and bring improvements, such as Partial Set Security, we believe that VSCMaturedPackets cannot be removed without compromising the security of the system. This month, we published a blog post — Learning to Live with “Unbonding Pausing” — with our findings.