Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: Egii Nna on October 11, 2023, 06:26:19 AM



Title: Does a bitcoin transaction have a source address?
Post by: Egii Nna on October 11, 2023, 06:26:19 AM
Good day, my fellow members in this forum. I need some clarification about bitcoin transactions.

I am aware that UTXO, which includes an input script and an output script, is the foundation of a bitcoin transaction. However, I recently discovered that Bitcoin Explorer lists source addresses for transactions. I wonder if the source address indicated there is the same as the one in the output script from the previous transaction, which also serves as the input script for this transaction.
 


Title: Re: Does a bitcoin transaction have a source address?
Post by: bitmover on October 11, 2023, 06:31:59 AM
Good day, my fellow members in this forum. I need some clarification about bitcoin transactions.

I am aware that UTXO, which includes an input script and an output script, is the foundation of a bitcoin transaction. However, I recently discovered that Bitcoin Explorer lists source addresses for transactions. I wonder if the source address indicated there is the same as the one in the output script from the previous transaction, which also serves as the input script for this transaction.
 

Yes it is.

In good block explorers such as mempool.space you can see individual utxo in every transaction,  and the address associated with it.

For example, you can see here that this transaction spend 2 inputs from the same address

https://mempool.space/pt/tx/2e899ccdbc99c57c0c3b2266f057da5c68f0ab5e34689d27893786771a0e424d

https://bitcoindata.science/api/transaction.php?id=2e899ccdbc99c57c0c3b2266f057da5c68f0ab5e34689d27893786771a0e424d (https://bitcoindata.science/bitcointalk-api.html#transaction)


Title: Re: Does a bitcoin transaction have a source address?
Post by: nc50lc on October 11, 2023, 07:52:37 AM
However, I recently discovered that Bitcoin Explorer lists source addresses for transactions. I wonder if the source address indicated there is the same as the one in the output script from the previous transaction, which also serves as the input script for this transaction.
The input doesn't contain the parent transaction's scriptPubKey which is where the address is encoded from.
In the actual raw transaction, the input contains either the 'scriptSig' and/or 'Witness' which could contain the 'pubKey' or 'redeemScript' depending on the script type. (aside from the signature)
Basically, a script that solves the scriptPubKey, but not the scriptPubKey itself.

For reference check the structure of a raw transaction here: https://learnmeabitcoin.com/technical/transaction-data (https://learnmeabitcoin.com/technical/transaction-data)
In the "Input(s)", there's no "scriptPubKey".

But how can they derive the address from those info?
Since it contains the pubKey or RedeemScript, they can easily derive the appropriate address type from it.
The script type is based from the scriptSig or Witness which is different per script type.
Or just base it from the parent transaction's output script. (methods to get the input's address mostly depends on their parser)