maybe the coinbase maturity was what you meant?
No, because it was 120, before it was simplified into 100. If you have 6 blocks per hour, then 120 was used as "20 hours".
After a block is created, the maturation time of 120 blocks is to make absolutely sure the block is part of the main chain before it can be spent. Your node isn't doing anything with the block during that time, just waiting for other blocks to be added after yours. You don't have to be online during that time.
maybe, maybe not. hard to tell without having proof for this. but i am not here to fight over such things. i work with what i have in information. its information tech after all and hence as the code already says: discard anything not verified or potentially invalid into. it is just how things work with how it was build.
but i say thx for the new information you now brought me. i can only tell that it is now saved inside this forum as well and we have to wait what will come out of it through time. cause only time can really tell towards proof of work!
but your 20 hours could somehow connect into the mentioned starting difficulty for 20 for minproofof work. would also make sense to me.
// Check the header
if (nBits < MINPROOFOFWORK || GetHash() > (~uint256(0) >> nBits))
return error("CBlock::ReadFromDisk : errors in block header");
return true;
this code part also makes sense for it. cause nBits also was 20 in size in this version. this would point proof of work itself a constant connected to the nBits value
also:
// nBits = 20
// CBlock(hashPrevBlock=000000, hashMerkleRoot=769a5e, nTime=1221069728, nBits=20, nNonce=141755, vtx=1)
code lines 1019 and 1021 in main.cpp (still this version 0.0.

i am just pointing on the logic written in this version. no more no less. this is how information (transactions and blocks) has to be processed. by checking header data accordingly.