[idea] IBC steward role for Namada

by @Gavin on behalf of Knowable

Purpose

Discuss the necessity / priority of implementing an IBC steward role for Namada.

1) What

Namada needs to scale support across an ever-growing set of IBC tokens. Similar to the PGF steward, let’s consider an IBC steward:

  • is elected (and removed) by voters
  • makes governance proposals to change IBC token limits
    • proposals pass by default, unless voted down
  • is rewarded

Current Configuration

Creating an IBC channel is permissionless, but their tokens cannot enter Namada until limits are increased using a governance proposal. The default_mint_limit (ie. the cap for an IBC token on Namada) and default_per_epoch_throughput_limit (ie. the net amount an IBC token can come/go on Namada) for any new token are both zero. See parameters here.

Currently, this is an example of how IBC token limits are changed by governance proposal: namada-governance-upgrades/phase3/src/lib.rs at main · anoma/namada-governance-upgrades · GitHub

The Role

IBC steward team’s responsibilities:

  • seek new token candidates and handle inbound requests
  • collect signal/sentiment for activating new token
    • eg. token’s metrics (eg. IBC volume); interest from the token’s community; interest from Namada stakeholders
  • coordinate relayer infrastructure support (if connection to a new chain is needed)
  • submit new tokens to the chain registry asset list
  • monitor token usage vs existing limits
  • discuss and propose limit increases or discontinuation
  • alert stakeholders and operators of emergencies
    • help coordinate recovery
    • eg. expired/frozen IBC channel; Namada security vulnerability exploitation; large volume of stolen tokens being deposited into Namada
  • other tbd elements of IBC token maintenance and development

The role should be rewarded, but let’s please save discussions about these details for implementation.

The Mechanism

Aside from adding a new kind of steward election, Namada would need a new governance proposal type to support key IBC token maintenance parameters. A single proposal could adjust multiple IBC token limits. Anyone could make a proposal with a deposit, but it should fail by default unless it achieves a passing threshold. If the steward makes the proposal, it should pass by default unless voted down. Steward shouldn’t need a deposit.

It’s tempting to ponder details about how we (Namada) could implement this–eg. perhaps IBC steward should have special powers to increase but not decrease limits–but these details aren’t yet relevant for this discussion unless they make/break the decision about necessity/priority to implement it.

Notes

Namada’s roadmap has yet to be to set (ఠ_ఠ)

Created an issue here.

4 Likes

I think this is a great idea. We need to make sure that we are clear about creating only one channel per chain, which should be executed only by the steward. They would then manage the coordination of relaying with the use of Namada IBC primitives.

As for a steward, I would like to propose @Daniel! TuDudes, which includes @Veight, myself, and our small team, would be happy to help support their efforts in tooling and primitives. This includes the scripting and documentation of IBC relaying, such the use of a docker image and detailed steps for relayers and chain configs which Daniel happened to share during his testing for various chains.

3 Likes

CryptoSJnet support this idea and also suggest to start this by proposing @Daniel to be the first one elected for this role .

1 Like

I like the essence of the idea.

Thinking of implementation / conceptualization, I feel it may be a better fit to simply have one of the PGF stewards (from a protocol perspective) have a special focus on IBC. So that all stewards of governance would have same powers in this area.

I’m a little wary of creating too many special roles at protocol level, new categories of inflation etc.

3 Likes

really appreciate everyone’s interest!

pls remember that the purpose of this is topic to discuss the necessity and priority of implementing this. imo that’s Step 1, and jumping the gun invites muddiness to the conversation

not how it will be implemented, eg how it will be rewarded or how powers will be applied, @preto
imo this would be Step 2

not who should fill the role, @sirouk @cryptosj
imo this would be Step 3 or 4

1 Like

re your comment to my reply, I don’t see how those two are separate. I’m offering feedback on exactly what you are asking, ie if a separate role should be created in protocol (as I understand your initial post). Like I said, I support the idea of having an IBC steward, but also think it would be better to have it under the umbrella of PGF stewards when it comes to systems design.

2 Likes

copy that :+1: FWIW, I’ve been known to be biased to action :grin:

Yes, this should be a high priority. IBC plays a vital role as the technology contributing to the vision and utility of Namada. Let’s get moving on Step 1!

1 Like

got it

in this case, existing PGF could fund the role, so a new category of inflation doesn’t seem necessary. but PGF steward as a role is so different than IBC steward as role that i don’t see how these fit in the same bucket

1 Like

That’s a great idea. IBC-related-decisions should be made fast.

Regarding implementation details - really need to think from the system point of view. But right now the responsibilities of existing stewards are different from those required for IBC stewards. Gavin’s original idea looks good, complicating PGF stewarts is not what we need. It is better to separate functions.

1 Like

when @Daniel for this role ?

1 Like

curious to know what @cwgoes thinks

1 Like

I think having a steward focused on IBC monitoring, infrastructure, and guidance generally makes sense, and I also think that this work should be rewarded using PGF in some fashion. The existing steward mechanism seems to me like it would be sufficient for at least a first version – that would allow an IBC steward to receive some rewards themselves and to make PGF proposals to fund IBC-related infrastructure operations such as relayers.

