2

Is it known the minimum amount of characters you need to mistype to get another valid address?

Addresses contain checksums, and also must follow some specific rules, so I guess this could be calculated: I wonder if someone did.

5

Check sum is a result of 2 hash-functions: SHA256 and RIPEMD160. The length of checksum is 4 bytes. Hash functions are indistinguishable from random oracle, so it is possible, if you make 1 mistake in non-checksum character, you get the same checksum. But probability of this is 1/2^32.

Added later: not exactly correct due to base58 encoding. Correction in the another answer.

  • 1
    To add to this: whether you make 1 mistake or 20, the probability that the address is valid is still 1/2^32. – Tim S. Feb 28 '14 at 12:54
  • 1
    I'm afraid this is the wrong answer. The solution is NOT to find two addresses with the same checksum, but with the same sequence of base58-encoded characters for the large integer represented by the hash concatenated with checksum. See my answer for examples. – uminatsu Feb 28 '14 at 20:26
  • 1
    I agree that you are right. Base58 encoding deforms last check sum bytes. But my calculation of probability is correct anyway. – Zergatul Mar 1 '14 at 21:06
3

Here's an example of a pair of valid addresses that differ by only one character.

1xxxxxxxxxxxxxxxxxxxy1wqmDWjatp7t
1xxxxxxxxxxxxxxxxxxxy1wqmDWgatp7t

another example pair

1xxxxxxxxxxxxxxxxxxxxyE4zW1N3nMx2
1xxxxxxxxxxxxxxxxxxxxyE4zW1U3nMx2

For both pairs, the 32-bit checksums are NOT the same, but they satisfy the condition that

(checksum1 % 656356768) == ((checksum2 + 356826688) % 656356768)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.