|
October 05, 2012, 09:34:57 PM |
|
Wallet vs Address. One thing in your post which may be part of the problem is the use of terms like "wallet #". The network has no concepts of wallets. There are simply addresses. A transaction moves funds from one address to another. In the case of paying for goods and services a user moves funds from an address he/she controls to an address the merchant controls. A wallets may have more than one address (likely has hundreds) but the network has no knowledge or concept of wallets. It just verifies that a tx is valid (sends funds from an valid address, to a valid address, the inputs have proper qty of coins, and the tx is properly signed by the owner).
So you as a merchant you should probably just assign a unique address to each order/user. You can pretty trivially generate thousands or even hundreds of thousands. Then when the address is paid the order is paid. It is the simplest method, essentially foolproof, provides universal support, and trying to do anything else is just trying to force a round peg into a square hole.
Still as an alternative you could have users sign a message using the private key of the address they sent funds FROM. So if a user sent coins from address 1123456 you could ask them to sign a message with the private key for address 1123456. Only the user with access to that private key could accomplish that. Still that isn't a very good solution as not all wallets support that. Even among wallets which do support it, users may not understand how to do it properly, and you add the extra steps of needing to request a signed message, the user sign a message, the user sends you the signed message, and you confirm the signed message. A lot of extra work that when combined with the fact that not all wallets support it will lead to lots of confusion and problems.
|