I’m not yet convinced that we need to add a new kind of proposal or create special permissions for the IBC steward to have IBC-rate-limit-related or IBC-client-related governance proposals pass by default. Although there will likely be a high volume of IBC rate limit increase proposals at first, I think we can expect these to become less frequent over time as the system stabilizes, and they should be manageable by the regular governance system. Special permissions here could come with risks that we haven’t thoroughly considered, including for the IBC steward themselves – it can be dangerous to possess keys which (more easily) allow changes to IBC rate limits or light clients, as an adversary might attempt to compromise these in the kinds of scenarios that rate limits are intended to reduce the risk and contain the potential damage of. I’m not categorically opposed to this idea, either, but I think we should first start with the aspects of this role which don’t require protocol changes or new permissions (which strike me as far more important responsibilities and tasks anyways), and see over time whether we need protocol changes to optimize processes or not (and what precisely those changes might be).

(so in general I think I’m in full alignment with @preto’s expressed preferences above)

3 Likes

Thanks @preto, @cwgoes!

My sense is that:

  1. there is support for an IBC Steward role,
  2. but without special protocol powers

Revised idea

If our IBC Steward will not have on in-protocol designation or special powers that enable IBC rate-limit change proposals to pass by default, we can still create this role without implementing a protocol change.

  • is elected (and removed) by voters
  • is rewarded

The IBC Steward role could be single person, but given how critical the responsibilities can be, it may be more responsible for more than one person to form a group to be the IBC steward with a multisig.

A PGF proposal can be made as a means of electing the IBC Steward using their multisig to receive cPGF (continuous public goods funding). This effectively redirects a portion of the PGF inflation away from the PGF account and towards the recipient multisig. A new IBC Steward could be elected to replace an existing steward elected with another PGF proposal.

  • makes governance proposals to change IBC token limits
    • proposals pass by default, unless voted down

Interfaces (eg. explorers, Namadillo) could perhaps support identifying the designated IBC Steward address(es) so that voters can see the role of address that’s proposing an IBC rate limit change.

The role can still be carried out effectively, just that all voters would be expected to be involved in each IBC rate limit change proposal, and limit changes can be batched within a proposal.

Future

Until we better identify the patterns of fulfilling this role, having the role outside of the protocol is probably the safest route.

However, I still think it will be important to implement a dedicated IBC proposal type soon after the completion of Phases of Mainnet: IBC-specific governance proposal type & independent tally settings · Issue #3475 · anoma/namada · GitHub

If we find it valuable to enshrine the IBC Steward role in Namada’s protocol, ie. we’re confident in our oversight of a steward and it’s necessary to enable our growth, we can revisit this potential implementation in future.

1 Like

It should be noted that a protocol change / addition would still be required in order to allow a proposal like one that changes IBC rate limits to be executed by default by some steward. Currently, a PGF steward can only make specifically a PGF proposal pass by default.

In general, I’m cautiously open to this idea. I wonder if the existing process we already have will suffice for setting and changing IBC rate limits. If, with some data, we determine that this role would be particularly useful, then I would be more open to it. But I wonder if we’re anticipating a problem that we might not have.

Anyway, I do think some kind of IBC-specific governance proposals in the future would be a nice protocol addition.

2 Likes

It should be noted that a protocol change / addition would still be required in order to allow a proposal like one that changes IBC rate limits to be executed by default by some steward. Currently, a PGF steward can only make specifically a PGF proposal pass by default.

@brentstone to be clear, I’ve backtracked on the idea for a protocol change that creates a special role. I’m saying that we can socially organize a dedicate IBC Steward role. This is independent from my assertion that we should have a dedicated IBC proposal type.

IBC proposal type would ideally minimize the need to introduce wasm to change IBC limits (which i assume we’ll need to do relatively often for the foreseeable future). It reduces the complexity to create them, and reduces the risk of arbitrary wasm be executed.

1 Like

Just adding an additional responsibility to the IBC Steward role:

  • coordinate and advocate for sustainable relayer funding (eg. transaction fees)
1 Like

If I am reading @cwgoes correctly, our preference is to use the PGF steward protocol mechanism as a way to solidify this role and reward the IBC steward. I can’t decide if I think this is better, or better to simply (as I think you suggest now, @Gavin) not have a special system role for the IBC steward but rather reward through continuous PGF. I think I lean towards thinking that making the IBC steward protocol/systems-wise a PGF steward, would underline the importance of the role, and, I think (someone correct me if wrong) also give some special powers in relation to generally making PGF proposals that might be useful for the IBC steward. So I cautiously lean towards using this mechanism. I will not be sad if the cpgf model is employed instead though, but I think the importance of the (organizational) role you are proposing, is significant enough that it could warrant an appointment (protocolwise) as PGF steward, just with a more specialized (organizational) area of responsibility. Let me also say at the risk of being naughty and running too far ahead, that I see also @Daniel as a naturally given part of any IBC steward construction, whether it be a team or an individual. (I would have no qualms with making it Daniel as individual)

2 Likes

(to be clear, I’m also fine with rewarding this role with CPGF, I don’t have a strong opinion on that vs being a steward. what I’m not convinced that we need yet is a new, separate role requiring protocol changes)

3 Likes

@Daniel, thoughts about the value of having such a role?