<blockquote>
  <p>How can I determine (if it is possible) what amount sender A sent to receiver B , instead having the balance for each participant ?</p>
</blockquote>

<p>You pretty much can't. Often times, transactions like these are created for the purpose of making it difficult to determine which inputs are sending money to which outputs. Such transactions are called CoinJoins, so named because multiple people are joining their coins together in one transaction.</p>

<p>There are some techniques for determining which outputs are created by which inputs, but these techniques are not foolproof and often make assumptions that are not guaranteed. In fact, many software that make Coinjoin transactions are designed to make those assumptions non-viable and thus break such analysis so that the participants in the CoinJoin have more financial privacy.</p>

CC BY-SA 4.0
2019-04-24T17:02:55.280Z
2019-04-24T17:02:55.280Z
Ava Chow
<p>It should be viewed as a single transaction and not who sent bitcoins to whom. On the left hand side you have the inputs to the transaction, and on the right hand side you have the outputs. In Bitcoin, you do not have the concept of account balance. Each output of a transaction is locked with a script and anyone who provides solution to that script can spend those bitcoins.</p>

<p>Here is an example. Let us assume you run a business and have few employees. Your business takes only bitcoins as a form of payment and at the end of the day you make provide daily wages to your employees. So you would have your customers sending bitcoins to your company's address when they use your product. You present a different address to your customers every time so as that you know which customer sent how many bitcoins and also to maintain privacy. Now when you are making payments to your employees at the end of the day, you do not have enough bitcoins earned from one customer so you have to aggregate a few transactions from many customers. That is an example of what you are seeing. </p>

<p>In a generic scenario, even if all the customers make payment to a single address, each transaction that your customer will send you will have a different <code>txid</code> and <code>output index</code> which you will have to provide when you are spending those bitcoins. So you will still have to provide multiple inputs to your transaction when making payments where one single customer transactions does not cover it.</p>

<p>EDIT: Also as @AndrewChow mentioned in his answer, even if this was a CoinJoin transaction (multiple people joining inputs so as to mask who sent to whom), it is still very difficult to determine which outputs are created by which inputs and this method is also not fullproof.</p>

CC BY-SA 4.0
2019-04-25T06:30:45.893Z
As you were talking about customers and business, a question came to my mind : in both real and online shops (that accept bitcoin), do sellers generate a new address for each customer or each purchase ?
EinderJam
CC BY-SA 4.0
2019-04-25T06:51:11.390Z
@EinderJam it depends. If it is an online transaction it is much easier to produce a different address everytime. Also, some vendors offer wallet service, and as that is centralized they can track payments. But if you are visiting a brick and mortar store, the address is generally static, however, the store can create different addresses if they install some software.
Ugam Kamat
CC BY-SA 4.0
2019-04-25T15:38:52.260Z
If a store has only one address to receive payments from customers, how can it identify each customer and verify he paid ?
EinderJam
CC BY-SA 4.0
2019-05-02T11:07:20.573Z
@EinderJam There is no way to know it for sure. The best way is to generate a unique address for each transaction. There can be scripts generated to use a P2SH transaction, but that would also mean generating unique scripts for each customer.
Ugam Kamat
CC BY-SA 4.0
2019-04-24T16:59:38.897Z
2019-04-24T17:18:53.547Z
2019-04-24T17:18:53.547Z
Ugam Kamat
<p>the left list are not the senders, these are transactions inputs and not the sender, to the right those are the outputs (receivers addresses).</p>

<p>Please read more about Bitcoin transactions if you're interested <a href="https://en.bitcoin.it/wiki/Transaction" rel="nofollow noreferrer">https://en.bitcoin.it/wiki/Transaction</a> </p>

CC BY-SA 4.0
2019-04-24T16:56:21.093Z
Thank you for your answer. If I understand correctly, the receivers are listed on the right, but senders are not listed on the left. However, the left list (transactions inputs) contains addresses, so what are these addresses if they aren't senders addresses ? So, how can I find the sender(s) on a given transaction ?
EinderJam
CC BY-SA 4.0
2019-04-24T16:58:20.327Z
Multiple "sender addresses" does not mean that multiple people are sending. It could be the same person that has many addresses and inputs.
Ava Chow
CC BY-SA 4.0
2019-04-24T16:29:45.973Z
2019-04-24T16:29:45.973Z
Tailer
<p>Trying to understand how grouped transactions work, I came accross the following transaction on blockchain.com :
<a href="https://i.sstatic.net/iUaEv.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/iUaEv.png" alt="tx"></a></p>

