a public key is what determines the ownership of bitcoins, and is very similar to an id number. if someone wanted to send you bitcoins, all you would need to do is supply them your bitcoin address, which is a version of your public key that is easier to read and type. for example, if bob has 1 bitcoin at the bitcoin address "abc123," and alice has no bitcoins at the bitcoin address "def456," bob can send 0.5 bitcoins to "def456." as soon as the transaction is processed, alice and bob both have 0.5 bitcoins. anyone using the system can see how much money "abc123" has and how much money "def456" has, but they cannot tell anything about who owns the address.