Skip to content

Latest commit

 

History

History
50 lines (34 loc) · 1.55 KB

README.md

File metadata and controls

50 lines (34 loc) · 1.55 KB

warpwallet_cracker

A brute-force cracker in Go for the WarpWallet Challenge 2: https://keybase.io/warp/

Challenge

The WarpWallet Challenge 2 has now expired. The correct passphrase was HY4r0uWn. (private key 5J34oCttqfswmkGnX5NWrU19xkZPNu4a2bRJHW2UdiAU7QpTSsN)

Usage

$ go get ./...
---
$ go build warpwallet_cracker.go
---
$ ./run.sh 
Using address "1MkupVKiCik9iyfnLrJoZLx9RH4rkF3hnA" and salt "[email protected]"
Tried 4 passphrases in 2.269448485s [last passphrase: 2zZM3L1C]

Performance

This script has been optimized for speed. On a MacBook Pro this achieves ~1.1 hash/sec/core (with hyperthreading enabled). At this hashrate it is not feasible to enumerate the entire keyspace of 62^8 hashes.

For example: if you run this script for a year on a quad-core Macbook, there is a 1 in ~37M chance of your RNG gifting you 20 BTC.

Ideas for further improvements:

  • Explore using SSE2 for faster scrypt
  • Use all cores of the CPU
  • Build a bloom filter containing past attempts (is a bloom filter lookup faster than a hash attempt?)
  • Figure out a way to share the bloom filter with other crackers
  • Deterministic key generation for better search space partitioning (instead of seeding rand with a unix timestamp)

How-to

Build:

go build warpwallet_cracker.go

Params:

./warpwallet_cracker [Address] [Salt - optional]

Run (Windows):

run.bat

Run (*nix):

./run.sh

Run unit tests and benchmark:

go test -bench=.