To celebrate the New Year, I have the gift of a
hidden unstable, unsupported feature for you .onion-lovers. Here is the address of Wikileaks (
http://wlupld3ptjvsgwqw.onion/) encoded as an 8-word mnemonic phrase in 8 languages or writing systems:
English | real element glow tennis pluck museum hair shuffle |
Chinese (Simplified) | 洁 爱 唱 仰 泪 吴 乎 怒 |
Chinese (Traditional) | 潔 愛 唱 仰 淚 吳 乎 怒 |
French | parole distance fautif sombre notoire loyal flairer ratisser |
Italian | retina erba idillio suonare potassio opposto india scuderia |
Japanese | にもつ けろけろ しちりん ほめる とかす たんまつ しゃうん はんしゃ |
Korean | 잠자리 반죽 상품 큰딸 이불 열차 선풍기 중반 |
Spanish | pie dulce gimnasio tabla oscuro molde guerra repetir |
What's the purpose of this feature? It seems (superficially) that there's no real-world use case.
Why, whats the real-world use case of BIP 39? To ease human memorization, transcription, and communication of pseudorandom strings!
Bitcoin has been a leading innovator in the development of better ways for humans to interact with cryptographic gibberish. With BIP 39 mnemonics, a mere mortal human can memorize a pseudorandom string, write it into a sealed Last Will and Testament in a manner easy to transcribe back into a computeror if necessary, whisper it into somebodys ear...
I
should think that people may want to memorize, transcribe, speak, or whisper .onion addresses, too.
As an English speaker, which would you prefer to deal with in your capacity as not being carved out of silicon: wlupld3ptjvsgwqw (ouch!), or
real element glow tennis pluck museum hair shuffle? Chinese people may prefer 潔 愛 唱 仰 淚 吳 乎 怒.
For overlapping reasons, I have also been working on the application of BIP 173
Bech32 encoding
for .onion address data (
more). That has the advantage of error correction, and a more compact format; different tools apply to distinct use cases. Again, Bitcoin technical innovation opens new possibilities in other applications of cryptography.
I am also using these methods with PGP. Ive seen PGP mnemonics before, of coursebut the mnemonic standard I recollect having seen many years ago used a 256-word (8-bit) alphabet, rather than the 2048-word (11-bit) alphabets from BIP 39. Thus, unnecessarily long word strings. I am also working on a spec for what I call Bech32 PGP Descriptors to encode key fingerprint plus metadata. See those ugly hexadecimal strings in my signature? Bitcoin will provide a better way.
Meanwhile, for use in Bitcoin, I have almost completed
full BIP 39 implementation in
easyseed(1). It would have been done yesterday; but for the missing final piece, generation of the output seed, I need means to perform the specified Unicode NFKD normalization without dragging in ugly dependencies. The rest is trivial.