I'm trying to understand the relationship between difficulty and network hash rate. I feel like I understand it for Etherium, where the difficulty is the same as the total number of hashes the network will have to compute, on average, in order to find the next block.

So right now the Etherium network's difficulty is set to 1,736,382,762,670,750 and its network hash rate is 87.83 TH/s. The block time is 21 seconds, so difficulty / network_hash_rate = block time Makes sense.

My problem comes with coins that aren't using the Etherium POW algorithm. One example is Curecoin, which uses SHA-256 and has a difficulty of only 43,006,378, with network hashrate of 289.05 TH/s and block time of 600 seconds. In this case the algorithm is way off, but I have no idea what difficulty means in this situation.

In other words, how can I know what difficulty actually means?

  • For Bitcoin and its direct derivatives, the definition is that difficulty 1 corresponds (approximately) to a target with 32 leading zero bits, so that it takes 2^32 hashes on average for one block. In that case the formula is difficulty * 2^32 / nework_hash_rate = block_time. But that doesn't seem to work for Curecoin either. – Nate Eldredge Aug 18 '17 at 2:25
  • Any coin is free to define this parameter however they want, so there isn't really any general way to know, short of saying "read the source code for every coin". Complicating the issue is that any given third-party difficulty tracking site might choose to use a different definition again. – Nate Eldredge Aug 18 '17 at 2:26