<p>The payer's identity is often irrelevant in Bitcoin payments. The important check is that the payment was authorized by the owner. In Bitcoin, whoever controls the private key owns the funds, and therefore it is sufficient that the transaction was signed with the correct private key (which is a given for a valid transaction).</p>
<p>What's important to the shop owner is to know that they got paid. As Bitcoin payments are irreversible, it's not important whether Bob gives his name, just like the barista wouldn't care to get Bob's name when Bob walks into the café and pays for a Macchiato with cash.</p>
<p>To distinguish payments, you <strong>give out a new receiving address for each invoice</strong>. That way, when an address receives money, you know which invoice was settled. Luckily, the Bitcoin address space is sufficiently huge that <a href="https://bitcoin.stackexchange.com/q/8804/5406">everyone can make as many addresses as they need</a>.</p>

CC BY-SA 4.0
2016-02-05T14:40:45.043Z
2021-01-25T15:00:38.133Z
2021-01-25T15:00:38.133Z
Murch
<p>Different orders have different Bitcoin payment addresses.</p>

<p>The order is paid when the address in question receives the requested amount of Bitcoins.</p>

CC BY-SA 3.0
2016-02-05T15:34:43.070Z
2016-02-05T15:34:43.070Z
Mikko Ohtamaa
<p>The only practical way to verify the identity of a user is to make the user sign something with their private key. The only identity information that you get at that point is that the user has access to the private key. On the bitcoin blockchain, the owner of the private key is the only one that can move the bitcoins locked to that key because a signature is needed to do so. Essentially, if you try to pretend to be someone else, you won't succeed since you won't be able to produce a signature.</p>

CC BY-SA 3.0
2016-02-05T14:41:16.973Z
2016-02-05T14:41:16.973Z
Jimmy Song
<p>simple answer: give each customer your different address</p>

<p>never reuse addresses</p>

CC BY-SA 3.0
2016-02-06T19:57:46.197Z
2016-02-06T19:57:46.197Z
Anlhord Smithson
<p>Do you really care which customer paid, or do you care which bill was paid?</p>

<p>Say you have customers Anna and Bob, who both order something. Bob notices he's out of money, so Anna says she'll pay for both. If you really want the sender to reveal their identity, your system would already fail, as Bob never pays anything.</p>

<p>In almost all cases, all you care about is which bill is paid, and you have no need for the payer's identities (which could be a privacy violation in some cases).</p>

<p>The normal way to do this in practice is by creating a new payment address for each payment you want to receive. You track which bill was paid by tracking at which addresses you received money. Creating new addresses is very cheap, and they are sufficiently long that it is exceedingly unlikely that the same one will ever be produced twice.</p>

