View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0006652||Taler||other||public||2020-11-26 17:07||2021-01-17 21:17|
|Reporter||Florian Dold||Assigned To|
|Priority||low||Severity||feature||Reproducibility||have not tried|
|Summary||0006652: support peer-to-peer payments|
|Description||Right now we have a strict separation between merchants and customers. Eventually we might also want to support direct payments between customers via their Taler wallet.|
The main challenge for this is KYC. We could implement special KYCed reserves for this that are then used as the wire info for a payment (payto://taler-kyc-reserve/) from customer to customer. The KYC would allow transaction limits to be placed on receiving money as a customer. A prerequisite for these P2P payments would be that the receiving party has a KYC registered reserve/account with an exchange.
|Tags||No tags attached.|
It's still totally unclear is how the signaling between the sender and receiver of the P2P payment will work. Unlike when a merchant is involved, the two parties can't directly communicate with each other. Of course the exchange might be able to help here, at least as long as it's not expensive for the exchange.
So what's the desired user experience here?
Does the receiver of the money initiate? If so, does the receiver simply give some generic address, or do they create some kind of "P2P contract terms"? How does the receiver learn whether/when they received a payment?
Does the sender of the money initiate? If so, how does the sender know when/how to sign deposit permissions? Or do we have some special "wildcard deposit permission" where the P2P receiver can substitute their own wire transfer information?
Pro/con of sender-initiated payments:
* can be used to simply attach money to some message
* doesn't give the sender any guarantees what will happen with their money
* requires additional "wildcard deposit permission" support from the exchange
(the receiver of the message does a /deposit, but can give arbitrary wire data)
* the contract terms will be chosen by the receiver, and will be completely under their control
* the size of the payment message is proportional to the number of coins involved
Pro/con of receiver-initiated payments:
* lots of overlap with payments based on a merchant backend
* unclear how the communication will happen between the two parties
I think the sender-initiated payments are simpler and cover more use cases that are not already covered by payments where a merchant backend is involved.