Guessing a random Ethereum private key
The purest attack — and the one that can never work. Generate a random 256-bit number, derive its address, and hope it holds funds. Here is the math that makes it hopeless.
How it works
An Ethereum private key is simply a random integer between 1 and roughly 1.16 × 1077 (that is 2256). The "Random" mode generates one using your browser's window.crypto.getRandomValues() — the same cryptographically-secure generator that protects your bank's TLS connection — then derives the address: multiply against the secp256k1 curve to get a public key, hash it with Keccak-256, and take the last 20 bytes.
That derived address is checked against a Bloom filter of ~1.5 million addresses that currently hold at least 1 ETH. A hit is confirmed with a live on-chain balance call before anything is declared a win.
Why it is physically impossible to brute-force
2256 is not just a big number — it is a number that defeats brute force at the level of physics:
- There are an estimated 1078–1082 atoms in the observable universe. The keyspace is on that same scale.
- If all 8 billion people each ran a billion GPUs checking a trillion keys per second since the Big Bang, they would have covered far less than a quadrillionth of a quadrillionth of the space.
- By Landauer's limit, merely counting to 2256 on the most efficient computer physically possible would require more energy than boiling every ocean on Earth many times over.
Crucially, there is no strategy that beats uniform randomness. Every key is equally likely, so no ordering, pattern, or heuristic improves your odds above the base rate.
The real lesson
Because pure guessing is hopeless, every real-world wallet theft has instead attacked how a key was generated or used — weak randomness, reused numbers, or human-chosen secrets. Those are the other modes in this game, and each is a genuine, documented failure.