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

Bug in transfer module for IBC Eureka #1178

Open
AdityaSripal opened this issue Dec 5, 2024 · 0 comments
Open

Bug in transfer module for IBC Eureka #1178

AdityaSripal opened this issue Dec 5, 2024 · 0 comments
Assignees
Labels
bug feat/eureka v2 TAO specification

Comments

@AdityaSripal
Copy link
Member

IBC Eureka no longer prenegotiates channel fields before enabling packet flow. This not only means that the version in the packet is unnegotiated, but the <portID, portID> pairing is also unnegotiated.

Thus on a given Eureka channel; any application can send packets to any other application.

This means that multiple application senders can send to the same transfer destination port on the receiver.

The way that transfer differentiates denoms is to only use the destination port and destination channel. This worked in IBC v1 because there was a tight coupling between channelIDs and also a tight coupling between portIDs.

Now that the coupling between portIDs is being relaxed, this no longer works because tokens sent from different applications on the same sender chain to the transfer receiving application will all be mixed together. Different apps on the sender chain are not mutually trusted (especially for smart contract chains).

We need to fix this for the new transfer application by including srcPort, destPort and destChannel in the denom when receiving a token.

We need to particularly consider how to deal with backwards compatibility in this case. Perhaps the best thing we can do is maintain an internal mapping in transfer from the new IBC traced denom to the original iBC hashed denom that only contains the destPort

@AdityaSripal AdityaSripal self-assigned this Dec 5, 2024
@AdityaSripal AdityaSripal added bug feat/eureka v2 TAO specification labels Dec 5, 2024
@github-project-automation github-project-automation bot moved this to Backlog in IBC-GO Eureka Dec 5, 2024
@AdityaSripal AdityaSripal changed the title Backwards compatibility for transfer module Bug in transfer module for IBC Eureka Dec 5, 2024
@womensrights womensrights moved this from Backlog to In progress in IBC-GO Eureka Dec 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug feat/eureka v2 TAO specification
Projects
Status: In progress
Development

No branches or pull requests

1 participant