7

At present a raw integrated Monero address (e.g. 44AFFq5kSiGBoZ4NMDwYtN18obc8AemS33DBLWs3H7otXft3XjrpDtQGv7SqSsaBYBb98uNbr2VBBEt7f2wfn3RVGQBEP3A) is 106 base 58 characters. This is a lot for a human to transcribe manually without errors.

Consider that Bitcoin BIP39 defines a word list and translation mechanism between a word in that list and a binary seed (byte array) which is ultimately used to define a 128/192/256 bit word.

Given the complexity of a Monero address, is there a tool that takes the binary representation of the above and reverse encodes it into a word list for easier transmission by humans? Is this something that should be added to Monero wallets?

For example, the above could be represented by (and this is entirely made up):

correct horse battery staple aardvark lunch stealth wibble

(I'm aware of the OpenAlias initiative but I think it's limited to single addresses rather than a general representation solution).

6

It's an interesting idea, and yes it would be possible to do. All you'd have to do is define some convention to make the conversion and have it coded. Then, if people like it, it could stick around and start to be used widely.

Personally, I wouldn't use it, as the string of words would be much longer than the base58 one. Consider a bigger dictionary than the one used for wallet mnemonics, say 8000 words. You'd need 30 words from that dictionary to encode it! (106^58 = 30^8000)

With 70000 word dictionary you'd need 24 words. But that big of a dictionary comes with other problems like probably many similar words, which would again increase the chance of error. With the 1626 word dictionary currently used for mnemonics, you'd need 37 words!

  • I think overall that the amount of entropy that needs to be represented is too much for a standard word list as you point out. In light of that, I'm inclined to use this as the answer. – Gary Rowe Oct 9 '16 at 12:50
3

It'd be possible to do that, yes. Mnemonic word lists are made from arbitrary binary strings by repeated base58 conversions from constant sized chunks of those strings. The canonical example is 25 word seeds for private spend key for deterministic keys. The code for allowing mnemonics for arbitrary bitstrings doesn't exist in Monero at the moment, but it'd take mostly removal of checks in order to be done.

Note, though, that if this is done, it becomes a lot harder to determine whether a given mnemonic string is valid: currently, if it doesn't resolve to a 256 bit string (when the checksum passes), it's known to be invalid, because it's only used for private spend keys. If it were to be used for any bitstring, it'd be harder to determine sanity checks.

1

No there is no mnemonic for addresses. I keep my addresses in a secured storage DB (KeepassX) and copy the DB to a s USB drive if I need to transfer it to another device (which I don't do very often).

There is however an electrum style mnemonic seed that is generated when you first create a wallet that can be used to restore a wallet from the blockchain (but this doesn't seem to fit for what you're looking for as it is a seed for the entire wallet including private keys).

  • But back to Gary's question, I wonder if it's possible to create a mnemonic string from a 95-character address. Definitely not via the official Monero software, but perhaps through a third party. – user4 Oct 8 '16 at 19:01

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.