On using the heaviest chain

As we know, with difficulty adjustment, Bitcoin uses the heaviest chain (calculated by the sum of the block difficulties) instead of the longest chain to determine the ledger. However, it is a bit tricky to use the heaviest chain rule, as well explained in a lecture note by Pramod. In particular, if we are not careful enough, there will be a severe security issue (see Page 7 of the lecture note). To sum up their key observation, the heaviest chain rule should be used together with other ideas

  1. varying the difficulty target of block mining based on the average inter-block time from the previous epoch;

  2. allowing the difficulty to be adjusted only mildly every epoch.

Subspace consensus follows this practice closely (and so avoids potential vulnerabilities).

We could also explore adding PoT iteration count into the difficulty mix if we decide to introduce PoT difficulty adjustments someday.