As you correctly identified, there are two types of seed nodes, i.e. DNS seeds and seed nodes. DNS seeds are stored in chainparams.cpp. As of today (April 2017) the following nodes are listed in this file.
There is nothing stopping a word to be repeated more than once. In a 24 word mnemonic, with 2048 possible words in the dictionary (BIP 39), there is a probability of at least one duplicate around 12.7% of the time (variation of the birthday paradox).
There is a so-called gap limit. In Electrum, it's 20 by default but can be changed. But if you changed it up, remember that! Preferably write it next to your wallet's seed.
This means that the HD wallet determines the first 20 addresses and checks on a server whether any of them have every been involved in a transaction. Let's say these addresses are ...
Is this considered safe enough?
Nothing is "safe enough" if we do not know the cost.
OK, if you have $100k in bitcoins the 12-words phrase is safe enough.
If the 12-words phrase is the seed to the "Method of destroying the Universe" I would recommend to add at least 11 bits of entropy and use 13 words.
To get the extended private masterkey itself (not a seed), you can use the dumpwallet command and provide it with a filename to dump your keys to. The extended master key will be at the top of the file, and then it will list all addresses along with their keypaths underneath that, line by line.
Note that the dumped file is not encrypted, so be careful with ...
There are multiple questions being asked here.
Firstly, some background info. BIP39 is a standard that includes word lists.
The English one can be found at https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt
What is a mnemonic frequency analysis?
This is a fancy way of them saying that they figured out the minimum number of letters they ...
Wallets created by Electrum 1.x have seeds containing 12 words (24 words is also possible for custom-created seeds). Given a zero-based array of seed_words of that length, this pseudocode calculates the master_private_key:
i = 0
while i < length(seed_words):
# convert each word into an int in the range [0,1625]
# based on the word's position in ...
No, the DNS seeds are not running a Bitcoin client. The DNS seed nodes only give you a list of IP addresses that are running (or were recently running) a Bitcoin client. In the source code you can see that the DNS seed nodes are contacted only to get a list of addresses.
OK found a way! Only cost me $8 to switch wallets! WTF?
Go here and save the web page to disk: https://iancoleman.github.io/bip39/
I went to https://iancoleman.github.io/bip39/
and after generating a dozen or so mnemonics I got
audit again guess butter minute predict grid image fresh kit west will before noodle supply magic bread protect mimic butter credit tragic recipe clarify
So this confirms the other answers: assuming this is a correct implementation, repeats are allowed.
Because no one has stepped up to do the work or hire someone to do it for them. That's how open source works : )
This repository contains the mnemonic list in different languages (Currently just 8). There are also wordlists in other languages that are stuck in limbo. However if you find it to be worth it, you might want to prepare a list and submit it to the ...
how did Electrum create a new address?
Electrum, and most modern wallets are Hierarchical Deterministic (HD) Wallets. They derive a series of private-keys from the "master private-key".
If you always start with the same seed phrase you get the same master private-key. Electrum uses its own unique method for seed phrases. Most wallets with seed-...
AFAIK, the two most common sets of HD wallet mnemonic seeds used are BIP 39 compliant or Electrum Wallet compliant. Most of the more secure hardware HD wallet devices support the BIP 39 standard, which appears to be deprecating the older set of Electrum HD seed words. People should not have to do a deep dive into Electrum Python code to find the list of ...
While theoretically possible, the algorithms involved mean that it is practically impossible. You would need to compute the seed from your mnemonic word according to BIP 39, and then derive the keys and address from that according to BIP 32.
Generating the seed from the mnemonic alone requires executing the PBKDF2 function, which is specifically designed to ...
No, it is not true. Both are impossible due to math. The mnemonic is just an encoding of a number that is randomly generated (i.e. just like a private key) so it has the same security properties of that 256-bit number.
If you ignore that it encodes a number, consider this: a seed phrase encoding a 256-bit number needs 24 words in the mnemonic. There are ...
The base system is described in BIP32 and BIP39.
Essentially, the conversion goes the other way around. We don't convert a list of addresses to a seed. A seed is converted to a list of addresses.
BIP32 described how hierarchical deterministic (HD) wallets work.
BIP39 describers how these can be encoded into mnemonic phrases, or seed words.
There's an ...
The message means that no DNS seeds were found (which is normal, as regtest has no DNS seeds), and thus that it will fall back to its builtin list of fixed seed nodes (which regtest has 0 of).
In other words, the message is harmless and the artifact of DNS/seed logic that doesn't really apply to regtest.
Regtest is a private network for testing, so you don'...
It's actually a good question. Let's take a look at what is happening. First, Electrum hashes your mnemonic to generate a seed. The seed indeed contains all the information necessary to generate the Master Public Key and the Master Secret Key, first being used to generate the sequence of public keys (adresses) and the second being used to derive a secret key ...
Electrum uses a gap limit to stop looking for addresses in the deterministic wallet. The default gap limit is set to 20, so the client get all addresses until 20 unused addresses are found.
Change addresses have a gap limit of 3 and this is not modifiable by the user.
Couple of points covering what it is and how it works:
The description might be out of date. You'd need to follow the code to see how seeding is done. E.g. IRC seeding is not used any more (but that is noted).
Those addresses are DNS seeds. They run a DNS name server which is usually used to translate website names (like www.google.com) to IP addresses (...
First download Electrum, try to get a version closest to the one you were using. Get the portable version because you may need to get a higher version if it doesn't work.
Open the program, File -> new/restore -> enter in your seed when asked.
When it asks for a password, it means a new password to save this wallet with encryption.
Then wait for the ...
No, the BIP39 construction does not avoid repeating words.
It is possible for a word to show up multiple times, but since there are 2048 words it is fairly unlikely for repeats to show up in randomly generated keys.
If you do this correctly, it would mirror your wallet, yes. BUT!
Doing so is probably not a good idea, because you'll have to type your seed phrase into a desktop computer that may be compromised. The point of a hardware wallet is keeping your keys locked away in a device which never touches the internet, testing your backup seed phrase on an internet-...
You probably know that HMAC-SHA256/HMAC-SHA512 and thus PBKDF2 are one-way functions. There would be no way how to reconstruct the seed from the generated sentence in your setup, which is the only purpose of such sentence.
From BIP39:"A user may decide to protect their mnemonic with a passphrase. If a passphrase is not present, an empty string "" is used instead."
The passphrase can be added in the transformation from the mnemonic phrase to the seed. It is not added IN the mnemonic but in an other point of the procedure.
A consequence of this is that:
"The described method ...
Well, in both cases, your seed words are ultimately the key to the wallet.
If you use a regular wallet, you open yourself up to a number of other attacks
Malware on the device that runs the software wallet
People shoulder surfing
Backdoored wallet software
Moreover, larger OSes like Windows, Linux, and Mac OS have considerably larger attack ...
1) The answer is 12! = 479,001,600 possible mnemonics (less if there are repeated words). Out of these only ~29,937,600 (1 in 16) produce a valid seed. This is definately brute forcable.
2) No, if you want to do this use a longer mnemonic (and make sure you permute them in a truly random way)