Bitcoin Forum
April 25, 2024, 12:35:24 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: How does BIP39 work? Is all the information in the seed?  (Read 437 times)
superlative (OP)
Newbie
*
Offline Offline

Activity: 25
Merit: 0


View Profile
October 26, 2017, 11:40:29 PM
 #1

So a Jaxx wallet (for example) can have multiple wallets for different currencies (eg. BTC, ETH, BCC).  However the backup phrase is 12 words (for Ledger hardware wallet, it's 24 words).  Is all the information on all those wallets contained in those 12 words, or are those 12 words merely a password to retrieve that information from some server?

Thanks for your patience!

(I did google this before I came here, but all I could find is that BIP39 is 24 words from a 2048 word dictionary - but that doesn't explain to me where the information on the wallet is actually stored - inside the seed, or on a server, because it doesn't make sense to me that all the information of public and private keys associated with just a single address can somehow be stored in a 24 or 12 word phrase)
1714005324
Hero Member
*
Offline Offline

Posts: 1714005324

View Profile Personal Message (Offline)

Ignore
1714005324
Reply with quote  #2

1714005324
Report to moderator
1714005324
Hero Member
*
Offline Offline

Posts: 1714005324

View Profile Personal Message (Offline)

Ignore
1714005324
Reply with quote  #2

1714005324
Report to moderator
1714005324
Hero Member
*
Offline Offline

Posts: 1714005324

View Profile Personal Message (Offline)

Ignore
1714005324
Reply with quote  #2

1714005324
Report to moderator
Transactions must be included in a block to be properly completed. When you send a transaction, it is broadcast to miners. Miners can then optionally include it in their next blocks. Miners will be more inclined to include your transaction if it has a higher transaction fee.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714005324
Hero Member
*
Offline Offline

Posts: 1714005324

View Profile Personal Message (Offline)

Ignore
1714005324
Reply with quote  #2

1714005324
Report to moderator
1714005324
Hero Member
*
Offline Offline

Posts: 1714005324

View Profile Personal Message (Offline)

Ignore
1714005324
Reply with quote  #2

1714005324
Report to moderator
1714005324
Hero Member
*
Offline Offline

Posts: 1714005324

View Profile Personal Message (Offline)

Ignore
1714005324
Reply with quote  #2

1714005324
Report to moderator
superlative (OP)
Newbie
*
Offline Offline

Activity: 25
Merit: 0


View Profile
October 26, 2017, 11:46:32 PM
 #2

I was able to find this:
https://www.reddit.com/r/Bitcoin/comments/6iphd6/recovery_seed_12_words_vs_24_words/

And I think it sort of explains it, and I get that if you enter the words into a algorithm it will spit out the right key - but in the case of Ledger, Ledger can store 10+ different cryptocurrencies - how can the addresses of all those currencies be determined by just 24 words?  The math escapes me.

Thanks!
superlative (OP)
Newbie
*
Offline Offline

Activity: 25
Merit: 0


View Profile
October 27, 2017, 02:31:40 AM
 #3

anyone can help explain?  thanks.
BlueSword
Newbie
*
Offline Offline

Activity: 18
Merit: 0


View Profile
October 27, 2017, 03:40:25 AM
 #4

how can the addresses of all those currencies be determined by just 24 words?  The math escapes me.
A single word randomly chosen from a list of 2048 words provides 11 bits of entropy (2^11 = 2048), so 24 words provides 264 bits of entropy.  These 264 bits can be used as the seed for a cryptographically secure pseudo-random number generator (CSPRNG).  The CSPRNG can then be used to produce an arbitrary amount of public/private key pairs.  A good CSPRNG has the property that it is computationally infeasible, given only a subset of the outputs of the CSPRNG, to determine the state of the CSPRNG or other outputs of the CSPRNG.  This is how it is possible to "stretch" the original 24 words to produce an arbitrary number of addresses.
odolvlobo
Legendary
*
Offline Offline

Activity: 4298
Merit: 3208



View Profile
October 27, 2017, 04:18:55 AM
Merited by Cloudpost (2)
 #5

The seed is all the information that the wallet needs. All addresses are generated from the seed.

BIP-32 describes how addresses are generated from a seed.

You can generate a private key by hashing the seed itself. You can generate another private key by hashing the first private key. You can generate as many private keys as you want by hashing the previous private key. If you start with the same seed, you will always get the same private keys, so the seed is all you ever need. BIP-32 uses that concept.

Join an anti-signature campaign: Click ignore on the members of signature campaigns.
PGP Fingerprint: 6B6BC26599EC24EF7E29A405EAF050539D0B2925 Signing address: 13GAVJo8YaAuenj6keiEykwxWUZ7jMoSLt
gmctec
Newbie
*
Offline Offline

Activity: 1
Merit: 0


View Profile
November 30, 2017, 10:01:40 PM
 #6

odolvlobo,  you have only mentioned about how a deterministic seed can be used to recover the account, but you (no anyone else) has addressed the question:  Where is the actual data stored?  Recovering the password to an account is great only if there is actual coin (data) in the account.  But If I loose the device, and there is no data, how is the data recovered?  Where is the actual data? 
odolvlobo
Legendary
*
Offline Offline

Activity: 4298
Merit: 3208



View Profile
December 01, 2017, 06:46:05 PM
 #7

odolvlobo,  you have only mentioned about how a deterministic seed can be used to recover the account, but you (no anyone else) has addressed the question:  Where is the actual data stored?  Recovering the password to an account is great only if there is actual coin (data) in the account.  But If I loose the device, and there is no data, how is the data recovered?  Where is the actual data?  

The seed is the data.

Perhaps you aren't aware that a wallet doesn't actually hold coins, it holds the private keys that allow you to spend coins. You could say that the coins are stored in the block chain, though that's not entirely accurate.

Also, I recommend against use of the word "account" unless you mean a bank account or an exchange account. The meaning is ambiguous except in very specific contexts.

Join an anti-signature campaign: Click ignore on the members of signature campaigns.
PGP Fingerprint: 6B6BC26599EC24EF7E29A405EAF050539D0B2925 Signing address: 13GAVJo8YaAuenj6keiEykwxWUZ7jMoSLt
Cloudpost
Hero Member
*****
Offline Offline

Activity: 742
Merit: 500



View Profile
August 11, 2018, 09:52:51 PM
 #8

The seed is all the information that the wallet needs. All addresses are generated from the seed.

BIP-32 describes how addresses are generated from a seed.

You can generate a private key by hashing the seed itself. You can generate another private key by hashing the first private key. You can generate as many private keys as you want by hashing the previous private key. If you start with the same seed, you will always get the same private keys, so the seed is all you ever need. BIP-32 uses that concept.

I found a link to this thread in google and explanation about BIP39 work principle was very easy to understand. Thanks! I hope that all crypto people will learn such basic stuff at some point, bumping the thread for that reason.

            ▄▄████▄▄
        ▄▄██████████████▄▄
      ███████████████████████▄▄
      ▀▀█████████████████████████
██▄▄       ▀▀█████████████████████
██████▄▄        ▀█████████████████
███████████▄▄       ▀▀████████████
███████████████▄▄        ▀████████
████████████████████▄▄       ▀▀███
 ▀▀██████████████████████▄▄
     ▀▀██████████████████████▄▄
▄▄        ▀██████████████████████▄
████▄▄        ▀▀██████████████████
█████████▄▄        ▀▀█████████████
█████████████▄▄        ▀▀█████████
██████████████████▄▄        ▀▀████
▀██████████████████████▄▄
  ▀▀████████████████████████
      ▀▀█████████████████▀▀
           ▀▀███████▀▀



.SEMUX
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
  Semux uses .100% original codebase.
  Superfast with .30 seconds instant finality.
  Tested .5000 tx per block. on open network
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
█ █
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!