Interesting. I like the logic behind the mechanism. Kudos on the idea. However, it's not defined if it's just your opponent's creatures that are affected. An easy way of solving this is having the shield be activated when they do attack, which would also introduce a reason for your opponent to stop them from attacking. If so, you could also word it clearer, like so:
"Shield: 2 damage is dealt to attacking creatures that did not use their skill this turn"
And for upped: "Shield: Attacking creatures that did not use their skill this turn gains -1|-2."
Edit: Yes, it would probably be more balanced by reversing the trigger requirement. Just reverse the wording I did, and bam.