Author

Topic: Is it possible to convert a Bitcoin Core seed into human-readable format? (Read 437 times)

legendary
Activity: 2870
Merit: 7490
Crypto Swap Exchange
you can hide minidv cassette easily . 20y shelf life

I wonder if you could find minidv casette reader easily 20 years later. Even LTO tape (which used by enterprise) which specification frequently updated have bad backward compatibility support. It's not easy to find working LTO reader for LTO-3 or lower.
member
Activity: 351
Merit: 37
you can hide minidv cassette easily . 20y shelf life

I wonder if you could find minidv casette reader easily 20 years later. Even LTO tape (which used by enterprise) which specification frequently updated have bad backward compatibility support. It's not easy to find working LTO reader for LTO-4 or lower.
any sony camcorder can do this. you'll need firewire card on pc ofc. you'll buy cam for $50 on ebay.
https://www.youtube.com/watch?v=YpVHy2_H798


 About lto i have np to buy lto-2 one on ebay uk But you'll need pci slot  for scsi card to do it cheap.
member
Activity: 351
Merit: 37
housewife will make a photo then her boyfriend will do the job. With no thing even left a house. Not good. you can hide minidv cassette easily . 20y shelf life
legendary
Activity: 2268
Merit: 18748
capacitors on sd will lose charge after several years.
Sure, but no piece of hardware for storing wallet.dat files will be immune to the effects of time, humidity, moisture, temperature, dust, corrosion, etc. Everything has it's own downsides - hard drives will be bulkier and harder to hide, CDs will be prone to physical scratches, etc.

I tend not to use digital back ups at all for my bitcoin wallets; laminated paper will have a far longer life and be more resistant to the most commonly encountered issues. But if OP wants to back up wallet.dat files and then hide the back ups, then an SD card or tiny USB drive is going to be the easiest way to achieve this.
member
Activity: 351
Merit: 37
How do you store wallet.dat files in a safe way in all possible scenarios?
There are plenty of places you can hide an SD card which would be near impossible to find, and therefore resistant to being seized by a third party, if this is your threat model. Even just in your house, you could hide an SD card inside an electrical socket, inside some piece of furniture, even inside your walls or foundations. If someone doesn't know where to look, they will never find it without demolishing your entire house. If that's still a concern, then do the same at another location, or bury another in a secret location somewhere. Protecting your back ups from fire and floods is a simple as having more than one back up in separate physical locations, where the chance of losing all your back ups simultaneously to such an event is tiny.

If you want to memorize a seed phrase or equivalent as final last ditch to recover your coins if all else has failed then go ahead, but that should not be your only method of back up.
capacitors on sd will lose charge after several years.
HCP
legendary
Activity: 2086
Merit: 4361
The hdseed in a wallet.dat can be extracted in WIF, which is easily convertible to hex, which is easily convertible to binary... which is easily converted into a BIP39 seed. Can't say that I would recommend this as a way to back up your wallet though.

Additionally, the issue with this method of only storing the "seed", is that Bitcoin Core allows you to import private keys which are not covered by the seed... so there is potential for the user to import a private key, and then attempt to recover only to find that the private key is missing. This is why Bitcoin Core recommends that the entire wallet.dat file is backed up.

It is also the reason that Electrum explicitly refuses to allow importing of individual private keys into seed-based wallets, to prevent a scenario where a user believes all their funds are covered by the seed, when in fact they are not.


How do you store wallet.dat files in a safe way in all possible scenarios? Including:
Are you related to jerry0??!? Tongue  Roll Eyes  Grin
legendary
Activity: 2268
Merit: 18748
One thing you could do (shamelessly take from yeticold) is convert to cased nato phoenetic alphabet.
It's a nice idea, and certainly has some advantages as you point out - error correction and not requiring the wordlist to convert back. However, OP has said he wants to use this technique to memorize his wallet/private key/whatever. I've pointed out above that this is generally a terrible idea, but if you are going to try to memorize your wallet (especially over a long period of time), then you want something that is as easy to memorize as possible. Using your technique for a WIF gives you 52 words to memorize, as opposed to only 12 words with a BIP39 seed phrase, as well as requiring you to memorize if individual words are lower case or upper case, which all adds up to something exponentially harder to commit to memory and exponentially easier to make a few mistakes when trying to recall.
newbie
Activity: 5
Merit: 6
WIF keys are mixed-case alphanumeric. One thing you could do (shamelessly take from yeticold) is convert to cased nato phoenetic alphabet. Lower-cased letter is all lower-case, capital letter is all upper-case, numbers are spelled out (2 == TWO). For example here's an hdseed from a regtest wallet:

cPzhezEaMfyxxZTA8iALDWAyHs5T62hKcwmkQJ6VT8GMX2QWgEaQ

it becomes

charlie PAPA zulu hotel echo zulu ECHO .... ECHO alpha QUEBEC

You have less density than bip39 (you will have one word per character). So it's a lot to write, but you get a lot of built in error correction (if the ink is smudged you can still distinguish alpha from bravo, etc) and it doesnt have the "shared prefix" issues that the bip39 list does. So less density, more readability. Another nice thing is you can just do it with pen and paper and no wordlist.

