Author

Topic: Simple proof of stake rule (Read 788 times)

legendary
Activity: 1232
Merit: 1094
January 09, 2014, 01:41:26 PM
#1
If a transactions sigScript starts with "<32 bytes> ...", then it counts as a stake commit signature.

This commits the coin-age of the output to the block header that hashes to that hash.  If the array was not intended for that purpose, no harm is done, since the hash won't match.

It would be a simple voluntary system where users can help to prevent large scale roll-backs.

Old standard transactions could be signed using this system, just by adding the byte array onto the stack first.

It requires only a soft fork.

The disadvantage is that it adds 33 bytes to every transaction.  Clients which don't incorporate the change could end up following a fork if an attack happened.

The weight between POW and POS would need to be tweaked.

SPV clients could be given an estimate of the POS by only been shown a few transactions per block.  It could be selected from the block header.

tx_index = Hash(block hash) % transaction_count
in_index = Hash(Hash(block hash) % input_count

The SPV client could be sent the merkle path to that transaction (and also the path to the input transaction).  If it has a prefix, then it adds weight to the block header.

Total weight = a*POW + b*POS*transaction_count

a & b selected somehow
Jump to: