I have been thinking about Diem/Move, and have been reading on how to really track a transaction (not in forensics way, but in e-commerce way). Let me explain a bit here.
Let's say Bob is a guy who sells products, and Alice is a customer of Bob. Bob has built an online platform where he can accept payments in Libra.
In Libra docs here, it says a transaction consists of,
- Alice's account address
- Bob's account address and the amount of payment
- Gas price
- Maximum gas amount
- Expiration time, and
- Sequence number
This is all good, but my question is this:
Bob won't have Alice's address stored when Alice makes a payment (especially if Alice is a new customer). Conversely, a third person (Jenna) could be making a purchase (with the same SKU) at the same time as Alice. If a Libra transaction only consist of sender's account address, How does Bob track that his transaction with Alice, and the subsequent payment he received from Alice, is actually Alice's (and not Jenna's)? Note that he won't have these account addresses on file, especially if both are new customers.
A simple way would be to assign a transaction ID as some sort of metadata when Bob requests that each of them pay him, so Bob can track against that transaction ID. But is this even possible?
I'm sure this exists in some form or another, since we have Bitcoin payment systems.