# How secure is the seed phrase (12 words, 24 words)

The total number seed phrases are 1,329,227,995,784,920,000,000,000,000,000,000,000 - if I right counted - 12 words.

Yes is very much, as seems. But let's regard - there is a thief and he wants to steal money from anybody. I focus accent on the words `from ANYBODY`. I.e. thief's target is to find the first address with money. And that large number doesn't seem so much.

Also bad that the dictionary base is opened to everyone. A thief can use a brute-force attack and get the first address with money.

And if we understand seed phrase include many addresses, that make the task for thief easier.

I understand the 13 or 25 words, it's created by me, and they are known by no one. It means that security is more, more, more better.

Anybody can say what number of seed phrases are used now?

Do developers of the network think about what happens later? And need whether to think about this problem at all. Can be I see this problem in the dark.

The total number seed phrases are 1,329,227,995,784,920,000,000,000,000,000,000,000 - if I right counted - 12 words.

No. :-)

The word list contains 2048 different words. This means there are a total of 204812 12-word phrases, which is:

54,445,178,707,350,154,154,139,93,718,908,291,383,296

This is equivalent to 2132, meaning 132 bits of security.

Some of these bits are not valid - equating to certain invalid 12-word combinations - so the security is actually 2128, which is 128 bits.

So...:

How secure is the seed phrase (12 words, 24 words)

About 128 bits for 12 words and 256 bits for 24 words. 256 bits is the same level of security as the secp256k1 ECDSA algorithm which Ethereum and Bitcoin use to create private/public key pairs.

So if you're worried about mnemonic security, you'll also need to worry about all 256-bit elliptic curves.

Also bad that the dictionary base is opened to everyone.

This is a good thing. It means you can generate your own seed phrase, rather than relying on a piece of opaque, 3rd-party software.

Anybody can say what number of seed phrases are used now?

You can check how many addresses have been used, but you can't know how many seed phrases or private keys have been generated. (People could generate them and not use them.)

• I forgot that 2048 words in the dictionary. :) I counted 1024. Thanks for the correction. But in principle probability theory say to us `(likely success for a thief)=(used seed phrases)/(total seed phrases)` and with every day success for a thief are closer and closer. :( May 26, 2021 at 9:17
• The possible number of 12-word seed phrases is permutation without repetition 2048!/2036!, not 2048^12, which is also on the order of 10^39 possibilities incidentally. This is before checksum validation with a reduction of about 4 orders magnitude. Jun 15, 2022 at 21:51
• @GarenVartanian - thanks for the correction! What do you mean by "without repetition"? Repetition of a given word? Repeated words are allowed in BIP-39 - did you mean something else? Jun 15, 2022 at 22:57
• I was thinking about this some more, and wondering why I didn't mention the checksum in my original answer. The reason is that BIP-39 doesn't enforce the checksumming, so won't itself invalidate certain word combinations because of it. What third-party software will tend to do is provide a warning, or provide some sort of home-grown extension that will disallow "invalid", non-checksummed combinations. Jun 16, 2022 at 9:27
• The assumption in all of this is that we're talking about BIP-39 :-) Jun 16, 2022 at 9:28

Couldn't comment directly because I'm new here (hello) so:

(likely success for a thief)=(used seed phrases)/(total seed phrases) and with every day success for a thief are closer and closer. :(

The likelyhood of a a thief breaking a seed phrase that is in use does tend toward 1, as the number of used seed phrases tends toward the number of total seed phrases. But the likelyhood of a thief finding a specific seed phrase (i.e. yours or some whales wallet) remains 1/(total number of seed phrases) for every random attempt.

Now the thief could start trying seed phrases at lets say 6000 per second, so after 1 day would have tried:

86400*6000=518400000

Our hypothetical thief probably wouldn't start striking gold until at least half of the seed phrases have been tried and that would take something like

(5444517870735015415413993718908291383296 / 2 ) / 518400000 = 5.25*10^30 days

Compare that to the age of the universe: https://www.wolframalpha.com/input/?i=5.25E30+days+in+years

and I think brute force attacks are the very least of your concerns :)

Basically, If I were to add to this I'd say the seed phrase can be used to generate multiple addresses, these addresses comes with a derivation key index attached to these address and can be used to get a private key specific to that address.

I'd say before an address can be compromised a seedphrase brute forced because it's an english set of dictionary words, the derivation key index must be known and hence used to attack a single wallet

I hope this helps to explain to you that there is an extra layer of security added to the seedphrase even after knowing the phrases.

If you cannot provide an derivation key of the address you are trying to compromise, you can almost not generate a private key to sign the transaction of you can also not be able to use the seephrase to sign transactions on the wallet itself

yeah but say you have 3 billion people using crypto, that would mean, you would only have to brute force 3074457345.618258602666667 times before you would hit an active wallet. thats not a big number when you realize a computer could do that in a couple seconds.

• That's not true. You have to bruteforce mnemonics not people, so it will be around 2^128 / 3*10^9 attempts.
– Ismael
Oct 7, 2022 at 5:28