Just an idea.
legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
How do you store wallet.dat files in a safe way in all possible scenarios? Including:

1) Having all of your physical copies destroyed by a flood/fire
2) Having your physical copies stolen by a totalitarian government (yours become one, or you get stopped in an airport etc)
3) The people you trusted to hold backups also get theirs confiscated, they get bribed and betray you, etc
4) You get put to jail by totalitarian government and come out 5 years later (online backups in free sites may get removed due lack of use/host goes bankrupt, and paid ones require you to pay a membership to maintain the files)

Im trying to come up with an alternative, without having to use Electrum. This is the only way I've thought it could be done. In extreme scenarios the only way you could have any hopes in recovering your funds is if you managed to have a plan B hosted in your mind and practicing daily to not forget the seed.
If there is a possibility of a total and irrecoverable loss of your backups, then you probably didn't ensure that there is sufficient redundancy. You should store them at different geographical locations and there are numerous ways of protecting them against everyday elements. That is not a good excuse to argue that digital backups are not suitable.

If you were to live in a totalitarian government, then you probably would have better things to worry about. There are ways to hide your data via stenography anyways.


Of course, there are merits to both mnemonics and a wallet file. The answer to your question is that, you can. I would rather use a known standard, BIP38 to do so. However, if you plan on memorizing your seed, then I would urge you to think twice. You are far more likely to straight up forget your seed, either by human nature or through amnesia, alzheimer's disease, etc.
legendary
Activity: 2268
Merit: 18748
How do you store wallet.dat files in a safe way in all possible scenarios?
There are plenty of places you can hide an SD card which would be near impossible to find, and therefore resistant to being seized by a third party, if this is your threat model. Even just in your house, you could hide an SD card inside an electrical socket, inside some piece of furniture, even inside your walls or foundations. If someone doesn't know where to look, they will never find it without demolishing your entire house. If that's still a concern, then do the same at another location, or bury another in a secret location somewhere. Protecting your back ups from fire and floods is a simple as having more than one back up in separate physical locations, where the chance of losing all your back ups simultaneously to such an event is tiny.

If you want to memorize a seed phrase or equivalent as final last ditch to recover your coins if all else has failed then go ahead, but that should not be your only method of back up.
sr. member
Activity: 317
Merit: 448
This is an address. You don't need to back up addresses, but keys/seeds.
You can actually set your own hdseed through sethdseed. The hdseed that Bitcoin Core accepts is in WIF format so any new addresses will be generated from that. That is however not the recommended way to backup your wallet, backing up the entire wallet file would be far more prudent.

Mnemonic is meant for easier memorization and it is fine to memorize it ontop of your physical copies. However, if you run into the issue of possibly losing your wallet file, then you probably didn't ensure enough redundancy.


How do you store wallet.dat files in a safe way in all possible scenarios? Including:

1) Having all of your physical copies destroyed by a flood/fire
2) Having your physical copies stolen by a totalitarian government (yours become one, or you get stopped in an airport etc)
3) The people you trusted to hold backups also get theirs confiscated, they get bribed and betray you, etc
4) You get put to jail by totalitarian government and come out 5 years later (online backups in free sites may get removed due lack of use/host goes bankrupt, and paid ones require you to pay a membership to maintain the files)

Im trying to come up with an alternative, without having to use Electrum. This is the only way I've thought it could be done. In extreme scenarios the only way you could have any hopes in recovering your funds is if you managed to have a plan B hosted in your mind and practicing daily to not forget the seed.
member
Activity: 90
Merit: 91

That's not going to work as easily as you hope.

you are right.... let me say all these difficulties imho arise 'cause the OP is trying to "reinvent the wheel" and I was trying to drive him to the std tools... but the mix could be harmful. So in the end I share one of your previous sentences:

I don't see why you would do this over just memorizing a normal 12 word BIP39 seed phrase, though. If you want to use Core, then you can just use something like Ian Coleman to extract the individual private keys from your BIP39 phrase to import in to Core. Much better to do that than to come up with your own encoding system like this.
legendary
Activity: 2268
Merit: 18748
yep, I was implicitly thinking to use it to generate the string to memorize, once the OP has converted the seed (whichever its original form is) to its binary essence
That's not going to work as easily as you hope.

Whenever you enter raw binary in to the entropy tab, Ian Coleman will automatically calculate and append the checksum before spitting out the words. Best case scenario you would need to make a note of how many digits are in the checksum so you can remove them when converting back to your entropy. Worst case scenario (and what would happen here with the string OP has suggested), is that the combined length of entropy and checksum is longer than the multiple of 32 bits that Ian Coleman will use, and so it truncuates bits from the start to compensate.

In this case OP would only lose 8 bits and therefore one character from his initial entropy (the "t" at the start) which would be easy enough to brute force, but with longer entropy he could end up losing a significant amount of his entropy and struggling to recover his coins.
member
Activity: 90
Merit: 91


