# My bitcoin mining rigs

67ハッシュ and Russian: Майним Bitcoin с помощью бумаги и ручки. I decided to see how practical my bitcoin mining rigs would be to mine Bitcoin with pencil and paper. It turns out that the SHA-256 algorithm used for mining is pretty simple and can in fact be done by hand.

Not surprisingly, the process is extremely slow compared to hardware mining and is entirely impractical. But performing the algorithm manually is a good way to understand exactly how it works. The mining process Bitcoin mining is a key part of the security of the Bitcoin system. The idea is that Bitcoin miners group a bunch of Bitcoin transactions into a block, then repeatedly perform a cryptographic operation called hashing zillions of times until someone finds a special extremely rare hash value. At this point, the block has been mined and becomes part of the Bitcoin block chain. The SHA-256 algorithm consists of a relatively simple round repeated 64 times. The diagram below shows one round, which takes eight 4-byte inputs, A through H, performs a few operations, and generates new values of A through H.

The blue boxes mix up the values in non-linear ways that are hard to analyze cryptographically. Since the algorithm uses several different functions, discovering an attack is harder. If you could figure out a mathematical shortcut to generate successful hashes, you could take over Bitcoin mining. The Ma majority box looks at the bits of A, B, and C.

For each position, if the majority of the bits are 0, it outputs 0. What this means for mining hardware Each step of SHA-256 is very easy to implement in digital logic – simple Boolean operations and 32-bit addition. If you’ve studied electronics, you can probably visualize the circuits already. For this reason, custom ASIC chips can implement the SHA-256 algorithm very efficiently in hardware, putting hundreds of rounds on a chip in parallel.

In contrast, Litecoin, Dogecoin, and similar altcoins use the scrypt hash algorithm, which is intentionally designed to be difficult to implement in hardware. It stores 1024 different hash values into memory, and then combines them in unpredictable ways to get the final result. As a result, much more circuitry and memory is required for scrypt than for SHA-256 hashes. To be precise, the hash must be less than a particular value that depends on the current Bitcoin difficulty level. The source of the constants used in SHA-256 is interesting. The first sentence says “looks at the bits of A, B, and C”, which agrees with the diagram.

But the fourth sentence says “for each position in B, C, and D”. The diagram shown says “transaction count: 63” but the block on Block Explorer says “Transactions: 99”. I shall go through it in detail in a bit. I love how you calculated energy costs lol. I am tempted to add you to my “Bitcoin Mining Rigs”. Now I think you are even more similar to Weird Al. And I also know what you do on Fridays when soccer season is not on.

This is most helpful and removes the mystery. Basically there are few shifts, xors, and adds applied to the input data. Or is null something different than a zero-length field? To me it seems the a thru h must be the final set of values coming from round 64 but what is “the compressed chunk”?