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
  2. Why brute-forcing is impossible
  3. How wallets actually get drained
  4. Live key-cracking projects to watch
  5. Emerging threats: quantum & beyond
  6. Frequently asked questions

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:

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:

This is why the 0xguessr slot machine's "Random" mode has odds of roughly 1 in 7.9 × 1070 per spin. It is not a game you can win by playing longer. It is a demonstration that the number is real, but the odds are not.

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

Disclosed: Nov 2023, Unciphered Estimated exposure: ~1.4M BTC Effective entropy: as low as ~48 bits

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.

Unciphered disclosure →

▶ Read the full Randstorm breakdown →

Milk Sad — Libbitcoin Explorer, CVE-2023-39910

Exploited: Jun–Jul 2023 Wallets hit: 2,600+ Losses: ~$900k

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…".

milksad.info full write-up →

▶ Read the full Milk Sad breakdown →

Profanity — vanity address generator (the Wintermute hack)

Disclosed: Sep 2022, 1inch Headline loss: $160M (Wintermute) Keyspace: 232

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

Date: August 2013 Cause: broken SecureRandom on Android

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

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

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.

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.

The honest bottom line. No one has ever cracked a properly-generated Ethereum key, and — barring quantum computers — no one will. Every real theft exploited a mistake in how a key was created or used. Funded keys that do leak are swept by bots within milliseconds. 0xguessr exists to make that math visible and visceral — not to find you a fortune.

← Back to the slot machine