There is two types of seeds DNS seeds and seed nodes as you have identified. DNS seeds are stored in chainparams.cpp As of today (April 2017) the following nodes are listed in this file.
I performed nslookups on ...
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 ...
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 ...
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 ...
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 ...
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.
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 ...
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.
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.
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 (...
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.
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)
The bip39 algorithm is badly designed and that is why it is dependent on a specific wordlists. Each time you want to add a new language you have to update the BIP!
Electrum has it's own seed mnemonic format that does not depend on specific wordlists so it's definitely possible to create a format like that.
How to get my 24 word seed using bitcoin-cli
You write about getting but your commands are about setting. This is confusing.
You can't get a seed-phrase from Bitcoin-core.
You can use the sethdseed function to "Set or generate a new HD wallet seed." this marks any existing private keys as inactive (which may or may not be what you want).
Note that ...
Yes, all "seed nodes" refer to bitcoin clients known (or suspected) to be more or less permanently available. The DNS seed nodes are those reached via DNS lookup; the others via their IP address. A more thorough answer (including other initial "bootstrapping" connection methods than these hardcoded seeds) has been given to another question.
While the generation of the private keys can be locally, to recalculate the account's balance tied to the private keys needs data from the distributed ledger (blockchain). As the electrum client does not keep a replica of the ledger it will need access to recalculate the balance of the accounts and hence of the wallet as a whole.