Poisoner
Action - Duration - Attack
Cost 4$
+2$
Until the beginning of your next turn, each time an other player discard an attack card from play: Trash it.
It's got tracking issues with Moat and Lighthouse. You have to remember if you successfully blocked the attack by the time your turn comes around.
Also, it has the "bad ratio" issue that most "Reaction that hurts the attacker"-type cards have. You're only "attacking" the player of the attack instead of all other players. With this on the table, I'd rather forgo Attack cards rather than have them be either dead or one-shots. The fact that Poisoner is just a terminal Silver when not trashing Attacks seals the deal. I can make your Poisoners worse by not buying Attack cards.
I think it might work better if it also had some sort of attack effect that worked regardless of whether your opponent is playing Attack cards. That way you're incentivized to buy one even if the opponents don't have any Attack cards. That may in turn incentivize them to buy Poisoners. I haven't thought it through that thoroughly, though. (Dang, that was an unintentional tongue-twister.)
Ok that's fair enough remarks.
For tracking issue i think they are actually more easy than you think. If you have a Moat in your hand at the start of the turn you know you are protected for that turn. same for lighthouse you know at the beginning of any turn if you are under poisoner for that turn or not.
But you are right that it needs to be good enough in its own right to warrant playing it in the first place especially if its the only attack in the kingdom.
And actually since it is a risky card by design we can probably go a little overboard for a 4 cost card with it.
So i would say either the boring way:
Boring Poisoner
Action - Duration - Attack
Cost 4$
+3$ Until the beginning of your next turn, each time an other player discard an attack card from play: Trash it.
Or the more crazy way:
Serial Poisoner
Action - Duration - Attack
Cost 4$
+2$
Reveal cards from your deck until you reveal an Attack card. Discard the other cards then play the attack card.
Until the beginning of your next turn, each time an other player discard an attack card from play: Trash it.
I think i really like that last version ^^ but i am probably craaaazy