Picking the low hanging fruit - so then I can't spend my money. I've received .5 "even" and .5 "odd" into my wallet, neither of which were under my control. Now I want to pay 1 to a single party.
Your wallet could be all even or all odd. When you ask for an address, it can check if it gives even/odd and discard it if it is the wrong parity.
This gives a longer wait until first confirm (half of the time) but the time until 6 confirms is only increased from 60 minutes to 70 minutes.
You can send all your even-coins to an odd output to make odd-coins.
Have it ready how? A block work still needs to include the hash of the previous block.
I meant you could have the block almost completely ready. You could compute the merkle root.
You would need to update the header to add the prev block (and the path to the coinbase to handle the extra-nonce)
The key point is that when a new block arrives, it invalidates lots of transaction outputs.
This means that if you have a block ready, you have to scan it and drop all transactions that depended on those outputs.
But, if the next block is only allowed to spend even outputs and you can create a block which contains only odd transactions, then no matter what transactions are in the next block, they can't invalidate any of the transactions in the block you have ready.
Miners could be duped into flushing their work and working on the wrong parity by malicious header broadcasts. Maybe you should define what you mean by this.
They would have to broadcast a valid header that meets POW.
Each miner would be mining against one block and have the next block ready.
When a miner finds a valid nonce, they instantly forward the block header to all peers who forward it onward. This doesn't require checking that the block is ok, just the header.
This is not recommended currently, since it creates an incentive for the miner to withhold the full block. With this system, there is lots of time for the miner to send on their block.
When a miner receives the header, they can instantly update the prev field in their "next" block header and begin mining on that block.
I suggest the rules
- mine on the longest chain
- if tied, mine on the full block received earliest
- if tied, mine on the header received earliest