How Ethereum Private Keys Get Cracked
Guessing a random Ethereum key is impossible. Yet wallets get drained every year — not by luck, but by broken randomness, reused numbers, and human shortcuts. Here's how the cryptography works, why brute force can't win, and every real-world attack that has.
Contents
1. How Ethereum keys & seed phrases work
An Ethereum private key is nothing more than a random 256-bit number — a value between 1 and roughly 1.158 × 1077. Everything else is derived from it deterministically:
- The private key is multiplied against the secp256k1 elliptic curve's generator point to produce a 64-byte public key.
- That public key is hashed with Keccak-256, and the last 20 bytes become your
0x…address.
This is a one-way street. Address → public key → private key cannot be reversed; the only way "back" is to already hold the key.
Where seed phrases come in
Nobody memorises a 256-bit number, so wallets use the BIP39
standard. A chunk of raw entropy (128 bits for 12 words, 256 bits for 24)
is encoded as words from a fixed 2,048-word list. Those words are stretched
through 2,048 rounds of PBKDF2-HMAC-SHA512 into a 512-bit seed. From
that seed, BIP32 builds a hierarchical tree of keys, and BIP44
picks the standard Ethereum path m/44'/60'/0'/0/0.
The crucial takeaway: your wallet is only as strong as the entropy at the very start. A beautiful 24-word phrase generated from a broken random number generator is just as weak as the broken number was. Almost every attack below is an attack on that initial entropy — not on the elliptic-curve math, which has never been broken.
2. Why brute-forcing is impossible
There are 2256 possible private keys — about 1.16 × 1077. That number is so large it defeats intuition, so here are honest comparisons:
- There are an estimated 1078–1082 atoms in the observable universe. The Ethereum keyspace is on the same order of magnitude as counting a meaningful fraction of every atom in existence.
- If every one of the ~8 billion people on Earth ran a billion GPUs, each checking a trillion keys per second, since the Big Bang — you would have covered less than a quadrillionth of a quadrillionth of the keyspace.
- The energy required to merely count to 2256 in the most efficient computer physically possible would boil the oceans several times over (this is the Landauer-limit argument).
3. How wallets actually get drained
Every real theft that "cracked a key" attacked weak entropy or reused secrets — never the curve itself. Each attack below has a matching mode in the 0xguessr machine so you can watch the exact algorithm run.
Weak random number generators
Randstorm — BitcoinJS, 2011–2015
Millions of early web wallets (including many made on blockchain.info)
were built with the BitcoinJS library, which called JSBN's
SecureRandom(). In browsers of that era, this fell back to
Math.random() — implemented in V8 as MWC1616, seeded
with only 32 bits. Combined with buggy pooling, real entropy collapsed
to as little as 48 bits. Unciphered demonstrated recovery of live keys.
Wallets made before March 2012 are the easiest to attack.
Milk Sad — Libbitcoin Explorer, CVE-2023-39910
The bx seed command in Libbitcoin Explorer — a tool featured
in the book Mastering Bitcoin — seeded a 32-bit Mersenne Twister
(MT19937) with the current system time. That collapses any "256-bit" seed
to just 232 ≈ 4.3 billion possibilities, brute-forceable
on a laptop in days. The vulnerability's name comes from the first
mnemonic its broken generator produces: "milk sad…".
Profanity — vanity address generator (the Wintermute hack)
Profanity was a popular tool for generating "vanity" addresses with
custom prefixes (like seven leading zeros). It seeded
mt19937_64 with a single 32-bit value from
random_device — so every key it ever produced came from only
232 possibilities, and the process was reversible from
any public key. In September 2022, the market maker Wintermute lost
~$160M when an attacker cracked a Profanity-generated admin wallet that
still held vault permissions.
Amber Group technical breakdown →
▶ Read the full Profanity breakdown →Reused numbers: ECDSA nonce reuse
Every ECDSA signature uses a one-time random number called a nonce
(k). If a wallet ever signs two different transactions with the
same k, both signatures share the same r
value — and the private key falls out with simple algebra:
k = (h₁−h₂)/(s₁−s₂) mod n, then
d = (s₁k−h₁)/r mod n.
Android SecureRandom — 2013 Bitcoin thefts
A flaw in Android's SecureRandom produced repeated nonces
across signatures in several Bitcoin wallet apps (Bitcoin Wallet,
blockchain.info, Mycelium and others). Attackers scanned the chain for
repeated r values and drained the exposed addresses. It
prompted an official Bitcoin.org security advisory.
Sony PlayStation 3 — a constant nonce (2010)
Not a wallet, but the canonical example: Sony signed PS3 firmware with a fixed nonce instead of a random one. At the 2010 Chaos Communication Congress, the group fail0verflow recovered Sony's master ECDSA signing key from two signatures — the same math that recovers wallet keys today.
▶ Read the full ECDSA nonce-reuse breakdown →Biased nonces: lattice attacks
Nonces don't even have to fully repeat. If k is merely
predictable — a few high bits always zero because of a weak RNG or
a buggy hardware wallet — then LLL lattice reduction can recover the
private key from as few as 2–4 signatures. This is how several
hardware-wallet and library bugs have been turned into key recovery.
▶ Read the full lattice-attack breakdown →
Human shortcuts: brain wallets
A "brain wallet" turns a passphrase into a key by hashing it once with SHA-256 — the idea being you only have to remember a phrase. In practice, anything a human can remember, an attacker can guess. Researchers (notably Ryan Castellucci's DEF CON 23 talk, and academic studies of the "brain wallet drain") showed that automated bots pre-compute millions of candidate phrases and sweep any funds within seconds of a deposit. Quotes, song lyrics, Bible verses, and "correct horse battery staple" were all emptied almost instantly.
Other low-entropy patterns
- Timestamp seeds: naive scripts that used
sha256(timestamp)reduce the keyspace to the number of seconds in a range — a few hundred million values. (Timestamp mode.) - Sequential keys: keys 1, 2, 3… map to real, long-emptied addresses. (Puzzle mode.)
- Cross-chain reuse: a private key exposed on Bitcoin controls the same key's Ethereum address — different derivation, identical secret. (Cross-chain mode.)
4. Live key-cracking projects to watch
The Bitcoin Puzzle Transaction (2015)
In January 2015 an anonymous creator sent Bitcoin to 256 addresses whose private keys have deliberately increasing bit-length — puzzle #1 uses a 1-bit key, #2 a 2-bit key, and so on. It was designed as a public benchmark for how far key-search has progressed. In April 2023 the prizes were raised roughly tenfold; the outstanding bounty now totals on the order of ~950–990 BTC (tens of millions of dollars).
Every key from #1 to about #70 has been found, along with several higher ones. The active frontier is puzzle #71 and above. A recurring twist: when a solver broadcasts their claim, the key is briefly visible in the mempool, and front-running bots have stolen prizes (as happened on #66 and #69). Trackers:
Key directories & historical efforts
- privatekeys.pw and keys.lol — sites that let you browse the (astronomically large) key space page by page. A vivid, safe way to grasp how empty it is: every page you load is guaranteed to show unfunded addresses.
- Large Bitcoin Collider (LBC): a distributed volunteer project (~2016–2017) that pooled compute to search for funded keys and collisions. It found only a handful of already-known puzzle keys before winding down — a real-world confirmation that random search is hopeless.
What about Satoshi's coins?
Roughly 1.1M BTC sit in early-2009 addresses following the "Patoshi" mining pattern, widely attributed to Satoshi Nakamoto. These are watched, not crackable — they were generated with proper entropy, so the only way they ever move is if whoever holds the keys chooses to spend them. Every so often a dormant early address wakes up and the whole industry notices.
5. Emerging threats: quantum & beyond
The one thing that could someday break the elliptic-curve math itself is a large-scale quantum computer. Shor's algorithm can, in principle, derive a private key from a public key in polynomial time — turning the one-way street into a two-way one.
- Not all addresses are equal. A never-spent-from address only ever exposes its address (a hash), not its public key — which offers some protection. But the moment you send a transaction, your public key is revealed on-chain. Reused addresses are therefore the most exposed.
- "Harvest now, decrypt later": adversaries can archive today's exposed public keys and wait for hardware to catch up. Estimates for a cryptographically-relevant quantum computer range from a decade to never, but the risk is why the field is moving now.
- The response: NIST has standardised post-quantum signature schemes, and Ethereum's roadmap (account abstraction, and research into quantum-resistant signatures) aims to let accounts migrate to new cryptography without abandoning their funds.
Frequently asked questions
Can you actually crack an Ethereum private key?
Not a properly-generated one. There are 2256 (about 1.16 × 1077) possible keys — more than the number of atoms in the observable universe — so no amount of computing power can brute-force them. Every real wallet theft instead exploited weak randomness or reused secrets, never the elliptic-curve cryptography itself.
Has anyone ever guessed someone's crypto wallet?
Yes, but never by luck. Wallets have been drained by exploiting broken random number generators (Randstorm, Milk Sad, Profanity), reused ECDSA nonces, and weak brain-wallet passphrases. In each case the key was recoverable because it was created or used insecurely.
How many Ethereum private keys are possible?
2256, which is approximately 1.16 × 1077 — roughly on the order of the number of atoms in the observable universe.
What is the Bitcoin Puzzle Transaction?
A 2015 challenge in which an anonymous creator funded 256 addresses with private keys of deliberately increasing bit-length, as a public benchmark for key-search progress. Keys up to roughly #70 have been solved; the outstanding bounty is worth tens of millions of dollars.
Will quantum computers break Ethereum wallets?
In theory. Shor's algorithm could derive a private key from an exposed public key. Addresses that have never sent a transaction only expose a hash and are better protected, while reused addresses are most at risk. NIST has standardised post-quantum signatures, and Ethereum is researching quantum-resistant migration.
Is 0xguessr real — can I actually win?
The mechanism is 100% real: each spin generates a genuine key and checks it against funded addresses, confirming any hit on-chain before showing a win. But the odds are about 1 in 7.9 × 1070 per spin, so a real win will never happen. It is an educational demonstration, not a way to make money.