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

ICS20: Question about Desired Properties #1037

Open
michwqy opened this issue Nov 20, 2023 · 3 comments
Open

ICS20: Question about Desired Properties #1037

michwqy opened this issue Nov 20, 2023 · 3 comments
Labels
app Application layer. question

Comments

@michwqy
Copy link
Contributor

michwqy commented Nov 20, 2023

Fault containment: prevents Byzantine-inflation of tokens originating on chain A, as a result of chain B's Byzantine behaviour (though any users who sent tokens to chain B may be at risk).

I don't quite understand the specific meaning of this property. If there is a Byzantine error in the chain B, such as an error in the consensus mechanism, the IBC protocol should not be able to solve it.

I am not very sure if this property refers to the behavior of Chain B (whether correct or incorrect) that will not affect the native tokens on Chain A. But in that case, I think it's a duplicate of another property

Preservation of total supply (constant or inflationary on a single source chain & module).

@crodriguezvega crodriguezvega added app Application layer. question labels Nov 20, 2023
@AdityaSripal
Copy link
Member

Hi, perhaps it is clearer to express these properties the following way:

Preservation of total supply (constant or inflationary on a single source chain & module) contingent on honest chains
Fault containment: a Byzantine chain B is only able to compromise security of tokens that have chain B in its ICS20 trace. Tokens originating on an honest chain A and then inflated on byzantine chain B cannot be redeemed back to chain A beyond the original amount issued by A to B.

Does this make things clearer?

@michwqy
Copy link
Contributor Author

michwqy commented Nov 22, 2023

The second property is that the module/user x on chain A sent t tokens to chain B (meaning x pledged t tokens to escrow account), and these tokens inflated on Byzantine chain B, but x cannot redeem more than t tokens from the escrow account. The first property cannot constrain x to redeem tokens exceeding t, as the total number of tokens on chain A is still constant at this time. Is my understanding right?

@michwqy
Copy link
Contributor Author

michwqy commented Nov 29, 2023

@AdityaSripal Is my understanding right?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
app Application layer. question
Projects
None yet
Development

No branches or pull requests

3 participants