1

Trying to understand how grouped transactions work, I came accross the following transaction on blockchain.com : tx

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 ?

3 Answers 3

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.

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.

4
  • 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
    Apr 25, 2019 at 6:30
  • @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
    Apr 25, 2019 at 6:51
  • If a store has only one address to receive payments from customers, how can it identify each customer and verify he paid ?
    – EinderJam
    Apr 25, 2019 at 15:38
  • @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
    May 2, 2019 at 11:07
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

2
  • 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
    Apr 24, 2019 at 16:56
  • Multiple "sender addresses" does not mean that multiple people are sending. It could be the same person that has many addresses and inputs.
    – Andrew Chow
    Apr 24, 2019 at 16:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.