Blockchain Academy
We'll get together for networking with people interested in Blockchain including developers and anyone curious about Blockchain.

Difficulty

The difficulty of Ethereum is a value that allows that create a block in about 15 seconds by adjusting the block generation time. If the difficulty is low, it will quickly find the nonce value necessary for mining, the block creation time is shortened. Miners who have a lot of computing power are able to mined quickly, and they become monopolized. On the other hand, if the difficulty level is high, it takes time to find the nonce value of the block, and if the block creation time is long, the processing of the transaction becomes slow. Difficulty in the block header refers to the difficulty level of the block, and the difficulty is calculated from the previous block's time stamp and previous block difficulty. The formula for calculating the difficulty in Ethash, the Ethereum consensus engine, is as follows.

Difficulty = (parent block difficulty + (parent block difficulty / 2048 * maximum value ((2 or 1 if there is an uncle block) - ((time stamp - parent block timestamp) // 9), -99))) + 2 ^ (periodCount - 2)

(Reference : https://github.com/ethereum/go-ethereum/blob/master/consensus/ethash/consensus.go)

The 2 ^ (periodCount - 2) formula in the difficulty formula is called a difficulty bomb and is a formula to calculate the number of fake blocks to exponentially slow down the actual mining time. The reason for the existence of such a device is that it allows the miners to prepare for the Casper project, which converts the consensus algorithm from the existing PoW method to the PoS.