Open TheMastor opened 10 years ago
It's a long story, but the gist of it is: I encourage responsible use of custom entropy, but will have to think about how to allow it without letting users shoot themselves in the foot. For now, suggesting they do it manually is enough of a barrier, while still giving advanced users the ability to do it.
You can simply open a python shell in the base Bitcoin directory, "from armoryengine import *" (or armoryengine.ALL in 0.90.1+), and then use the makeSixteenBytesEasy() method to convert your custom entropy to into data that can be plugged into the wallet-restore dialog.
Personally, I like maaku's suggestion of shuffling a deck of cards thoroughly, then typing the order of the cards into the hash256() function. Send both halves through the makeSixteenBytesEasy() method and you have a true, analog-entropy root key that can be imported into Armory as a 1.35c backup.
Am I correct in saying that if you mix user-provided entropy in the random stream it can't decrease the total random-ness? For example:
sha256(128_bits_of_entropy + 0_bits_dumb_user_input_that_they_posted_on_the_internet)
still has 128bits of entropy. As such, it shouldn't matter if the user input is bad as long as the normal random works.
I am certain that whatever unrelated data you add to 128_bits_of_entropy will have at least as much entropy as 128_bits_of_entropy.
The problem is that we would still be giving users enough rope to hang themselves with. If I'm a "dumb" user, I might think to myself, "Nobody will ever guess the root of my entropy, if I just get rid of 128_bits_of_entropy, I can reproduce my root key in case all of the other backups fail." I might have been that "dumb" user myself if etotheipi hadn't schooled me in the importance of good entropy.
With the NSA's shenanigans and also this fatal weakness in android there is cause to doubt the entropy sources on many systems.
How about allowing users to simply input their own entropy much like how TrueCrypt allows?