Does it break untraceability or unlinkability (or something else) if everyone can see the sender's address (or one of the senders because of mixins)?

And I mean doing it for example for every 10th address used in Monero network (only use it with primary addresses, not any sub or ghost addresses).

Btw the extra part is public (not encrypted), just for you to know.

EDIT for knacc answer:

Thanks for the great answer, but when I call

curl -X POST http://localhost:19835/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"transfer","params":{"destinations":[{"amount":1,"address":"cczJn1gS7VT37m1t5oDUjTFmPZRDSoNq2Bry2JurELfrDfrmqA6z7AVZ2nsKrDo2jTMCt2ZeUaPXN24oxj1y84F75Z1HAVWBKR"}],"payment_id":"000000000000000000000000000000000000000000000000000000000005a1da","mixin":1,"get_tx_key":false,"unlock_time":0,"priority":3}}' -H 'Content-Type: application/json'

and then

./build/debug/bin/citicashd print_tx bf9e43bfbe73b0f27bdc201748b8f039fec740ea7a82b6e8232ee480313a5281

I get a transaction, where I can clearly see the extra

"extra": [ 2, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 161, 218, 1, 216, 55, 28, 200, 30, 163, 246, 76, 59, 40, 154,148, 229, 12, 181, 10, 210, 145, 179, 0, 168, 137, 145, 88, 85, 71, 5, 235, 101, 133, 255, 225, 4, 0 ]

=> 5, 161, 218 is 5a1da and it's unencrypted

It's sumokoin, not monero, but I think it works the same way, so the payment_id is public in both cryptocurrencies.

So should the payment_id be encrypted or not?

  • Monero has two types of payment id. There is a 256 bit unencrypted payment id that is put directly (unencrypted) in to tx_extra, and then there is a 64 bit newer style payment id that is encrypted with the transaction shared secret before being put into tx_extra.
    – knaccc
    Apr 14, 2018 at 13:08

1 Answer 1


If you include your (the sender's) public wallet address unencrypted in the tx_extra field, then for an outside observer, this will not affect untraceability in the sense that it still cannot be known which outputs are really being spent.

However the person that sent you the outputs in the first place could obviously see that when you spend those outputs, you've included your wallet address, and so could infer that it's you that's spending those outputs. Of course they won't know who the recipient of your transaction is, since you'll be sending funds to a one-time stealth address that cannot be correlated with the recipient's wallet address.

It will not affect unlinkability because stealth addresses mean it cannot be known whether you're sending funds to the same person each time or different people each time.

You could encrypt your sender address using the transaction shared secret prior to putting it in the tx_extra field (the transaction shared secret is what is currently used to encrypt payment IDs that appear in tx_extra).

The problem with this, though, is that it's rare to see people place their own custom content into the tx_extra field. Your transactions would therefore stand out.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.