Yeap...randomly mnemonic string (phrases/words from default english.txt or custom words from an input stream) + special passphrase (non-null).
Two things (not a criticism of the code which is well written and easy to read, but just a general concern about people): 1) Hard copies - No matter how well they are stored they're bound to get lost or stolen. Lost meaning people can forget where they placed them or forgot the combination to their safe. 2) Soft copies - Most of us (speaking from a first world country perspective) have some sort of computer electronic device we're always on so it's "easier/safer" if we just store it electronically. Yes I get the "you need to be responsible for your own life/money" argument, but life happens. Besides how can you live life always worried about your crypto keys? Also I mentioned "easy to read" not "easy to understand", just like someone can read words on a page and not have an understanding of what's written. So the mechanism to an unlosable key would be: 1) User creates rules of recovery -- this can be as easy as answering a list of user generated questions or as complex as a scavenger hunt on the internet or maybe a music audio file. 2) The original mnemonic, which is a hashed of some words, is combined with some other hashes in a long string and made available to user via various transport methods (screen, email, plain ftp, post online). A user can even come up with her own creative way of how the mnemonic is combined with the other hashes. For example, original: 3mDLLijh 8xZZDN FzaRJPb9i3Nf4KqiW YS7ko2k KB1EhQ FNtMVb (will be longer in real life) Combined: 3ZDNFzaRJPbLLijhS7ko2kKB1E3mDLLNtMVbNf4KqiWYS7ko2k3mDLLijh8xZZDNFzaRJPb9i3Nf4KqiWYS7ko2kKB1EhQFNtMVb3S7ko2kKB1LNtMVbNf4KqiWYS7ko2kKB1EhQFNtMVbb9i3Nf4b 3) Misdirection -- blast fake combined mnemonic to user chosen destinations as well as the real one. Only the user would be able to tell which is real and which is fake by searching (maybe CTRL+F) with original. 4) The original mnemonic is used to generate private key. #2, #3 and #4 protects and enforces good user practice. Even if a malicious entity picked up the data while they're stored on paper or electronically the entity will never know which one is real and which one is fake. User doesn't have to store private key anywhere because he can just regenerate it. #1 takes the pressure off of user having to write down mnemonic or worrying about where to store private key or mnemonic. The point is to make figuring out the mnemonic impossible for anyone else besides the user or clues the user leaves behind for his affiliates. No one is going to know the series of events that happened in my life nor the music I like from season to season without an extraordinary amount of data gathering and computation unless they're me or people I've shared with. Sorry for the long post. On Monday, March 11, 2019 at 11:13:14 PM UTC-4, Tom Va wrote: > > Hi, > > This is my first post in this group so please pardon me for any > uncharacteristic locutions. > I would like to contribute to this project. > > *My question is has anyone come up with a way where a private key no > longer can be lost?* > For example, I generated my private key on my local computer/smartphone. > If my computer crashes or I drop my phone in the ocean I've lost my coins. > My solution is to send out an encrypted seed at the time a private key is > generated so that a user can use it to regenerate the private key. > > Of course it's not going to be like the user will just use the actual sent > encrypted seed to regenerate the private key. > There will be a set of rules the user comes up with and only that user or > who ever she shares the rules with to "decrypt" the seed and use it to > regenerate the private key. > > This would be like an HD wallet, but instead of a perdetermined method of > generating the seed the user would generate the seed. > For example "when" the user loses his key he can look at the set of rules > he came up with to regenerate the encrypted seed which he'll receive in one > way or another. > Then he can take that encrypted seed (a long string of text, probably base > on Base58Check form) and base on his rules he can break the seed into > phrases to regenerate the private key. > -- You received this message because you are subscribed to the Google Groups "bitcoinj" group. To unsubscribe from this group and stop receiving emails from it, send an email to bitcoinj+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.