Kernel - novacoin-project/novacoin GitHub Wiki

Kernel structure

Coinstake kernel is a virtual structure which is created during proof-of-stake block validation attempt. This structure exists in database and memory, but not on the network. Kernel parameters are described in the following table.

Field Type sizeof Description
nStakeModifier unsigned long int 8 Deterministic modifier, scrambles computation to make it very difficult to precompute future proof-of-stake at the time of the coin's confirmation.
nTimeBlockFrom unsigned int 4 Timestamp for block which provided previous transaction, prevent nodes from guessing a good timestamp to generate transaction for future advantage.
nTxPrevOffset unsigned int 4 Offset of previous transaction inside the block, used to reduce the chance of nodes generating kernel coinstake at the same time.
nTxPrevTime unsigned int 4 Timestamp of previous transaction, used to reduce the chance of nodes generating coinstake kernel at the same time.
nPrevoutNum unsigned int 4 Output number of previous transaction, used to reduce the chance of nodes generating coinstake kernel at the same time.
nTimeTx unsigned int 4 Current timestamp

Neither block nor transaction hash should be used here as they can be generated in vast quantities so as to generate blocks faster, degrading the system back into a proof-of-work situation.