Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CIP: Add ICA Host #39

Merged
merged 13 commits into from
Jan 19, 2024
Merged

CIP: Add ICA Host #39

merged 13 commits into from
Jan 19, 2024

Conversation

sampocs
Copy link
Contributor

@sampocs sampocs commented Jan 4, 2024

Overview

This PR opens a draft CIP to add the ICA host module to Celestia, which would enable a more trust minimized liquid staking solution than the current offerings.

Forum Post

Checklist

  • New and updated code has appropriate documentation
  • New and updated code has new and/or updated testing
  • Required CI checks are passing
  • Visual proof for any user facing features like CLI or documentation updates
  • Linked issues closed with keywords

Copy link
Contributor

@YazzyYaz YazzyYaz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i need you to update permissions so i can assign a CIP number to this PR. please grant me edit permissions on your PR.

Copy link
Contributor

@cmwaters cmwaters left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would advocate that when a CIP calls for the adoption of a feature as a dependency that we avoid dumping the entire spec and instead write a high level summary of the introduced functionality, how the specific integration would look and the parameters that may need to be chosen and then for the rest, just include a link to the detailed specification if people want to read more.

Comment on lines 897 to 899
## Backwards Compatibility

No backward compatibility issues found
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a state machine breaking change. There is no backwards compatibility. The feature must be introduced in a major version only

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated

@sampocs
Copy link
Contributor Author

sampocs commented Jan 6, 2024

@YazzyYaz just gave you edit access!

@sampocs
Copy link
Contributor Author

sampocs commented Jan 6, 2024

I would advocate that when a CIP calls for the adoption of a feature as a dependency that we avoid dumping the entire spec...

Good call! Took another pass here

@cmwaters

Copy link
Member

@evan-forbes evan-forbes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd also second @cmwaters comments, but mostly LGTM


While ICAs are flexible and enable numerous use cases, they’ve mainly been used for liquid staking. Liquid staking has high product market fit in crypto, evidenced by Lido on Ethereum, which holds the highest TVL of any DeFi protocol. Its popularity stems from key advantages over native staking for many users: it gives users liquidity on their stake, while still accumulating staking rewards and decreases the DeFi hurdle rate (e.g. you can lend your stake to earn additional yield).

It’s necessary to implement liquid staking in a way that’s as safe and aligned as possible, since it’s close to the metal of PoS networks. LSPs can accumulate a large share of stake and impact the decentralization of the network, depending on how validators are selected. Given the high market demand for liquid staked TIA and impact LSPs can have on network decentralization, Celestia’s LSPs should align with Celestia’s core values: decentralization, trust minimization, and community governance. The current market offerings for liquid staking, while functional, fall short of these core principles by adding additional layers of trust and centralization risk (~$10M has been liquid staked on Celestia so far, custodied by a multisig). Multisig custody is suboptimal for a few reasons: custodians have arbitrary protocol ugprade powers, key management is complex ($1B+ has been stolen from multisig protocols due to key compromises), and custodians aren’t slashable. However, the main risk is that the market doesn’t care; recently defi projects using multisig custody have attracted over $1B.
Copy link
Member

@evan-forbes evan-forbes Jan 9, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

since it’s close to the metal of PoS networks

do you mind elaborating in this thread what close to metal means? if we can, avoiding idioms could maximize clarity for all readers in the future.

safe and aligned as possible

ideally, I think it would be beneficial to attempt to be as objective as possible. I think its sufficient to just say that ICA enables the use of a tendermint based chain instead of a multisig.

Copy link
Contributor Author

@sampocs sampocs Jan 18, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you mind elaborating in this thread what close to metal means?

It just means that it sits lower in the stack than a typical application - since it's quite close to the staking module which is a fundamental part of a proof of stake chain. Naturally, changes to the lower level can be a bit more invasive.

Agreed though that it's best to not use idioms! Just pulled it out

it would be beneficial to attempt to be as objective as possible...

Agreed, updated!

[commit]


ICA is secure, minimal, and battle-tested. Secure: ICA one of a few core apps implemented by the ibc go team. The ICA implementation has been audited by Informal Systems. Minimal: Adding ICA to a chain is around 100 LoC, and the controller module itself is lightweight. Battle-tested: ICA modules have been used in production on most large IBC enabled chains for more than a year, and ICAs currently hold hundreds of millions of dollars.

While ICAs are flexible and enable numerous use cases, they’ve mainly been used for liquid staking. Liquid staking has high product market fit in crypto, evidenced by Lido on Ethereum, which holds the highest TVL of any DeFi protocol. Its popularity stems from key advantages over native staking for many users: it gives users liquidity on their stake, while still accumulating staking rewards and decreases the DeFi hurdle rate (e.g. you can lend your stake to earn additional yield).
Copy link
Member

@evan-forbes evan-forbes Jan 9, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it gives users liquidity on their stake, while still accumulating staking rewards and decreases the DeFi hurdle rate (e.g. you can lend your stake to earn additional yield).

in an effort to be objective, it might be beneficial to also disclose any known downsides as well

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good call! added here

Copy link
Collaborator

@rootulp rootulp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work @sampocs ! I thought this was really well written.


## Backwards Compatibility

This proposal is backwards-incompatible because it is state-machine breaking. The feature must be released introduced in a new major version.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nit] released and introduces seems duplicative

Suggested change
This proposal is backwards-incompatible because it is state-machine breaking. The feature must be released introduced in a new major version.
This proposal is backwards-incompatible because it is state-machine breaking. The feature must be introduced in a new major version.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[done]


### General design

A chain can utilize one or both parts of the interchain accounts protocol (*controlling* and *hosting*). A controller chain that registers accounts on other host chains (that support interchain accounts) does not necessarily have to allow other controller chains to register accounts on its chain, and vice versa.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[question] does this proposal recommend enabling one or both parts?

  1. The controlling portion of interchain accounts
  2. The hosting portion of interchain accounts
  3. The controlling and hosting portion of interchain accounts

I think it's either 2 or 3 but think it could be clarified.

Copy link
Collaborator

@rootulp rootulp Jan 17, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just 2! Added a sentence to help clarify [here]

@YazzyYaz
Copy link
Contributor

@YazzyYaz just gave you edit access!

Hey i still don't have edit access so can't approve and merge and assign numbering. please fix @sampocs

@sampocs
Copy link
Contributor Author

sampocs commented Jan 18, 2024

@YazzyYaz the invite expired, just sent a new one. Let me know if you don't receive an email

@YazzyYaz YazzyYaz merged commit 66b8451 into celestiaorg:main Jan 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants