DEV Community

LayerZero
LayerZero

Posted on

Claude just recovered $400K from a forgotten Bitcoin wallet. That's a security warning, not a magic trick.

A guy lost his Bitcoin password for 11 years. Last week, an AI got it back in an afternoon.

The story bouncing around Hacker News this week is too perfect: an old wallet.dat file from 2014, forgotten password, roughly $400,000 in BTC sitting frozen inside. The owner finally pointed Claude at it. The AI wrote a smart, context-aware brute-force script using everything it could infer about the owner's life. Hours later, the wallet was open.

Most coverage frames this as a feel-good AI win. It is not. It's a flashing red light for anyone who still thinks their old passwords are safe.

What actually happened (the part the headlines skip)

Claude didn't break SHA-256. It didn't crack elliptic-curve crypto. It did something much more mundane, and much more dangerous for you:

It wrote a targeted dictionary attack.

A real wallet brute-force at scale is impossible — the keyspace is too big. But humans don't pick from the full keyspace. They pick from their own brain: a pet's name, a birthday, the city they lived in, the keyboard pattern they always default to. Claude used the owner's notes, old hints, and biographical context to generate a candidate list with maybe a few million entries. Then a GPU chewed through them.

# What the attack roughly looks like — simplified
context = {
    "birth_year": 1987,
    "old_pets": ["Mochi", "Luna"],
    "hometown": "Sapporo",
    "likely_separators": ["!", "_", "1", ""],
    "caps_habits": ["first letter", "all", "none"],
}

for base in expand_personal_terms(context):
    for variant in mutate(base, context):
        if try_unlock(wallet, variant):
            return variant
Enter fullscreen mode Exit fullscreen mode

The magic isn't the cryptography. The magic is that an LLM is now good enough to think like the password owner. That's a capability shift.

Why this is the real news

For a decade, the standard advice has been: "a strong password is one no human would guess." That advice is now obsolete. The new bar is: a strong password is one that even a model with access to your entire public footprint can't reconstruct.

That's a much, much higher bar.

Think about how much of your life a determined attacker can hand an LLM today:

  • Your LinkedIn (employers, dates, locations)
  • Your old Twitter/X posts (pet names, partner names, favorite bands)
  • Breached password dumps from sites you forgot you used in 2012
  • The 14-character pattern you reuse with small variations

An LLM can correlate all of it, generate a personalized wordlist that is small enough to brute-force, and grind through your old encrypted backups, your local keystore files, your .zip archives, your KeePass exports from before you started using a long passphrase.

The wallet recovery story is the friendly version. The unfriendly version is your ex's lawyer doing it. Or someone who pulled your old laptop out of an e-waste bin.

What changes for developers, this week

Three things, in order of how painful they are:

1. Stop encrypting things with human-memorable passwords.

Any file that needs to survive ten years — backups, wallet exports, password vault exports, encrypted archives of customer data — should be sealed with a 24+ character random string from a generator. Not a passphrase you can remember. A string you literally cannot type from memory.

# Generate a key your future self (and future Claude) can't guess
openssl rand -base64 32
Enter fullscreen mode Exit fullscreen mode

Store that key somewhere a brute-force can't reach: a hardware key, a paper backup in a safe, a managed secret in a vault you control.

2. Audit your old encrypted files like they're already broken.

Do you have a backup-2018.zip somewhere with a password you remember? Assume it's open. Re-encrypt with a random key. Anything that contained credentials at the time — API keys, OAuth tokens, customer PII — rotate it now, not later. The keys might still work. Old AWS access keys from 2015 still authenticate in 2026 if nobody disabled them.

3. Treat your public footprint as part of your password.

This is the uncomfortable one. Every personal detail you post is now training data for the attacker who wants into your stuff. You don't have to go full hermit. You do have to stop using your dog's name and your kid's birth year as the seed for anything that protects money or customer data.

The deeper shift

For most of computing history, the gap between "a human guessing your password" and "a computer brute-forcing your password" was a chasm. Humans were slow and limited. Computers were fast but stupid — they tried password123, then password124, in dumb order.

LLMs collapse that gap. They are fast and they think like you. That combination didn't exist before, and most of our security habits were built assuming it never would.

The Bitcoin recovery story is fun. The implication is not. If a hobbyist with Claude and a GPU can open an 11-year-old wallet in an afternoon, then anything you encrypted with a guessable password — anywhere, ever — should be treated as a leak that hasn't happened yet.

You have time. The attackers are still mostly chasing $400K wallets, not your notes-backup-2017.zip. But "mostly" is doing a lot of work in that sentence, and the cost of running this kind of attack is dropping every month.

Fix it before someone else does it for you.


If this changed how you think about your old encrypted files, follow LayerZero. We break down how the internet actually works for developers shipping with AI — and what changes the moment AI gets good enough to think like an attacker.

Top comments (0)