Author

Topic: Creating Seeds from private key (Read 421 times)

HCP
legendary
Activity: 2086
Merit: 4361
April 01, 2018, 12:49:43 AM
#10
i don't see anyone mentioning this but it doesn't work the other way around! meaning you can not create a seed from a private key. instead you create a seed then get different private keys from that seed. it is an Hierarchy after all.
It was actually mentioned in the very first reply (2nd post) Wink
It is not possible to generate seed out of private key, because private keys are generate from the seed.

However, theoretically, you CAN actually generate a seed from a private key as, in their simplistic form, both are simply large numbers... so there is no reason you couldn't use a private key to make a seed. It just probably isn't advised Wink



Long geeky example of converting a 32 byte hex to a mnemonic string:

Private Key (WIF): Kx45GeUBSMPReYQwgXiKhG9FzNXrnCeutJp4yjTd5kKxCitadm3C
Private Key (HEX): 18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725

The HEX = 32 bytes = 256 bits (max allowed ENT for BIP39 as per the spec), so we can just use the HEX as as our ENT.

We also need to calculate the checksum as the first ENT/32 bits of the SHA-256 of the ENT.

SHA-256(ENT): 547E964D2262DFCF5C03DA93F54AC0FE66B2856240F8A70AB0C582DE5860D062 => first 8 bits = first byte => "54" => 0101 0100

ENT + CS = 0001 1000 1110 0001 0100 1010 0111 1011 0110 1010 0011 0000 0111 1111 0100 0010 0110 1010 1001 0100 1111 1000 0001 0001 0100 0111 0000 0001 1110 0111 1100 1000 1110 0111 0111 0100 1110 0111 1111 1001 1010 0100 0111 1110 0010 1100 0010 0000 0011 0101 1101 1011 0010 1001 1010 0010 0000 0110 0011 0010 0001 0111 0010 0101 0101 0100

As per the BIP39 spec, we slice it up into 11 bit chunks and convert to words from the BIP39 wordlist

Code:
word 1 : 00011000111 -> 199  -> body
word 2 : 00001010010 -> 82   -> apart
word 3 : 10011110110 -> 1270 -> paddle
word 4 : 11010100011 -> 1699 -> stamp
word 5 : 00000111111 -> 63   -> among
word 6 : 10100001001 -> 1289 -> patrol
word 7 : 10101010010 -> 1362 -> prevent
word 8 : 10011111000 -> 1272 -> pair
word 9 : 00010001010 -> 138  -> bacon
word 10: 00111000000 -> 448  -> day
word 11: 01111001111 -> 975  -> ketchup
word 12: 10010001110 -> 1166 -> mushroom
word 13: 01110111010 -> 954  -> jar
word 14: 01110011111 -> 927  -> initial
word 15: 11100110100 -> 1844 -> track
word 16: 10001111110 -> 1150 -> more
word 17: 00101100001 -> 353  -> club
word 18: 00000001101 -> 13   -> accuse
word 19: 01110110110 -> 950  -> item
word 20: 01010011010 -> 666  -> fashion
word 21: 00100000011 -> 259  -> call
word 22: 00011001000 -> 200  -> boil
word 23: 01011100100 -> 740  -> frame
word 24: 10101010100 -> 1364 -> pride

Seed Mnemonic: body apart paddle stamp among patrol prevent pair bacon day ketchup mushroom jar initial track more club accuse item fashion call boil frame pride
sr. member
Activity: 476
Merit: 314
March 31, 2018, 07:31:51 PM
#9
I think it's not an 'additional word' because an encrypted seed was the mnemonic seed that got into a so called pseudo random process so it's not 'just a password' instead it's the Bitcoin wallet seed itself or we can consider it as a master password for Bitcoin Wallet besides the private keys that can serve as a password for every bitcoin addresses.

But even if the additional words can be usuful because you have the entrpy of the seed (generated randomly) and you are only increasing with your words, the additional entrpy will be lower than a random process, but this can be a good practice if you want to store only the 12/24 seed words without your "password".
legendary
Activity: 1624
Merit: 2481
March 30, 2018, 08:17:49 AM
#8
Printing would probably the easiest method, and the most secure would be having an encrypted private key (never heard of encrypted seeds).

You can encrypt anything you want.
Encrypted seeds are known for quite some time. Most of the time it is being referred to the '25th word' or simply as 'additional word'.
But basically its 'just' a password for the seed.

I think it's not an 'additional word' because an encrypted seed was the mnemonic seed that got into a so called pseudo random process so it's not 'just a password' instead it's the Bitcoin wallet seed itself or we can consider it as a master password for Bitcoin Wallet besides the private keys that can serve as a password for every bitcoin addresses.


I am sorry, i expressed myself unintelligibly.
I was referring to the 25th word known from hardware wallets (like the ledger nano s).
These wallets offer to the possibility to add a password (up to 100 characters) to add plausible deniability through generating a different seed for each password.

