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)


The public key is derived from the private key. Generating a private key is pretty collision resistant as the space is huge. The fact that an address is in turn a hash of the public key doesn't change that.

So how do you prove, that you are the owner of a bitcoin adress?

By having the private key: only then can you sign transactions.

Consent of the receiver is not required to send a transaction. If the receiver really doesn't want free money, he can chose to not spend it.

Not the answer you're looking for? Browse other questions tagged or ask your own question.