click "Show entropy details" checkbox, insert the seed and get the "BIP39 Mnemonic" in the field below.
Ian Coleman's tool accepts binary, base 6, decimal, hexadecimal, or a pack of cards, as entropy. It will not accept arbitrary strings as OP has suggested using.

yep, I was implicitly thinking to use it to generate the string to memorize, once the OP has converted the seed (whichever its original form is) to its binary essence
legendary
Activity: 2268
Merit: 18748
I already answered this question in OP's other thread here: https://bitcointalksearch.org/topic/m.58946721.

The string OP has given:
Code:
tb1qzqtu25qsue0a5pp3hg8lkftclf8ds

Converted to binary and grouped in to 11 digits:
Code:
01110100011 00010001100 01011100010 11110100111 00010111010 00111010100 11001000110 10101110001 01110011011 10101011001 01001100000 11000010011 01010111000 00111000000 11001101101 00001100111 00111000011 01100011010 11011001100 11101000110 00110110110 00110011000 11100001100 10001110011

Convert each grouping to decimal:
Code:
931 140 738 1959 186 468 1606 1393 923 1369 608 1555 696 448 1645 103 451 794 1740 1862 438 408 1804 1139

Map to the BIP39 wordlist:
Code:
inner bag fox visual blanket dentist silver purchase inflict private equal second finish day soap artefact debris globe sunset trip cycle credit thunder mobile

I don't see why you would do this over just memorizing a normal 12 word BIP39 seed phrase, though. If you want to use Core, then you can just use something like Ian Coleman to extract the individual private keys from your BIP39 phrase to import in to Core. Much better to do that than to come up with your own encoding system like this. And once again, relying on your memory as the only way to access your coins is an awful idea.

click "Show entropy details" checkbox, insert the seed and get the "BIP39 Mnemonic" in the field below.
Ian Coleman's tool accepts binary, base 6, decimal, hexadecimal, or a pack of cards, as entropy. It will not accept arbitrary strings as OP has suggested using.
member
Activity: 90
Merit: 91
For the seed -> BIP39 mnemonic I suggest the almost-almighty ;-) BIP39 tool by Ian Coleman:
https://iancoleman.io/bip39/
https://github.com/iancoleman/bip39
click "Show entropy details" checkbox, insert the seed and get the "BIP39 Mnemonic" in the field below.

Be careful not to use forks (many out there, and my educated guess is that between them there's some bad guy), and if use it on your *real* seed, download a copy of the latest release from github and use it locally.
legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
This is an address. You don't need to back up addresses, but keys/seeds.
You can actually set your own hdseed through sethdseed. The hdseed that Bitcoin Core accepts is in WIF format so any new addresses will be generated from that. That is however not the recommended way to backup your wallet, backing up the entire wallet file would be far more prudent.

Mnemonic is meant for easier memorization and it is fine to memorize it ontop of your physical copies. However, if you run into the issue of possibly losing your wallet file, then you probably didn't ensure enough redundancy.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
Theoretically, you can convert anything to a human-readable text. Just take the string you're interested in, break it into bits and then encode those bits to words based on the BIP-39 wordlist.

Code:
My hair is green
01001101011 11001001000 00011010000 11000010110 10010111001 00010000001 10100101110 01100100000 01100111011 10010011001 01011001010 00001101110
estate simple borrow security now awake place goat guess nasty flock swing


if you could memorize the seed as an Electrum user can do with 12 words (of 24 if you think 12 isn't safe)
Okay, first: You should never try to memorize a seed phrase, humans aren't meant to remember such thing and second: twelve words are more than fine for your security.

Also, im not sure if the hdseed=1 tb1qzqtu25qsue0a5pp3hg8lkftclf8ds string is all you need to backup or there would be more?
This is an address. You don't need to back up addresses, but keys/seeds.
sr. member
Activity: 317
Merit: 448
I was thinking of ways to be able to memorize the seed and then be able to carry your coins in your own memory as a last line of defense. Imagine that every single backup you own is lost for some reason, if you could memorize the seed as an Electrum user can do with 12 words (of 24 if you think 12 isn't safe) then you could still be able to access your funds even if all physical copies are lost and any possible emergency encrypted backups in the clouds are also lost.

So in Bitcoin Core you can use the dumpwallet command and get the hdseed=1 string which for instance would be like this: "tb1qzqtu25qsue0a5pp3hg8lkftclf8ds"

Im not sure if there is a fixed length of 33 characters or it's approximately 33 characters. In any case the idea is to convert this string into human-readable format.

So once you cross the border of a country or wherever you want to go where you don't want to be carrying anything encrypted, you can create a new wallet, enter the seed, rescan the wallet and then the addresses with your funds would show up (or possibly you need to generate receiving addresses for them to show up? im not sure)

Also, im not sure if the hdseed=1 tb1qzqtu25qsue0a5pp3hg8lkftclf8ds string is all you need to backup or there would be more?

Im interested to hear if someone has done this in practice and if it has worked and any ideas to convert the string into something you can memorize.
Jump to: