Identifying sender

2

Is the sender's address the only way to identify the seller?

I don't see how this would work for a large websites that accept bitcoins. Since all of the transactions are visible, anyone can claim address x is theirs and that they sent the payment.

I guess the only way would be to generate a new address for each transaction? Seems messy and hard to keep track of things.

Also, I though I'd add another question since I mentioned large websites. Would it be possible to automatically notify the server when a payment arrives? I'm talking about something like paypal's IPN system. So that everything would be automated. If the person buys a subscription for example, then upon payment confirmation it gets activated automatically.

domino

Posted 2012-03-18T22:20:38.717

Reputation: 237

possible duplicate of How to findout the sender of a transaction

Stephen Gornick 2012-10-17T22:15:26.793

Answers

3

There is nothing messy or difficult to keep track of about generating a new address for each transaction. Generating an address is a very cheap operation and you can generate thousands of them in advance if you want. The way Bitcoin is designed, there is no different between using the same address for multiple transactions or using a new address for each transaction. It makes no difference to the system at all.

That said, I think the Bitcoin system should have permitted you to put an identifier in the transaction. 16-bits would have been sufficient.

David Schwartz

Posted 2012-03-18T22:20:38.717

Reputation: 46 931

Cannot you put some custom identifier data (that makes sense only to sender and recipient) into the script part of the transaction (if you really feel you need that)?Thilo 2012-03-19T10:44:35.817

There is no need to do that: the only data that belongs in a transaction is what is necessary for the world to verify its integrity. In most cases, you are already communicating with the sender by other means (website, e-mail, IM, ...), so why not send the identification there? Sure we need infrastructure to make this user-friendly, but one can send a signed message "please accept bitcoin tx 012d34sf56a as payment for order 12345".Pieter Wuille 2012-03-19T11:53:37.843

1@PieterWuille: The problem with "please accept bitcoin tx X as payment for order Y" is that the transaction information is public. What happens if you receive one of those, ship the order, and then receive another one? The merchant pretty much has to give the buyer some information that the buyer incorporates in the transaction. Right now, that can only be the receiving account. But if you could put the order number in the transaction, you could re-use accounts more easily.David Schwartz 2012-03-19T15:18:44.603

What do you mean by "then receive another", and why would it be a problem?Pieter Wuille 2012-03-19T19:01:23.433

@PieterWuille: You receive a message saying that transaction X was payment for order Y. You ship the order. Then you receive another such message saying that transaction X was payment for order Z. What do you do? The transaction information is public, how do you securely map it to an order?David Schwartz 2012-03-19T19:09:42.787

There's two options really: a) sign it using a private key the transaction was sent with (which was what i intended above, but that requires control of the private key, and is not necessarily possible in case of an e-wallet), b) my favorite: send the transaction to the merchant directly (no one else in the world cares about getting it accepted anyway).Pieter Wuille 2012-03-19T21:24:34.023

@PieterWuille: I don't see how either way works. Either of those ways still has the problem that two people (or one person, sending twice) might send you the same transaction claiming it pays different orders. How does either method ensure a transaction maps to one and only one order? Putting the order ID in the transaction clearly does this. And using an account for only one order clearly does this. I don't see how your two methods do this.David Schwartz 2012-03-19T21:27:13.473

Not sure why that is a problem; just only accept the first one. Either way it requires consent from the one actually creating the transaction; it's not something that can happen by accident.Pieter Wuille 2012-03-20T00:26:10.203

let us continue this discussion in chat

David Schwartz 2012-03-20T00:29:46.057