-
Notifications
You must be signed in to change notification settings - Fork 19
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
[Feature Request] Remove EIP-55 checks from atomic_bridge.move
#99
Comments
So I would argue that EIP-55 provides some assurances and not only to check human typos.
And two more arguments:
Now if we decide to remove EIP-55 checks, which is perfectly reasonable and simple, we should probably check a few things:
|
Yes, I think those three requirements would be reasonable middle ground. The requirements of nonzero and 40 hex digits seems fine. But that's an interesting point about hardware wallets using EIP-55. Ultimately if we decide to keep EIP-55, we could engineer solutions. I mainly just want to the team to come to a decision about it so we have a reference point about it in an issue. Whatever the team decides, we can work with. |
🚀 Feature Request
Instead of doing an EIP-55 checksum check, the Move modules in the framework should simply verify that Ethereum addresses are 20 bytes and nonzero, containing no spaces.
Motivation
movement
repository to test against. When opened as a Remove EIP 55 check fromatomic_bridge_counterparty::lock_bridge_transfer_assets
and useEventHandle
for events #87, discussion opposing it included the following:from @franck44
and
from @andyjsbell
So the concern is that validation is done on chain. Which is fine; we should check that the addresses are 20 bytes and nonzero, with no spaces. But EIP-55 checks don't make sense to do on-chain, because EIP-55 is meant to check for typographical errors made by humans.
See:
A user could enter the wrong Eth address and experience loss of funds regardless of whether EIP-55 checks happen in the Move modules. In my opinion, EIP-55 checks in the Move modules are not needed.
Pitch
Describe alternatives you've considered
We tried it with the EIP-55 checksum check. What happens is that between function calls, the relayer must convert lowercase addresses to checksummed addresses. This is hacky and could introduce errors avoided by simply passing along the lowercase address.
Are you willing to open a pull request? (See CONTRIBUTING)
Yes but the idea of removing EIP-55 checksums from the Move modules has been rejected so far. It should be discussed first before a PR is opened.
Additional context
movement
repository states, "we would like to have EIP checks across the relayer wherever we are handling ETH addresses, this is not so trivial because of the various From implementations in either direction." I don't see that as being necessary, because there is no manual copying of addresses by a human, on the relayer. It is sufficient to check that an address is 20 bytes, nonzero, and contains no spaces.The text was updated successfully, but these errors were encountered: