Bitcoin Forum

Bitcoin => Bitcoin Technical Support => Topic started by: Sasfsafd on April 04, 2018, 02:15:49 PM



Title: Can a transaction be traced like this?
Post by: Sasfsafd on April 04, 2018, 02:15:49 PM
Hi I have a basic question about bitcoin. I am wondering if a bitcoin transaction can be traced like this.

For example I have some bitcoins in my online wallet, I will use localbitcoins.com as an example.  I then send these bitcoins to a desktop wallet such as Electrum. I know that this transaction is recorded and its easy to trace this transaction. But what would happen then if I was to send these bitcoins from the Electrum wallet, to another completely separate online wallet? Would somebody be able to know the funds have come from the original localbitcoins wallet, to the third completely separate wallet?   I know a mixer can be used, but my question is without using a mixer.


Title: Re: Can a transaction be traced like this?
Post by: bob123 on April 04, 2018, 02:35:27 PM
Hi I have a basic question about bitcoin. I am wondering if a bitcoin transaction can be traced like this.

For example I have some bitcoins in my online wallet, I will use localbitcoins.com as an example.  I then send these bitcoins to a desktop wallet such as Electrum. I know that this transaction is recorded and its easy to trace this transaction. But what would happen then if I was to send these bitcoins from the Electrum wallet, to another completely separate online wallet? Would somebody be able to know the funds have come from the original localbitcoins wallet, to the third completely separate wallet?   I know a mixer can be used, but my question is without using a mixer.


Let me illustrate that:
A = localbitcoins wallet
B = electrum wallet
C = 'another seperate online wallet'

A -> B can be looked up, as you have already mentioned. This transaction is being stored on the blockchain.
B -> C is just another transaction on the blockchain. So the same applies.

Now, if i look at your first transaction (A->B) i might see X btc's being transferred from A to B.
Afterwards im looking at your address B in a blockexplorer, and see that those outputs (X) already have been send in a nother transaction (with receipent C).

In short words:
Yes, it is possible.
If you can trace A -> B and can trace B -> C (both are 'normal' transaction), you can also trace the whole path A-> C.
Tracing, in terms of tracing UTXO's, is transitive (https://en.wikipedia.org/wiki/Transitive_relation).


Title: Re: Can a transaction be traced like this?
Post by: DannyHamilton on April 04, 2018, 04:09:40 PM
It depends on how the transactions are structured and what EXACTLY you are trying to determine about the transactions.

For example, lets imagine the following.

You receive a payment of 1 BTC from localbitcoins to address A
You receive a payment of 1 BTC from Bob to address B
You receive a payment of 1 BTC from Danny to address C

Now you want to send a payment of 1.5 Bitcoins to Alice at her address D

Your transaction spends the 1 BTC output from localbitcoins and the 1 BTC output from Bob providing a total of 2 BTC of value.
Your transaction creates a 1.5 BTC output to Alice at address D
Your transaction creates a 0.5 BTC "change" output to yourself at address E.

In that case:
It IS possible to see that SOME of the 1.5 BTC that went to Alice was from bitcoins you received from localbitcoins.
It IS possible to see that SOME of the 1.5 BTC that went to Alice was from bitcoins you received from Bob.
It is NOT possible to determine what amount was from each (1 BTC from localbitcoins and 0.5 BTC from Bob? 1 BTC from Bob and 0.5 BTC from localbitcoins? 0.75 BTC from Bob, and 0.75 BTC from localbitcoins? Some other percentage of each?).  You only know that the SUM of the two portions is 1.5 BTC, and that there isn't MORE THAN 1 BTC from either Bob or localbitcoins.
It is possible to know that NONE of the bitcoins sent to Alice came from Danny.

Now you want to send 1.2 BTC to Charlie.

Your transaction spends the 1 BTC output from Danny and the 0.5 BTC change output from your Alice transaction providing a total of 1.5 BTC of value.
Your transaction creates a 1.2 BTC output to Charlie at address F
Your transaction creates a 0.3 BTC "change" output to yourself at address G.

In that case
It IS possible to see that SOME of the 1.2 BTC that went to Charlie was from bitcoins you received from Danny.
It IS possible to see that SOME of the 1.2 BTC that went to Charlie was from the change that you received when you sent a transaction to Alice.
It is NOT possible to determine what amount was from each. You only know that the SUM of the portions is 1.2 BTC, and that there isn't MORE THAN 1 BTC from Danny or MORE THAN 0.5 BTC from the change of the Alice transaction.

A good analogy is to think of transaction outputs as lumps of gold, and of transactions as crucibles that you can use to melt lumps together and pour out new lumps.

So...

You started with 3 lumps of gold all worth 1 BTC (one each from localbitcoins, Bob, and Danny).

Then you dropped two of those lumps into a crucible (transaction) and melted them together.  You poured out a lump worth 1.5 BTC and gave it to Alice, and you poured out the remaining 0.5 BTC worth and kept is as "change".  You KNOW that SOME of the lump that you gave to Alice is from the localbitcoins lump (obviously since you put that lump into the crucible), and you KNOW that SOME of the lump that you gave to Alice is from the Bob lump (obviously since you put that lump into the crucible), and you KNOW that NONE of the lump that you gave to Alice is from the Danny lump (obviously since you did NOT put that lump into the crucible), but you have no way of knowing exactly how the atoms in the liquid gold blended.  No way of knowing what percentage of the poured out lump was from the Bob lump and what percentage was from the localbitcoins lump.

Then you dropped the two remaining lumps (the 1 BTC lump from Danny, and the 0.5 BTC lump that was left over from the previous crucible) into another crucible (transaction) and melted them together. You poured out a lump worth 1.2 BTC and gave it to Charlie, and you poured out the remaining 0.3 BTC worth and kept is as "change".  You KNOW that SOME of the lump that you gave to Charlie is from the previous crucible lump (obviously since you put that 0.5 BTC lump into the crucible), and you KNOW that SOME of the lump that you gave to Charlie is from the Danny lump (obviously since you put that lump into the crucible), but you have no way of knowing exactly how the atoms in the liquid gold blended.  No way of knowing what percentage of the poured out lump was from the previous crucible lump and what percentage was from the Danny lump.

It is possible that Charlie ONLY got gold that was given to you by Danny and by localbitcoins, or that CHARLIE ONLY got gold that was given to you by Danny and by Bob, or that CHARLIE got gold that was given to you by ALL THREE (localbitcoins, Bob, and Danny).  It is impossible to know for certain which of those three statements are true since it is impossible to know how much of the 0.5 BTC change came from localbitcoins and how much came from Bob.