Thanks CIYAM for the intelligent comment (I feel I've been fighting trolls all day).
This is bitcointalk after all.
![Wink](https://bitcointalk.org/Smileys/default/wink.gif)
I recently paid for a beer via BitPay and my Blockchain wallet for iOS sent it as a zero-fee transaction. Because the network was very busy at the time, this transaction wasn't confirmed for about 36 hours.
I would like to get to the bottom of the attack vector you proposed. Is it possible that BitPay could just continuously rebroadcast the transaction, thereby preventing it from falling out of the memory pool? And why didn't my transaction get "dropped" after 24 hours? I remember that it took a day and a half before it was confirmed.
I too am interested to know what Bitpay would do - I guess they certainly could rebroadcast the tx themselves to "keep it alive" although there is the possibility that the tx may not confirm for months or even years (if network usage remained constantly at the same level).
That would open up an attack vector - which is the reason why I assume my tx got dropped from everyone's memory pool with 24-48 hours (I forget the exact amount of time but was certainly not longer than 48 hours).
I think the only *solution* is going to be that the *vendor* pays the fee (some work on the idea of one tx providing the fee for another has already been done although it isn't part of standard Bitcoin yet).