-
Notifications
You must be signed in to change notification settings - Fork 5.9k
Description
Abstract
Extend the Yet another cool checksum address encoding #55 to ICAP addresses
Rationale
The ICAP format has both a Direct and Basic format, which only differs by one character in length; this is risky, given the weak checksum of only 6.6 bits (two digits: 00-99). There are real risks that someone might add a character by mistake and accidentally create a valid but unintended ICAP. Similar issue was raised here
IBANs are by specifications case insensitive, making it backwards compatible to alter the case for the purpose of checksums.
Implementation
Applying the Yet another checksum to the ICAP Direct and Basic. The case-change should only be applied to the "address" section of the ICAP, not the 4 first characters. In effect, the final ICAP will look like this:
Basic (34 chars):
XE7338O073kYGtWWzN0f2Wz0R8Px5ZPpZs
Direct (35 chars):
XE73038O073kYGtWwZN0f2Wz0R8pX5ZpPzS
Note: The change in case above is only for illustration, I haven't really calculated the real checksum. That should be trivial if people find this EIP useful.
The problems that this page raises, that an user enters one extra character without changing the checksum, is in this proposal almost reduced to zero.
The number of checksum bits increases from 6.5 bits to 6.5 + 30(26/36) ~ 28 bit => 1/268 million*