Assuming that the 'KimotoGravityWellTW' function is doing what it is supposed to (1 hour min, about 6 days max(or 1 day max? I'm not really sure, either way, the diff is going to be hell)):
https://github.com/s4w3d0ff/1credit/blob/master/src/main.cpp#L1334unsigned int static GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHeader *pblock)
{
static const int64 BlocksTargetSpacing = TargetSpacing;
static const unsigned int TimeDaySeconds = 60 * 60 * 24;
int64 PastSecondsMin = TimeDaySeconds * 0.01;
int64 PastSecondsMax = TimeDaySeconds * 0.14;
uint64 PastBlocksMin = PastSecondsMin / BlocksTargetSpacing;
uint64 PastBlocksMax = PastSecondsMax / BlocksTargetSpacing;
if (pindexLast->nHeight <= FIRST_KGW_BLOCK) {
return OldGetNextWorkRequired(pindexLast, pblock);
}
if (pindexLast->nHeight <= FIRST_KGWTW_BLOCK) {
return KimotoGravityWell(pindexLast, pblock, BlocksTargetSpacing, PastBlocksMin, PastBlocksMax);
}
if (pindexLast->nHeight < FIRST_KGWMB_BLOCK) {
return KimotoGravityWellTW(pindexLast, pblock, BlocksTargetSpacing, 7, 168); // 1 hour min, 1 day max
}
return KimotoGravityWellTW(pindexLast, pblock, BlocksTargetSpacing, 7, 1024); // 1 hour min, about 6 days max
}
if (pindexLast->nHeight < FIRST_KGWMB_BLOCK) {
return KimotoGravityWellTW(pindexLast, pblock, BlocksTargetSpacing, 7, 168); // 1 hour min, 1 day max
}
return KimotoGravityWellTW(pindexLast, pblock, BlocksTargetSpacing, 7, 1024); // 1 hour min, about 6 days max
Then one can assume that a large miner could jump in at a low diff, starting with a small amount of hashing power then exponentially (and quickly) increase the power until the difficulty goes through the roof. Then the miner exits the network (or lowers the hash power to a minimal) until the high diff block gets solved and the diff goes super low, repeat.
Not sure if this is malicious, probably just a profit switching pool (or a troll, but is there a difference?), but the miner with massive power could double spend if they wanted (if they haven't already). You could try a simple fix and adjust the parameters above and try to reduce the damage from profit pools, but if it is a troll, adjusting the above would probably do nothing. You would have have to do a major rewrite or push out a new coin.
IMO, to 'quick fix', maybe start with adjusting the "1 hour min" to something higher or the max to something closer to 1 hour. Good luck!
BTC:15D8VaZco22GTLVrFMAehXyif6EGf8GMYV