Post
Topic
Board Development & Technical Discussion
Re: BitCrack - A tool for brute-forcing private keys
by
btc-room101
on 27/11/2018, 23:25:17 UTC
Hi all,

I've been working on a tool for brute-forcing Bitcoin private keys. The main purpose of this tool is to contribute to the effort of solving the Bitcoin puzzle transactions: https://blockchain.info/tx/08389f34c98c606322740c0be6a7125d9860bb8d5cb182c02f98461e5fa6cd15

Screenshot:



It is open-source under the MIT licence and requires no external dependencies other than the CUDA toolkit. It builds on Windows using Visual Studio 2015, and Linux using Make (you might have to edit the Makefile and point it towards your CUDA toolkit directory).

It can search for compressed/uncompressed keys or both.

The performance is good, but can likely be improved. On my hardware (GeForce GT 640) it gets 9.4 million keys per second compressed, 7.3 million uncompressed.

Note:
-Currently it is CUDA only.
-It can only search one target key at a time


Features I would like to add if there is enough interest for the project:

-Support for searching multiple target keys at one time Done
-OpenCL/AMD device support
-CPU with AVX/AVX2/SHA support
-Checkpoints/Stop and resume
-Vanity address generation


Source and Win32/Win64 binaries available here:
https://github.com/brichard19/BitCrack
https://github.com/brichard19/BitCrack/releases/tag/v0.0.6


Thoughts?


Thanks!

I wrote a package last year called 'inflection', its detailed on www.inflection.top, but I have been working on this problem since 2012, and I was an early miner, but I always found BTC-HACKING, e.g. solving the 'discrete log problem' more interesting than accumulating btc.

All the things you have asked for have been done,

But I might add that 'brute force' hunting is not the way to go about this problem, like the other guy 'LBC' linear collider, its stupid to search 1-N, where N is 2**256, as that is counting all the atoms in the universe, many times over. It can't be done, unless you have an infinite time-frame to solve the problem,

The way to go about this is INTELLIGENT selection of the seed for searching the frames ECDSA, also using SAGE and MSEIVE ( most powerful factoring tool on earth ), you can factor public-keys, and develop a good band for your search, also using FFT, and RNN-LSTM you can generate favorable regions for searching,

My software that supports all GPU HW, currently does 150M/sec calcs per 1060 class card, so on a typically GPU rig for mining, I can do over a Billion calc's per second, but that is still just 10***9, where our scope is say 10**77, and there are 10**71 atoms in the universe.

Also I don't think its possible to find a particular key for a particular address, the way to go about this problem, is I have 200 million addresses with value, and 100k with high-value, I use a four layer hierarchical bloom-filter that starts at 2*32, and goes up to 2**40, everytime I find a priv-key that matches my list, there is 0.0000001% chance of false-positive, that one in 10 million, but I'm doing a billion a second, so I'm geting a lot of false positive hits, so as candidates are found, they past to the next heirarchy of bloom filters, so I can kick out up to one in a billion false-positives, I usually dial this stuff in so I can about 100 candidates a day, then its easy to use the database online to check if the key found has a 'current value', if > 0, then I log, I have found lots of 0.001 BTC, but the odd's of finding > 0.01 BTC are low, as we're talking 2*22 in a space of 2**128

So in reality here I'm looking for 200 million keys at once, not looking for one, and I'm using best estimates of likelyness to search in spaces

I think the most progress will be made in the area of sage/msieve using the published papers on discrete-log problem solving, if you want to find a particular key for a particular public address. Right now I have it down to 2**42, which is still to long to search, but with 2**24 at once, my search space is only 2**22, which is no problem

do you have an open source software ?

can you find the bounty transactions mabey faster with your strategy ?

Yes, sure I give out all the source to free to people in the third world, mostly India; The web-site is www.inflection.top, the github github.com/btc-room101, just tell me what you want,

I have 100's of tools I have written since 2012 when I started working on Bitcoin, most of the stuff is in python, and the gpu stuff of course is in C++;

I'm not inclined to put 100's of packages on github, so tell me what you want, I could make a list of what I have, best here is list what you want, and I'll tell you if  I have it, since I have done this crap for 6+ years ( hack bitcoin ), but I have been hacking crypto for 30+ years, so I have lots of code

I don't know what people want or need,

I think my site www.inflection.top discusses my areas of research, and the code, normally what I have done is from that site people ( usually students in 3rd world countrys ) send email and request code, I have found in the past that the 'guardians' of bitcointalk don't want anything real, they go out of their way to protect bitcoin, but as an intelligent person knows, knowing this stuff makes you strong, but instead the community prefers the continue the cannards and lies that has made them 'virtually rich', not unlike the little-prince ( a book ) where a man owned all the stars.

I would lke to see BITCOIN stronger, but the PTB want to keep it weak, just like FB,GOOG,TWITTER there is a concerted corporate effort to take away all notions of privacy and security. Here in BTC they tell us its secure, that its private, and anybody who steps forward with the truth is censored. This will be the downfall of BTC that it is over-lorded by imbeciles. In the meantime the RUSSIANS, CHINESE, and INDIANS will leave the west in the dust.