So you want to bruteforce a Bitcoin Private Key.... mmmmmkay....
docker run -v crackshmackin:/crackshmackin/data -it --rm xmconstantx/crackshmackin
alternately
git clone https://github.com/mconstant/crackshmackin.git && make out_like_a_bandit
crackshmackin
is a naive, brute-force/dumb-luck/heart-o-gold/hail-mary attempt to help anyone discover that they are Satoshi.
Find one of Satoshi's treasures by attempting to stumble upon the private key of this known address of the Satoshin -- 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa.
Once you have the WIF you can import into your wallet, Satoshi, and then maybe try to remember your password.
The address at this moment in time holds 68.44938308 BTC, which is a sum that can buy at this time almost 11 lambo or an unspecified amount of "Bitcoin Pizza."
This repo was not written by Satoshi. But we were inspired by his ability to stay anonymous so we used his email address for the "Anon" commits.
<script id="asciicast-480631" src="https://asciinema.org/a/480631.js" async></script>- https://keys.lol - Yo Dawg... I heard you like needles in haystacks, so I put your needles in haystacks in haystacks...
- https://bhelx.simst.im/articles/generating-bitcoin-keys-from-scratch-with-ruby/ - This code bit off this guys work a bit. So credit him... ok?
You really don't have any. This is just for fun.
Watch this:
And this:
This brute loves to hog your disk! The default max size for f.addresses
, the fun file where the script saves all the incorrect guess addresses and their corresponding private keys to, defaults to a max size of 20mb. But, if you are a frustrated chia miner with extra 12TB harddrives, or something, you can set that file to be as big as you please. There is an environment variable
MAX_BYTES_F_ADDRESSES
for that.
e.g.:
docker run -v crackshmackin:/crackshmackin/data -e MAX_BYTES_F_ADDRESSES=200000000000 -it --rm xmconstantx/crackshmackin
would set this to ~200GB
There is another environment variable to set the default max size for the file shucks.sux
, a file which stores all the addresses you have private keys for that turn out to have a zero balance (and what's that worth?). Use
MAX_BYTES_SHUCKS_FILE
for that.
e.g.:
docker run -v crackshmackin:/crackshmackin/data -e MAX_BYTES_SHUCKS_FILE=100000000 -it --rm xmconstantx/crackshmackin
would set this to ~100MB. This file grows much more slowly than the f.addresses
file since it makes one line every 10 seconds or so due to API limitations when checking wallet balances.
Don't you want to know when you have hit paydirt?
Use a Discord hook!
e.g.:
docker run -v crackshmackin:/crackshmackin/data \
-e MAX_BYTES_SHUCKS_FILE=100000000 \
-e MAX_BYTES_F_ADDRESSES=200000000000 \
-e CRACKSHMACKIN_DISCORD_HOOK=https://discord.com/api/webhooks/999999999999999999/oxdeadbeefoxdeadbeefoxdeadbeefoxdeadbeef \
-it --rm xmconstantx/crackshmackin
Configure:
Nerd out:
Example (simulated) of what a hit might look like:
Provided you, I dunno, want a chance at actually finding something in this vast keyspace of mostly false turns and empty handedness, you might actually consider a strategy that reduces the keyspace to a manageable level.
If you want to actually find something, consider using a real tool to crack something less secure
I'm talking about the process of hack/cracking brainwallets, for great good.
Hack someone and then send them a friendly reminder to move their funds like this amazing and groovy guy here. He's used an actually efficient method to approach quickly searching the keyspace including fast-hashed (SHA256) 'brain-wallet' private key generation phrases. His smort usage of bloom filters and a reduced space differentiates his project and points towards something that differs from this repo, which is a fun joke for fun people and clowns with redonkulous luck.
Seriously don't ever use song lyrics and a SHA256 hashing algorithm to cook up your private key, or the Nazgul will find you: