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.