67ハッシュ and Russian: Майним Bitcoin с помощью бумаги и ручки. I decided to see how practical it 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 bitcoin de paperwallet 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.