Proof of Concept Video:- Working on real bitcoin network with real addresses and real coins.
- All transactions can be verified on blockchain.info
- Randomly generated Bitcoin Adresses are used (however they are all special-weak). This again shows you that there is an infinite number of weak bitcoin addresses.
- Sorry for all the cursing: It has been a long day
http://www.youtube.com/watch?v=TC43aOdsf4g&hd=1What is up to sale:After 18 days of excessive work, I have today finished my hobby project:
It's a ECDSA private key cracker for the secp256k1 curve which is for example used in bitcoin.
What does this tool make better than others:Existing Bitcoin Private Key crackers go through the whole palette of algorithms that are used in bitcoin - to mention some we have ECDSA, sha256, ripemd160 and base58 encoding.
Actually, we do not need to do most of them at all. My tool bases on elliptic curve cryptography only.
A known bitcoin public key has to be converted to hexadecimal and embedded into the software - then using elliptic curve mathematic only it can quite efficiently search through the search space.
Exact functioning:- Keyspace is reduced in a precomputation phase by calculating several thousand rendezvous points (they are hardcoded in the software but may be changed at any time).
- This precomputation phase is inspired by the "Baby-Step-Giant-Step" algorithm.
- The target public key is then (using ecdsa arithmetic) reduced subseqentially until hitting one of the rendezvous point. Given G is the generator point, and R=x*G the rendezvous point (which private key is known),
we then may get the original privatekey by just taking PrivKey=x+iterations where iterations equals to the number of decrements were needed to hit R.
Open CL Extras:- Kernel currently works with a global work size of 81920 (value can be adjusted for your graphics card). Meaning in every iteration step 81920 reductions can be made to the public key you try to crack.
- Given the rendezvous point table of size 768 (may be extended anytime) we can do 81920*768 = 62914560 key comparisons per cycle.
- Rendezvous-Table checks are based on just 32bit of x-coordinate to keep it fast! If a collision is found a local verification is performed on the CPU to see if its just a partial collision or a full match. This relaxes the GPU
- Midpoint Feature - So even when your computer shuts down or gets restarted - the work you have already done is remembered
- my HD7970 is at the moment capable of doing 150 MEGAKEYS per second - just a question of time until a rendezvous is being hit- Speedup is possible with a better Modular-Multiplication. Currently implemented as Double and Add, you could use Montgomery or FFT to get tremendous speedups
Is it for beginners?No! You should be exactly know what your doing. Even though the code is straight forward, you need to know what is being done exactly and where you need to manipulate parameters if you want to change something.
Documentation and Source Code?Included (as a QT Project buildable on linux and windows)
Price:I am asking you 2 BTC for the whole package. It has taken me lots of time to research everything and implement it cleanly. And who knows, this tool is giving you good chances to get one of these lost 10 MILLION US$ accounts
Disclaimer:This project is for research purpose only, or to recover lost private keys. It may not be used for any illegal activities and I cannot be held responsible for anything you do with it.
http://imageshack.com/a/img854/1821/qlf9.png