There are a few things I don't quite understand here.<p>First, why bother cleaning up the spam? IIUC it has always been the case that miners are allowed to choose which transactions they do and don't include in a block. The idea is that as the block solving reward diminishes, there will be a market for transaction fees. If you set the fee high enough, many people trying to make a block will add it to their list. If the fee is not high enough, then nobody will add it to the list and it will take a <i>long</i> time (possibly forever) to clear. Ignoring tiny transactions that have very small transaction fees seems like a completely reasonable thing to do to me... Is there a downside to this?<p>This leads me to another question. If a transaction never gets processed, can the original person get their money back? I suppose they can double spend and the transaction that gets processed first wins, but that seems like a risky proposition. It's been a while since I looked at the protocol, but I can't recall anything about cancelling transactions (and I don't know how that would work...). So if nobody decided to add your transaction to a block, do you effectively lose that money? That seems like an unacceptable situation, so I have to imagine that there is some work around that I haven't imagined yet...<p>Finally, if there is some way to cancel a transaction, then I suppose this can lead to a DOS attack by sending out lots of transactions and then cancelling them right away. While nobody needs to add a transaction to a block, I can't understand a way for the protocol to work unless the transactions are propogated to every miner so that they can at least choose what to add to their blocks. Is there anything in the protocol to limit the effect of someone simply flooding the network with worthless transactions? (Given the current problem, I'm guessing no...)