As far as I see there are currently two methods of getting the sender's address in a Bitcoin transaction:
- Look up the input transaction and read the corresponding output address there (like this: How to findout the sender of a transaction)
- Convert the public key in the scriptSig to the address (like this: Why does gettransaction report me only the receiving address?)
Is one of those preferable over the other one?