Ensuring Decentralization

Right now, one of the big features of Bitcoin, as well as other cryptocurrencies is the fact they can theoretically be mined in a decentralized manner.

There’s a reason we say “theoretically”, and it’s because mining is tending towards becoming more centralized with the development of ASICs, mining pools, and mining farms.

The fact that mining pools and mining farms is pretty straight forward, as they’re usually run by a single entity.

ASICs on the other hand, are also centralized, but in the sense that ASICs can cost a lot of money.

This means that only people with the enough capital can acquire them, centralizing the mining process.

 [Decentralized mining 2 — puzzle requirements] We’re going to attempt to address the problem of mining centralization by considering the design of the underlying hash puzzle, and see if there’s any way we can redesign it.

Here’s a quick reminder on what properties a cryptographic puzzle should have.

A puzzle should be hard to solve but easy to verify.

In Bitcoin, finding a nonce is incredibly difficult, but verifying that a particular nonce is correct is much much easier.

The difficulty should be adjustable to account for changes in mining technology (i.e.

ASICs).

In Bitcoin, the difficulty is adjusted every two weeks.

You need a solving rate proportional to computational power, meaning that the difficulty reflects the amount of hashpower in the network.

A puzzle should be “progress free”, meaning that finding a hash does not make it easier to find the next hash.

Every solution is independent of the previous ones.

Lastly, you need a pseudorandomly generated puzzle.

Bitcoin’s puzzle is described as a partial hash preimage puzzle.

You don’t have to find the exact preimage of the hash, as long as you have the prerequisite number of leading zeros.

Ensuring Decentralization: ASIC Resistance