Out of One Comes Many, The Cloning of Bitcoins

“It’s like bleaching and reprinting one-dollar bills as hundreds. E Unum Pluribus. Out of one comes many.”

Preevyet, Cheeky Coder!

Bitcoin mining is really simple, so simple it can be done by hand. It’s just a matter of performing SHA-256 hashing operations of Bitcoin transaction blocks looking for hashes that starts with enough zeroes. But it’s a slow process. Currently, a valid hash must start with approximately 17 zeroes – or more precise: the hash value must be less than the current Bitcoin difficulty level – so only one out of 1.4x1020 will be valid.

The SHA-256 hashing algorithm takes input blocks of 512 bits (64 bytes), combines the data cryptographically, and generates a 256-bit (32 bytes) output. The SHA-256 algorithm consists of a relatively simple round repeated 64 times.

There is a known shortcut, as mining can reuse the result of hashing the first 512 bits, but that is still going to be the very slow walk of a turtle named Brute Force. That is, it was slow until I figured a way to short-circuit the algorithm. After getting the first valid hash, subsequent valid hash values can be found at snappy speed by doubling up with the Kt constants. These constants were put there by the NSA, and the agency did not pick these constants at random. They had a plan, but that plan did not involve Mr. Karamazov. In any clever plan there’s a hitch.

How I pulled that rabbit out of the hat is a secret. Of course it is. Money is money and the money is Ivans. Viper will eat viper, and it will serve them both right!

It’s like bleaching and reprinting one-dollar bills as hundreds. E Unum Pluribus. Out of one comes many.

With best wishes,

Ivan Fyodorovich Karamazov


This is a post in the Ivan The Hacker series. Posts in this series:



Please follow me on Twitter and let my my feed sit idle in your RSS reader.