I am trying to understand Bitcoin addresses, but it does not seem to be easy at all.
As far as I know, a transaction uses one or more addresses as input and one or more addresses as output. Is this correct?
As I understand it a Bitcoin address is a hash of your public key. So it is not completely collision resistant. So how do you prove, that you are the owner of a Bitcoin address?
Also, since everybody can make an address from your public key and the recipient of a transaction does not have to sign the transaction, how do you make sure no one can send you bitcoins without your consent? (I don't really know if this is a problem to be honest.)