The user can recover the dates and amounts of the transactions they have made, but not the destination wallet addresses of any of those transactions or any encrypted payment id. They would be able to see any old style 256-bit payment id, because those old style transaction ids are not encrypted on the blockchain. The new style 64 bit payment ids (as used in integrated addresses) would be encrypted.
The spent outputs can be discovered because the user can use their private spend key to determine the 'key images' of all of their received outputs. Key images are published with every transaction, so they can scan the blockchain to determine which of their outputs have been spent. Therefore they can subtract the amount of that spent output from their wallet balance. They know the amount of that output for the same reason they knew it when they first received it. That reason is that it's communicated to them in the ecdhInfo part of the transaction, and encrypted using the transaction shared secret so that only they can decrypt it using their private view key.
The outgoing transaction payment ids cannot be recovered because they would have been encrypted with the transaction shared secret. As the sender, they would have needed to retain the transaction private key to know the transaction shared secret.
In algebra, the sender knows the shared secret as Hs(rA)
, and the recipient knows the same shared secret as Hs(aR)
. This is why the sender cannot recover the shared secret later. The sender would have needed to know both the transaction private key r
and the recipient's public view key A
in order to recover the transaction shared secret.