Background Introduction
“The Payment ID is usually used to identify transactions to merchants and exchanges: Given the intrinsic privacy features built into Monero, where a single public address is usually used for incoming transactions, the Payment ID is especially useful to tie incoming payments with user accounts.”
“Payment IDs are needed when sending to an exchange. It allows exchanges to confirm the transaction is yours, because exchange probably gets a lot of incoming transactions on the same address they won’t be able to differentiate otherwise without a payment ID.”
“Integrated address is just your normal address with some extra data bundled with it (the 64-bit payment ID). While the resulting address looks different, the purpose is not to hide your actual address , but to pack it and the payment ID together to avoid errors and to communicate it easily. Anyone can open it and see the 2 pieces of information (that’s exactly what your sender’s wallet does when sending to it).”
References:
- https://www.getmonero.org/resources/moneropedia/paymentid.html
- https://monero.stackexchange.com/questions/4338/what-is-a-payment-id-and-why-is-it-used
- https://monero.stackexchange.com/questions/3179/what-is-an-integrated-address
- https://monero.stackexchange.com/questions/1910/how-do-payment-ids-work
MWC Payment ID Design
We can use the so-called “Integrated Address”, which adds extra 8 bytes data to a normal mwc address. This will affect the MWC Address design.
Where and How to Store the Payment ID in a MWC Coin
We can use the BulletProof message, which as 20-bytes capacity, to store this payment ID info. Originally, this “message” was used in the Interactive Transaction as the blinding secret key ID (and plus a few other info), but not used in NIT scheme.