Every bitcoin transaction has both “from” and “to” addresses in the transaction.
Using an example form BTG, here’s a recent transaction I’m pulling from from a recent block:
This picture is a Transaction page from the official explorer, explorer.bitcoingold.org. You can click on the picture to go to in and explore, yourself.
You can see it has a link to the block it was in. That long blue number is the hash of the block it was confirmed in (524827), but this view shows you the unique hash of that block.
Below, you see the From and a To BTG addresses. You can click into the From address to see the .07672495 BTG being sent, or you can click into the To address to see the .07656815 BTG being received. (The difference between the two is what was left as Fee for the miner, which you can also see on the Transaction page.)
(If your view is different from what I posted above, play with the width of your window; the formatting changes based on the window size.)
So, let’s answer your question using the picture above. If I click into the recipient of the transaction above, the “GSGWuZ4…” address, I get:
Here you can see the balance in the recipient address, and that it had 9 transactions. Scroll down to the transaction you’re interested in (here, it’s the most recent.) You can see that .07655815 BTG was received, and you can see which address it came from.
For you example, if parties A and C say what their addresses are, then the recipient B can easily see who sent the funds.
Now, let’s say that A and C both claim that the address GNPEVjm4Dz… is theirs. Say, you are party A, but party C claims the address is theirs - how can we resolve this?
Well, if you really are party A, and you’re using a full-featured wallet, you can sign a message from that wallet.
Pick the address in question, type a message, and sign:
Your private key is used to create the signature. Now, take the address, message, and signature and send it to party B…
This is really my wallet, Bob!
They can then open up the wallet software to Verify the message:
They enter the address, message, and signature:
And when they hit Verify, they’ll get this:
Note: this does not disclose your private key, so it’s safe to share all of this with party B. Nobody else can provide a message and a valid signature for your wallet address, because generating the signature requires your private key. A message like this is proof positive that you have the private key.
(Note: party B must copy-paste the message text EXACTLY. Even a trailing space will cause the Verification to fail.)
Hope this helps!