This probably sounds like a stupid question, but I can't find an answer I understand yet.
How does a mining pool know you've done work and contributed to the pool for shares? If I mine 2000 Satoshi per day, in a pool, as I understand it, I've done some work and I'm rewarded with Satoshis which are paid out when I hit 5000 Satoshi. But, what prevents me from saying I've done more work than I really have? I take it that it's not possible to craft some network traffic to send to the pool which says I've crunched X hashes when I've really done nothing; I suppose you have to send some proof. Does the pool check in a specific way to make sure you really have done the work given to you for mining? (I'm not even sure if a pool gives you work to do; is it up to you to calculate as much as possible then call getwork() or something like that to keep going?)
Thanks for any clarification.