iscc-specs icon indicating copy to clipboard operation
iscc-specs copied to clipboard

Clearly define the base58 alphabet

Open OR13 opened this issue 4 years ago • 5 comments

https://iscc.codes/specification/#base58-iscc

https://tools.ietf.org/id/draft-msporny-base58-01.html

https://w3c.github.io/did-core/#bib-base58

most people think of "base58" as "base58btc" the one used by bitcoin.... it would be excellent to clearly communicate which version of base58 is being used.

OR13 avatar Nov 04 '20 17:11 OR13

if the alphabets are the same, but the ordering is different, thats going to make developers very sad.

OR13 avatar Nov 04 '20 17:11 OR13

on the call, it was suggested that base-32 will be used in the future, in which case, i suggest aligning with:

https://github.com/ipfs/js-ipfs/issues/1995

OR13 avatar Nov 04 '20 17:11 OR13

Yes base32 encoding is on its way (see: https://github.com/iscc/iscc-specs/blob/develop/iscc/codec.py#L183). The switch is planned to be included with the upcoming 1.1 release. I created a separate issue for that.

One open question is if we want to use a custom alphabet. A custom alphabet would have the advantage of providing human readable mnemonic prefixes such that ISCC component types can be recognized easily by humans. But I am not sure if it is worth to deviate from the standard alphabet to support human readability.

I am interested to hear what do others think about this!

titusz avatar Nov 04 '20 18:11 titusz

I'm strongly against a custom alphabet... from a developer perspective, it extra work... and I don't see it as "worth it".

You can use https://iancoleman.io/bip39/ , I would not recommend reinventing this wheel it distracts from the core value you are providing :)

OR13 avatar Nov 04 '20 18:11 OR13

+1 to what @OR13 said, on all counts. Custom alphabet not worth it.

dmitrizagidulin avatar Nov 04 '20 18:11 dmitrizagidulin