CC BY-SA 3.0
2016-02-05T16:26:29.357Z
It would be good to also make clear how vast the bitcoin address space is: there are so many possible addresses available that you can easily create a new address for each new bill without worry that you will run out of new addresses.
William Breathitt Gray
CC BY-SA 3.0
2016-02-05T17:38:13.907Z
This could for example be done with a reference to [Is each Bitcoin address unique?](http://bitcoin.stackexchange.com/q/8804/5406)
Murch
CC BY-SA 3.0
2016-02-05T18:45:04.530Z
You should care who paid for it. As a former e-commerce site owner, we were always concerned that someone would fraudulently pay for goods with someone else's money, as that resulted in lost money for us (restocking, shipping fees, labor time spent dealing with banks, etc).
corsiKa
CC BY-SA 3.0
2016-02-05T20:32:40.813Z
@corsiKa Sure, for something like that. In a retail setting like the coffee house mentioned here, it really doesn't matter very much, unless you want to be able to call out the customer's name when their order is ready.
Michael Hampton
CC BY-SA 3.0
2016-02-06T03:18:20.720Z
@corsiKa: A good (or bad) feature of Bitcoin is that if someone fraudulently pays you for goods using someone else's money, you still get to keep the money: there is no technical way for the rightful owner to claw back the funds from you.  Just like cash, there are no chargebacks.  So in that sense, you actually don't have to care who paid.
Nate Eldredge
CC BY-SA 3.0
2016-02-06T10:57:56.153Z
@corsiKa: in the case of Bitcoin, if someone can spend your money, then that means you have been careless with your private key. With no government to enforce law, and the mathematics making law enforcement pointless, it's your own fault for not taking better care of your private key.
Lie Ryan
CC BY-SA 3.0
2016-02-05T15:40:51.623Z
2016-02-06T17:58:00.057Z
2016-02-06T17:58:00.057Z
Pieter Wuille
<p>One question I'm not able to properly answer when asked is</p>
<blockquote>
<p>How exactly can  the blockchain verify the identity of the user without a centralized trusted party such as VeriSign?</p>
</blockquote>
<p>I know this is done in a decentralized way and the ECDSA algorithm should do the trick, but other applications still need a centralized trusted party in order to verify if the user is really who he says he is even when they're using ECDSA as well.</p>
<p>But how exactly can I guarantee that nobody can pretend to be someone else and spend their bitcoin instead?</p>
<p>Yes, I know the basic of how public-key cryptography works, but Information Security is not strong with me.</p>
<hr />
<h2>Edit: let me explore the question further.</h2>
<p>Suppose I own a coffee house with intense flow of customers. How can I be sure about costumers that had already paid and others how didn't pay?</p>
<p>Let's say that Bob and Anna are my customers. Bob orders a Macchiato, Anna orders a Capuccino. Both coffees have the same price. How can I know which payment came from each one of them?</p>

<address><security><payment><receiving><identity>
How does one checks which customer made a payment?
Henrique Barcelos
# How does one checks which customer made a payment?

(Asked by: username_0 on 2016-02-05)

One question I'm not able to properly answer when asked is

> How exactly can the blockchain verify the identity of the user without a centralized trusted party such as VeriSign?

I know this is done in a decentralized way and the ECDSA algorithm should do the trick, but other applications still need a centralized trusted party in order to verify if the user is really who he says he is even when they're using ECDSA as well.

But how exactly can I guarantee that nobody can pretend to be someone else and spend their bitcoin instead?

Yes, I know the basic of how public-key cryptography works, but Information Security is not strong with me.

---

## Edit: let me explore the question further.

Suppose I own a coffee house with intense flow of customers. How can I be sure about costumers that had already paid and others how didn't pay?

Let's say that Bob and Anna are my customers. Bob orders a Macchiato, Anna orders a Capuccino. Both coffees have the same price. How can I know which payment came from each one of them?

**Tags:** address, security, payment, receiving, identity


---

## 5 answers

### Answer by username_5 on 2016-02-05. Score: 8 | Accepted answer

Do you really care which customer paid, or do you care which bill was paid?

Say you have customers Anna and Bob, who both order something. Bob notices he's out of money, so Anna says she'll pay for both. If you really want the sender to reveal their identity, your system would already fail, as Bob never pays anything.

In almost all cases, all you care about is which bill is paid, and you have no need for the payer's identities (which could be a privacy violation in some cases).

The normal way to do this in practice is by creating a new payment address for each payment you want to receive. You track which bill was paid by tracking at which addresses you received money. Creating new addresses is very cheap, and they are sufficiently long that it is exceedingly unlikely that the same one will ever be produced twice.

> **Comments:**
> **username_6**: It would be good to also make clear how vast the bitcoin address space is: there are so many possible addresses available that you can easily create a new address for each new bill without worry that you will run out of new addresses.  
> **username_1**: This could for example be done with a reference to [Is each Bitcoin address unique?](http://bitcoin.stackexchange.com/q/8804/5406)  
> **username_7**: You should care who paid for it. As a former e-commerce site owner, we were always concerned that someone would fraudulently pay for goods with someone else's money, as that resulted in lost money for us (restocking, shipping fees, labor time spent dealing with banks, etc).  
> **username_8**: @username_7 Sure, for something like that. In a retail setting like the coffee house mentioned here, it really doesn't matter very much, unless you want to be able to call out the customer's name when their order is ready.  
> **username_9**: @username_7: A good (or bad) feature of Bitcoin is that if someone fraudulently pays you for goods using someone else's money, you still get to keep the money: there is no technical way for the rightful owner to claw back the funds from you.  Just like cash, there are no chargebacks.  So in that sense, you actually don't have to care who paid.  
> **username_10**: @username_7: in the case of Bitcoin, if someone can spend your money, then that means you have been careless with your private key. With no government to enforce law, and the mathematics making law enforcement pointless, it's your own fault for not taking better care of your private key.  

---

### Answer by username_1 on 2016-02-05. Score: 5

The payer's identity is often irrelevant in Bitcoin payments. The important check is that the payment was authorized by the owner. In Bitcoin, whoever controls the private key owns the funds, and therefore it is sufficient that the transaction was signed with the correct private key (which is a given for a valid transaction).

What's important to the shop owner is to know that they got paid. As Bitcoin payments are irreversible, it's not important whether Bob gives his name, just like the barista wouldn't care to get Bob's name when Bob walks into the café and pays for a Macchiato with cash.

To distinguish payments, you **give out a new receiving address for each invoice**. That way, when an address receives money, you know which invoice was settled. Luckily, the Bitcoin address space is sufficiently huge that [everyone can make as many addresses as they need](https://bitcoin.stackexchange.com/q/8804/5406).


---

### Answer by username_2 on 2016-02-05. Score: 3

Different orders have different Bitcoin payment addresses.

The order is paid when the address in question receives the requested amount of Bitcoins.


---

### Answer by username_3 on 2016-02-05. Score: 2

The only practical way to verify the identity of a user is to make the user sign something with their private key. The only identity information that you get at that point is that the user has access to the private key. On the bitcoin blockchain, the owner of the private key is the only one that can move the bitcoins locked to that key because a signature is needed to do so. Essentially, if you try to pretend to be someone else, you won't succeed since you won't be able to produce a signature.


---

### Answer by username_4 on 2016-02-06. Score: 1

simple answer: give each customer your different address

never reuse addresses


---

