ELI5: is it true that Base58 doesn't prevent typo, but Base58check does, really because there is a checksum? I am reading the book Grokking Bitcoin by Manning 2019.
It first said, if John sends the token (bitcoin) to the cafe owner but made a typo in the cafe's address (the PKH), then that token is &quot;burned&quot; and gone forever. Nobody can use it whatsoever.
So to safeguard it, Base58check is used.  But Base58, like Base64, is merely to convert some numbers to different representation of characters, and can be converted back and forth freely by anybody.
But it seems like, what is at work to prevent the &quot;typo&quot; is not Base58, but that there is a 4 byte &quot;checksum&quot;, perhaps like some banks, when you tell them the account number, they have a one digit checksum which is the last digit of your account number, to see whether the checksum match.
So the Base58check really depends on this &quot;checksum&quot; to verify that you didn't make a typo, and the odds that you made a typo but the checksum still checks is by that 4 bytes, therefore is 32 bit and is 1 in 4 billion odds?  So it is not Base58 itself, but the &quot;check&quot; part or the &quot;checksum&quot;?
Yes. Every byte sequence corresponds to one Base58 string. Every byte sequence also corresponds to one Base58Check string, which contains a 4-byte redundancy, a checksum.
And this 4-byte-code's only purpose is the detection of transmission errors (typos). Newer Bech32 addresses have a different kind of checksum allowing error correction, up to a certain level in addition to error detection.