Toda semana recebemos consultas de pessoas que encontraram um HD antigo com um arquivo
wallet.dat de 10 anos atrás. Metade das vezes, o arquivo tem fundos. Metade dessas,
os fundos são recuperáveis. Este guia explica honestamente o que nosso motor faz com um
wallet.dat, por que a maioria dos serviços falha com wallets antigas, e o que você precisa
saber se seu caso é viável.
Anatomia de um arquivo wallet.dat
wallet.dat NÃO é um arquivo de texto cifrado. É uma base de dados
BerkeleyDB (formato BDB 4.8 em versões legacy, SQLite em Bitcoin Core 0.21+).
Dentro desse DB existem três tipos de registros relevantes:
name_*: pares endereço ↔ etiqueta (texto plano, não cifrado)tx_*: transações da wallet (parcialmente cifradas — os outputs sim, os inputs públicos não)ckey_*: chaves privadas cifradas com AES-256-CBC usando uma chave mestra derivada da senhamkey_*: master key com metadata de derivação (n_iterations, salt, etc) — este é o que atacamos
O truque é que os endereços públicos são extraíveis sem senha. Você pode rodar
bitcoin-cli dumpwallet contra o arquivo (depois de copiar para uma instância limpa
de Bitcoin Core) e obter todos os endereços, o que permite consultar saldo em
blockstream.info antes de investir um dólar em recovery.
No UnlockFile isso é parte do Diagnóstico USD 35: te dizemos se sua wallet tem fundos antes de cobrar o AI Scan completo. Se a wallet está vazia (caso ~30% dos arquivos antigos que recebemos), te devolvemos USD 35 menos custo operacional e você não perdeu o AI Scan de USD 2.000.
A cifragem: AES-256-CBC + derivação SHA-512
A senha que você digita quando faz encryptwallet "minhachave" NÃO é usada
diretamente para cifrar. Bitcoin Core faz o seguinte:
1. Gera salt aleatório de 8 bytes (armazenado em mkey_)
2. Deriva a chave mestra: SHA-512(senha || salt) iterado N vezes
- N depende da versão do software no momento da cifragem
- Bitcoin Core 0.4 - 0.9: N = 25.000 iterações (2011-2013)
- Bitcoin Core 0.10 - 0.12: N = 25.000 - 50.000 (2014-2015)
- Bitcoin Core 0.13+: N = 50.000 - 200.000+ (2016+)
- Calibração: cada release calibra N para levar ~100ms em
hardware típico da época
3. Pega os primeiros 32 bytes como chave AES-256
4. Pega bytes 32-48 como IV
5. Cifra cada private key com AES-256-CBC + essa chave/IV
6. Armazena ckey_ = AES-256-CBC(privkey, derived_key, IV)
Esta é a razão pela qual quanto mais antiga a wallet, mais fácil o brute force: 25.000 iterações de SHA-512 são um custo computacional pequeno em uma RTX 3090 moderna. Uma wallet de 2013 com senha razoável podemos atacar a milhões de tentativas por segundo. Uma wallet de 2024 com a mesma senha está na ordem de centenas de milhares por segundo — 100x mais lento.
Por que a maioria dos serviços falha com wallets pré-2017
Há três categorias de serviços de wallet recovery no mercado:
1. Serviços "$0 upfront + 20-25%": usam hashcat genérico em cloud GPU
Hashcat tem módulo -m 11300 para Bitcoin Core wallet.dat. É um serviço
"best-effort" — rodam uma RTX 4090 alugada no RunPod ou Vast.ai por algumas horas, testam um
dicionário comum + maybe rules, e se não encontraram, abandonam. O cliente não fica
sabendo que abandonaram até passar um mês sem novidade.
O problema técnico: hashcat genérico não aproveita dicas não-padrão (year-of-creation, language fingerprints, themes). E sendo hardware alugado, cada hora custa dinheiro — o incentivo é abandonar casos difíceis rápido.
2. Serviços "$2k+ upfront": usam custom GPU pipeline
Aqui entram KeychainX, ReWallet, Crypto Asset Recovery e nós. Temos hardware dedicado (não alugado), kernels CUDA próprios otimizados para BTC ECDSA + SHA-512 batch, e as 40 horas que dedicamos ao caso são compute real, não queimar tempo de escritório. A diferença de throughput vs hashcat: nosso motor processa 100M tentativas/segundo de SHA-512 em uma única RTX 3090. Hashcat genérico faz 10-15M.
3. "Serviços" que são scams
Te pedem que mande o wallet.dat "para avaliar". Depois te chantageiam com a
informação dos seus endereços, ou diretamente te roubam se conseguiram crackear e você não tem
cópia para mover os fundos antes. NUNCA mande wallet.dat em plain text por email para
ninguém. Os serviços sérios trabalham com arquivo cifrado adicional, NDA digital, e
você move os fundos primeiro antes de cobrar o success fee.
O fator "tamanho do arquivo"
Uma heurística pouco conhecida mas útil:
| Tamanho wallet.dat | Provável conteúdo |
|---|---|
| ~20 KB | Wallet recém-criada, sem transações |
| 200 KB - 1 MB | Wallet com 5-50 transações, possível saldo |
| 1 - 5 MB | Wallet com 100+ transações, alta probabilidade de saldo |
| 5 - 20 MB | Wallet ativa por anos, quase certeza de saldo significativo |
| 20+ MB | Wallet de exchange antiga ou miner, cripto de 5+ figuras provável |
Se sua wallet pesa mais de 8 MB e a data do arquivo é pré-2017, vale 100% pagar o Diagnóstico USD 35. A probabilidade de ter fundos é alta e a cifragem é atacável.
As dicas que fazem a diferença
Sem dicas, atacar uma senha de 10 caracteres alfanuméricos é matematicamente inviável (10^17 combinações a 100M/s = 30 anos). Com dicas razoáveis, o espaço se reduz dramaticamente:
- Comprimento aproximado: se sabe que era 8-10 chars, elimina 99% do espaço
- Charset: só lowercase + números reduz a 36 chars vs 95 (printable ASCII)
- Idioma: senhas em português usam padrões distintos (palavra + ano + signo)
- Ano de criação: senhas de 2013 raramente incluem símbolos ou uppercase
- Tema: nome de pet, data de aniversário, palavra significativa
- Variantes conhecidas: se você usava o mesmo padrão para outras senhas
Quando você faz o AI Scan com a gente, o LSTM model que temos gera variantes plausíveis a
partir da sua dica inicial. Por exemplo, se você lembra "algo com bitcoin e meu aniversário 1985",
o motor gera: bitcoin1985, Bitcoin1985!, btc85,
1985btc, Btc1985!, etc. Reduz o espaço de busca 100-1000x vs brute
force cego.
Quando NÃO podemos recuperar (sendo honestos)
- Você não lembra absolutamente nada da senha: se sua dica é "acho que era em português, mas não sei o tema", o espaço é grande demais mesmo para nosso cluster
- Senha gerada por password manager com 24+ chars random: matematicamente fora de alcance
- wallet.dat com encriptação múltipla (alguém cifrou 2 ou 3 vezes com senhas distintas)
- Arquivo corrompido: BerkeleyDB quebrado que não conseguimos parsear (raro, mas acontece com discos antigos)
- Wallet sem senha original que originalmente NÃO tinha cifragem mas agora pede uma: provavelmente não é o arquivo original
Se seu caso entra em alguma dessas categorias, te dizemos no relatório de viabilidade antes de cobrar o AI Scan completo. O Diagnóstico USD 35 é o filtro.
Comparativa numérica honesta
| Caso | Sem nós (DIY) | UnlockFile USD 2.000 |
|---|---|---|
| Wallet 2013, dica razoável, 8 chars | Possível com hashcat + 1 RTX, ~30 dias | 3-7 dias |
| Wallet 2017, dica vaga, 10 chars | Quase impossível sem GPU pro | 10-21 dias, 60-70% sucesso |
| Wallet 2020, sem dica, 12+ chars | Impossível em vida | NÃO viável, te dizemos no relatório |
| Wallet 2014, senha de password manager | Impossível | NÃO viável |
| Wallet 2015, dica "nome da namorada + ano" | 1-2 meses com hashcat + dictionary | 1-3 dias com LSTM variants |
O processo passo a passo se nos contratar
- Você paga Diagnóstico USD 35: confirmamos em 24h se a wallet tem fundos e se é atacável. Se NÃO é viável, explicamos por quê.
- Se decidir avançar, paga AI Scan USD 2.000: rodamos 40h de cluster GPU dedicado com suas dicas. Entregamos relatório técnico detalhado.
- Se encontrarmos a senha, te enviamos cifrada: você abre a wallet em uma instância limpa de Bitcoin Core, transfere os fundos para uma nova wallet sua.
- Uma vez que confirma o recebimento dos fundos, faturamos success fee 30-40%: sai dos fundos recuperados, não do seu bolso prévio.
Se quiser começar, vá para a página principal de Wallet Recovery ou inicie direto com o Diagnóstico de USD 35 (descontamos do AI Scan se você avançar).