<p>There are many senders, and even more receivers. For instance, the first sender on the picture could have sent 1 BTC to the first receiver, 10 to the fifth, and so on...
How can I determine (if it is possible) what amount sender A sent to receiver B , instead having the balance for each participant ?</p>

<transactions>
In case of a grouped transaction, how to determine who sent what to whom?
EinderJam
# In case of a grouped transaction, how to determine who sent what to whom?

(Asked by: username_0 on 2019-04-24)

Trying to understand how grouped transactions work, I came accross the following transaction on blockchain.com :
[![tx](https://i.sstatic.net/iUaEv.png)](https://i.sstatic.net/iUaEv.png)

There are many senders, and even more receivers. For instance, the first sender on the picture could have sent 1 BTC to the first receiver, 10 to the fifth, and so on...
How can I determine (if it is possible) what amount sender A sent to receiver B , instead having the balance for each participant ?

**Tags:** transactions


---

## 3 answers

### Answer by username_1 on 2019-04-24. Score: 3

> How can I determine (if it is possible) what amount sender A sent to receiver B , instead having the balance for each participant ?

You pretty much can't. Often times, transactions like these are created for the purpose of making it difficult to determine which inputs are sending money to which outputs. Such transactions are called CoinJoins, so named because multiple people are joining their coins together in one transaction.

There are some techniques for determining which outputs are created by which inputs, but these techniques are not foolproof and often make assumptions that are not guaranteed. In fact, many software that make Coinjoin transactions are designed to make those assumptions non-viable and thus break such analysis so that the participants in the CoinJoin have more financial privacy.


---

### Answer by username_2 on 2019-04-24. Score: 1

It should be viewed as a single transaction and not who sent bitcoins to whom. On the left hand side you have the inputs to the transaction, and on the right hand side you have the outputs. In Bitcoin, you do not have the concept of account balance. Each output of a transaction is locked with a script and anyone who provides solution to that script can spend those bitcoins.

Here is an example. Let us assume you run a business and have few employees. Your business takes only bitcoins as a form of payment and at the end of the day you make provide daily wages to your employees. So you would have your customers sending bitcoins to your company's address when they use your product. You present a different address to your customers every time so as that you know which customer sent how many bitcoins and also to maintain privacy. Now when you are making payments to your employees at the end of the day, you do not have enough bitcoins earned from one customer so you have to aggregate a few transactions from many customers. That is an example of what you are seeing.

In a generic scenario, even if all the customers make payment to a single address, each transaction that your customer will send you will have a different `txid` and `output index` which you will have to provide when you are spending those bitcoins. So you will still have to provide multiple inputs to your transaction when making payments where one single customer transactions does not cover it.

EDIT: Also as @AndrewChow mentioned in his answer, even if this was a CoinJoin transaction (multiple people joining inputs so as to mask who sent to whom), it is still very difficult to determine which outputs are created by which inputs and this method is also not fullproof.

> **Comments:**
> **username_0**: As you were talking about customers and business, a question came to my mind : in both real and online shops (that accept bitcoin), do sellers generate a new address for each customer or each purchase ?  
> **username_2**: @username_0 it depends. If it is an online transaction it is much easier to produce a different address everytime. Also, some vendors offer wallet service, and as that is centralized they can track payments. But if you are visiting a brick and mortar store, the address is generally static, however, the store can create different addresses if they install some software.  
> **username_0**: If a store has only one address to receive payments from customers, how can it identify each customer and verify he paid ?  
> **username_2**: @username_0 There is no way to know it for sure. The best way is to generate a unique address for each transaction. There can be scripts generated to use a P2SH transaction, but that would also mean generating unique scripts for each customer.  

---

### Answer by username_3 on 2019-04-24. Score: 0

the left list are not the senders, these are transactions inputs and not the sender, to the right those are the outputs (receivers addresses).

Please read more about Bitcoin transactions if you're interested <https://en.bitcoin.it/wiki/Transaction>

> **Comments:**
> **username_0**: Thank you for your answer. If I understand correctly, the receivers are listed on the right, but senders are not listed on the left. However, the left list (transactions inputs) contains addresses, so what are these addresses if they aren't senders addresses ? So, how can I find the sender(s) on a given transaction ?  
> **username_1**: Multiple "sender addresses" does not mean that multiple people are sending. It could be the same person that has many addresses and inputs.  

---

