Masternode based block witness system to mitigate disk-space attacks.
Masternode pings are sent out by MNs every 10 minutes. The masternode pings already include the blockhash of 12 blocks before their chain tip. The masternode ping is now changed to have more data appended to it as well as a version. When the version comes in as v2 (which will happen on any mn running the updates) it will also include the last 10 blockhashes that are on the chain that masternode is on, as well as an additional signature signing the appended message.
These messages will feed into a global object called g_proofTracker. The proof tracker will keep track of all the blocks masternodes have signed. The tracker also keeps track of each stake hash proof.
When receiving a block from peers, and deciding whether to accept the block (therefore also storing it to disk), the proofTracker is asked whether the hash proof is suspsicious. If it is suspicious it will skip accepting that block.
The block is labelled as suspicious if it uses a stake hash that has been repackaged 3 times (2 times happens more frequently than you would think, so no reason to false flag these and create friction). If the block has a proof that is repackaged 3 times, but has 6 or more masternodes that consider that block to be on the correct chain, then the block is not labelled suspicious.