IMO, the whole point of having scratch-off cards is if you don't trust the person handing you the coupon. I don't see any way to fix that short of having a (or many running the same open-source webservice) central trusted authority issuing the scratch-off cards.
That's not the point. The point is to prevent the Bitcoins from being spent back into the network by malicious parties, whether the party is the person holding the card or a malicious third party who shoulder surfs it.