But nonetheless anything can be encrypted.
A seed which has been encrypted (with any symmetric encryption algorithm) will result in a character sequence (depending on which algorithm) which then can be
decrypted using the password.

sr. member
Activity: 1400
Merit: 420
March 30, 2018, 01:50:43 AM
#7
Printing would probably the easiest method, and the most secure would be having an encrypted private key (never heard of encrypted seeds).

You can encrypt anything you want.
Encrypted seeds are known for quite some time. Most of the time it is being referred to the '25th word' or simply as 'additional word'.
But basically its 'just' a password for the seed.

I think it's not an 'additional word' because an encrypted seed was the mnemonic seed that got into a so called pseudo random process so it's not 'just a password' instead it's the Bitcoin wallet seed itself or we can consider it as a master password for Bitcoin Wallet besides the private keys that can serve as a password for every bitcoin addresses.
legendary
Activity: 1624
Merit: 2481
March 30, 2018, 01:31:12 AM
#6
the private keys was generated with out internet connection.

Note that it is not enough to simply use an PC which was online before / will be online after generating your keys offline.
Anything used to generate your private keys should be completely airgapped from your network.



Printing would probably the easiest method, and the most secure would be having an encrypted private key (never heard of encrypted seeds).

You can encrypt anything you want.
Encrypted seeds are known for quite some time. Most of the time it is being referred to the '25th word' or simply as 'additional word'.
But basically its 'just' a password for the seed.
member
Activity: 126
Merit: 50
Ask me for Pools, Nodes and Explorers.
March 29, 2018, 09:27:59 AM
#5
thanks,

seeds are easier to remember  and to write down Smiley

the private keys was generated with out internet connection.

i have used  electrum wallet, but only bc1 wallet are being generated , i did not found a way to make it generate a 3xx wallet.

Printing would probably the easiest method, and the most secure would be having an encrypted private key (never heard of encrypted seeds).
But here is an easy to do guide how to get P2SH segwit addresses on electrum: https://bitcoinelectrum.com/creating-a-p2sh-segwit-wallet-with-electrum/
Then you can write the seed down as well, which is what you were looking for i assume.
legendary
Activity: 2758
Merit: 6830
March 29, 2018, 09:27:35 AM
#4
i have used  electrum wallet, but only bc1 wallet are being generated , i did not found a way to make it generate a 3xx wallet.
That's easy. Just follow this instructions:

As a wallet, use Electrum with a Segwit address for lower fees. For now, I recommend to use a nested P2SH Segwit address instead of the bech32 format created by Electrum. So that's what you should do:

1. Go to iancoleman's BIP39 seed generator[1] (optional - download the source code and run offline for better security);
2. Select 12 words and generate a new seed;
3. SAVE THIS SEED AND DON'T LOSE IT! You can't see it again in Electrum and without the seed you can't restore your wallet in the future;
4. Download Electrum[2];
5. While creating the wallet, select: Standard Wallet -> I already have a seed -> Paste the seed from step 2.
6. Click Options -> check "BIP39 seed" -> Next.
7. In the Derivation part, paste m/49'/0'/0'/0 and click next.
8. Now you have an Segwit wallet with addresses starting with 3.


[1] https://iancoleman.io/bip39/
[2] https://electrum.org/

Just don't forget that when you want to restore your wallet into Electrum, you need to select "BIP39 seed" and use the derivation part m/49'/0'/0'/0
copper member
Activity: 117
Merit: 17
March 29, 2018, 09:22:34 AM
#3
First of all, be sure that you ran on a malware free computer and the site script while offline. and do not use brainwallets as they are highly unsecure if not done right!
It is not possible to generate seed out of private key, because private keys are generate from the seed.
Why would you need a seed anyway, because the point was to have a paper wallet right? If you wish to get a seed generating segwit addresses, then you should install electrum and generate a segwit HD wallet with that.


thanks,

seeds are easier to remember  and to write down Smiley

the private keys was generated with out internet connection.

i have used  electrum wallet, but only bc1 wallet are being generated , i did not found a way to make it generate a 3xx wallet.
member
Activity: 126
Merit: 50
Ask me for Pools, Nodes and Explorers.
March 29, 2018, 09:18:03 AM
#2
First of all, be sure that you ran on a malware free computer and the site script while offline. and do not use brainwallets as they are highly unsecure if not done right!
It is not possible to generate seed out of private key, because private keys are generate from the seed.
Why would you need a seed anyway, because the point was to have a paper wallet right? If you wish to get a seed generating segwit addresses, then you should install electrum and generate a segwit HD wallet with that.
copper member
Activity: 117
Merit: 17
March 29, 2018, 09:12:57 AM
#1
hey there,
i had a question which i could not find a answer for it.

i have created a private key from https://segwitaddress.org/ local.


is that possible to create seeds from the private key received ?

thanks alot.
Jump to: