Preventing 51% Attacks by Including Proof of Work of Every Transaction in Blocks

The sum of the work of the current block plus the work on all transactions equals to block total work.
The sum of the work of the current block plus the work on all transactions equals to block total work.

What if block proof of work (POW) or weight is extended to every transaction (TX) in the Merkle tree?

Example

Miners do a POW for every TX and then add that work to the normal hash of the block header so the total work or weight of the block now includes the work of every single TX.

So, now miners want to include TXs not only because they pay fees but also because they need to add them so their blocks are heavier, or have more work (as per the “longest chain” rule), so they have a better chance of winning the reward.

Benefits

I think this would protect the chain more as an attacker would have to include the intended double spend transaction he entered first to even keep up with the main chain, probably invalidating the attack as a “double spend” is usually the absence of a past TX in a future chain of blocks.

This is because an infinitesimal work differential per block (the absence of a past TX) would cause his block or attack chain to be excluded from the chain.

I think this would make miners hungry for new TXs, probably maxing out blocks and reducing the mempool.


Code Is Law

Author: Donald McIntyre

Read about me here.