A TxTracking blockchain & blockstore implementation: a compromise between Full Pruned Block Chain and SPV Block Chain
Like a Full Pruned Block Chain, it keeps track of ALL unspent transaction outputs since genesis block. Removes unnecessary old data.
It only verifies scripts of coinstake transactions (1 coinstake per POS block), so CPU-wise it is light-weight like a SPV Block Chain
Unfortunately, it is not as lightweight as a Simple Payment Verification system, but technically there is no way to make bitcoin-SPV style for a POS coin security-wise.
Processed data holds around 67 mb on disk (as of block 343262).
Proof of Stake Protocol (PPCoin v0.3) :
Blockchain calculates stake modifiers correctly
Blockchain calculates and verifies stake hashes correctly (Modifiers mentioned above are required for verification). This guarantees the core security of a POS coin.
Block signatures are supported and verified (PPCoin protocol requires each block has to be signed by owner of coinstake to prevent replaying attacks)
Various security aspects handled due to being POS coin:
Attacks caused by flooding side chains with invalid POS blocks (blocks that have correct header difficulty, but don't match coinstake protocol) are rejected on receipt, so the low block header difficulty won't cause attacks (Normal bitcoinj trusts only header difficulty, as expected for a POW only coin. This is not the case for POW+POS coins)
Similarly, flooding side chains with unverifiable POS blocks (blocks that have correct header diff, but unable to verify/reject coinstake due to the output being spent&removed on main chain) are prevented due to ignorance of their difficulty. A side chain can overcome the main chain only if its *verifiable* blocks constitute a greater amount of work. Unverifiable blocks count as zero work (Until side chain becomes the main chain, where every block will be verified one by one on reorganization)