If I ask two different people to pay me a given amount of bitcoin, how can I tell which one has paid and which one has not?

If the amount is different then it's easy. For the same amount? Public key of the sender? If so, shall I trust my local copy of the blockchain? (I know the "balance" can be faked albeit nobody can steal or send bitcoins in your behalf)

What about big merchants which process large amount of transactions?

Of course I'm not asking how to find out the identity of the senders


It would be possible if you can generate multiple receiving address for each transaction. That can be done using your public and private keys.

Give each user a separate address of yours. Then you should be able to track.

  • oh I see... didn't think about it. I thought a "receiving address" was the public key but from what you say looks like it's not, isn't it? Jun 29 '16 at 12:21
  • @GianlucaGhettini addresses are derived from the public key. You can generate as many addresses as you want from it.
    – jgm
    Jun 29 '16 at 12:22
  • 1
    Actually, every public key has only corresponding address, but you can have any number of keys.
    – Murch
    Jun 29 '16 at 12:23
  • which in turn means generating many different private keys... (I guess) Jun 29 '16 at 12:23
  • 1
    you can use the same private key to generate multiple public keys and in turn multiple addresses.
    – jgm
    Jun 29 '16 at 12:26

Just use a new address for every payment request. You can have as many addresses as you want.


If you are implementing a web service/site you can have your backend create a new address for each session token/cookie. These addresses can be associated with users. One way to implement this would be to associate addresses or sessions with an unused address. Then transactions could be easily linked to sessions and accounts.

  • Ok thanks.. I thought bitcoin public/private key pairs were way less expendable. Instead it looks like a new pair has to be used for each transaction Jun 29 '16 at 12:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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