multibase icon indicating copy to clipboard operation
multibase copied to clipboard

RFC: base32cx, a base32 encoding with built-in letter-case checksum

Open mr-word opened this issue 6 years ago • 3 comments

This PR includes a draft spec and test cases. The spec is in draft status until someone verifies the first set of test cases with a second implementation.

x is for chECKSum?

mr-word avatar Nov 21 '19 05:11 mr-word

Does this have any implementations, users, or prospective users? This looks like an interesting encoding but we don't even have a multibase for EIP55 which is actively used.

Stebalien avatar Nov 22 '19 16:11 Stebalien

(TL;DR: even if we keep this as a draft, we don't have all that many prefixes)

Stebalien avatar Nov 22 '19 16:11 Stebalien

The tests were generated from this implementation: https://github.com/mr-word/base32cx This implementation shows the bitwise logic and is inherently much less efficient than it should be. If anyone wants to make their own version I suggest looking at how base32hex is typically implemented.

Regarding EIP55, I think you're right that it should be prioritized over this. I'll go ahead and make a draft PR for it before I make progress here.

I was motivated to put this together because I was drawn to use EIP55 for some identifier strings and realized it only uses a hex alphabet for backwards compatibility (Ethereum addresses originally were hex with no checksum). Any new application that wants to harness all the properties of EIP55 but doesn't need to use hex should probably use base32cx instead. This checksum strategy works with many possible base16 and base32 alphabets, but it works best with this alphabet.

This PR is a genuine Request For Comment. Consider it a low-stakes exercise in multiformat table definition governance as well.

mr-word avatar Nov 23 '19 21:11 mr-word