I keep reading about Casper doling out rewards and punishments for voters based on how they're voting. If I am understanding this correctly, it seems that Casper punishes nodes that submit votes to forks of the same height (How does Casper solve the "Nothing at Stake" issue?).
Regardless of the punishment measure, I'm interested in how the punishment is validated, as in how does Casper intend to store and communicate votes efficiently.
The simplest way is to just store all votes, which is what a lot of articles imply. This seems very inefficient both in terms of storage and network traffic and if it involves smart contracts, network processing power as well.
My question is: how does Casper store and communicate votes to enable punishment? Is it much more clever & efficient than just "recording all votes"? Thanks!