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

Potential double execution of ERC20 transfer with MPC infra, in specific conditions #219

Open
LyonSsS opened this issue Feb 6, 2024 · 0 comments
Labels

Comments

@LyonSsS
Copy link

LyonSsS commented Feb 6, 2024

Context: While using the old infrastructure with MPC relayers, when a bridge transfer is executed on a destination but fails for some reasons ( low funds, low gas etc), a request can be sent to our team to use Admin rules to release funds back on source, to the user. ( usually we would use retry, but may be some cases when release back on source is the case). If this happens, anyone can still retriggered the destination TX with the same MPC proof that was used for the failed tx, and execute release on destination.

STR

  1. A user sends amount X of token Y, from chain1 to chain2.
  2. Everything goes trough and MPC executes proposal on chain2, in order to transfer the amount X of token Y to user's wallet.
  3. The Execute proposal tx fails, as funds become low on our ERC handler.
  4. We cannot bring funds in a reasonable time line on chain2 and a decision to release funds on chain1 to the user is accepted.
  5. After we bring back funds on ERC handler on chian 2, the user resends the execute proposal tx with the same proof of MPC from step 3.

Exp: Execute proposal should be marked as closed ( finality done) when release on chain1 and thus making it impossible to execute once more .
Act: This is executed fine and release is done.

@LyonSsS LyonSsS added the Bug label Feb 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant