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

3 Answers 3


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? Commented Jun 29, 2016 at 12:21
  • @GianlucaGhettini addresses are derived from the public key. You can generate as many addresses as you want from it.
    – jgm
    Commented Jun 29, 2016 at 12:22
  • 1
    Actually, every public key has only corresponding address, but you can have any number of keys.
    – Murch
    Commented Jun 29, 2016 at 12:23
  • which in turn means generating many different private keys... (I guess) Commented Jun 29, 2016 at 12:23
  • 1
    you can use the same private key to generate multiple public keys and in turn multiple addresses.
    – jgm
    Commented Jun 29, 2016 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 Commented Jun 29, 2016 at 12:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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