Bitcoin adress security questions 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.)
Transactions use at least one input and one output. The exception being the Coinbase transaction which creates new money and doesn't have an input.

While multiple public keys hash to the same address, there are still 2^160 distinct addresses possible. Therefore the chance that two people generate a private key that resolves to the same address is negligible.

You cannot stop anyone from sending you bitcoins. Receiving bitcoins is entirely passive. The only way to refuse a transaction is by returning it to the sender.