Someone Tried to Mine Bitcoin on a 1960s Punchcard Computer

It would take 40 times the age of the universe to successfully mine its first block.

May 26 2015, 2:00pm

Image: Ken Shirriff

It long ago stopped being profitable (or even feasible) to mine Bitcoin on consumer-level hardware. So why not try it out on a computer primarily used by forward-thinking universities—an IBM mainframe that runs on assembly punchcards from the 1960s—to see whether or not it can compete with today's dedicated mining machines?

Ken Shirriff, a computer engineer, blogger, and retro hardware enthusiast, decided to find out. It ended as you might expect. The Computer History Museum's mainframe was indeed able to solve Bitcoin hashes—a series of math problems that are used to verify other users' Bitcoin transactions—but it did so at impossibly slow rates.

"While modern hardware can compute billions of hashes per second, the 1401 takes 80 seconds to compute a single hash," Shirriff wrote. "It would take more than the lifetime of the universe to successfully mine a block."

It looks like the IBM 1401 would be slightly more efficient than mining Bitcoin by hand. In practical terms, none of those mining techniques make any damn sense.

Image: Marcin Wichary/Flickr

The people successfully mining Bitcoin today use dedicated processors that usually run very hot and suck up lots of energy, which is why some of the largest mining operations are in China, where power costs are low, or in places near the Arctic Circle, where processors can be cooled naturally.

Still, we're suckers for weird old tech, and the mining on an IBM 1401 is certainly weird. It was one of the first "affordable" computers, costing about $2,500 a month to lease.

"The IBM 1401 didn't use silicon chips," Shirriff wrote. "In fact it didn't even use silicon. Its transistors were built out of a semiconductor called germanium, which was used before silicon took over."

The 1401 also does not compute in 8-bit bytes like modern computers. Instead it uses 6-bit characters, which make it particularly bad at implementing the algorithm used in Bitcoin mining, known as SHA-256 (which operates in 256-bit chunks; 256 is divisible by 8, it is not divisible by 6).

"The IBM 1401 is almost the worst machine you could pick to implement the SHA-256 hash algorithm," Shirriff wrote. "The algorithm is designed to be implemented efficiently on machines that can do bit operations on 32-bit words. Unfortunately, the IBM 1401 doesn't have 32-bit words or even bytes."

In any case, he wrote out code for running the algorithm on 85 executable assembly punch cards, put the cards into the computer (manually), and fired her up. It started solving an old hash from a successfully mined block of Bitcoin—very, very slowly.

"To mine a block at current difficulty, the IBM 1401 would take about 5x10^14 years (about 40,000 times the current age of the universe). The electricity would cost about 10^18 dollars. And you'd get 25 bitcoins worth about $6000," he wrote. "Performance was worse than I expected."

If you're interested in what assembly code to mine Bitcoin looks like, here's a snippet of his code:

job bitcoin * SHA-256 hash * Ken Shirriff ctl 6641 org 087 X1 dcw @000@ org 092 X2 dcw @000@ org 097 X3 dcw @000@ org 333 start cs 299 r sw 001 lca 064, input0 mcw 064, 264 w * Initialize word marks on storage mcw +s0, x3 wmloop sw 0&x3 ma @032@, x3 c +h7+32, x3 bu wmloop mcw +input-127, x3 * Put input into warr[0] to warr[15] mcw +warr, x1 mcw @128@, tobinc b tobin

The full source is here.