What about limiting the number of tickets per card?
Or do what airlines do and you need to declare who is using the ticket. Maybe allow exchange for up to 50% of a party.
Then the scalpers can't win but there is still a DOS problem to solve.
Maybe a card auth -> reserve seats -> complete txn flow would help there. The card auth rate limits the amount of unbooked but temporary reserved tickets.
replies(2):