Suppose a transaction t has 5 input UTXOs each worth 1 BTC, each unlocked by a different sending address Ai.

The outputs of that transaction are 10 UTXOs of 0.5BTC each, each locked by a different receiving address Ao.

Is it correct to posit that each of the Ai sent 0.1 BTC to each Ao? (Lets ignore the existence of transaction fee).


I don't think you can make that assumption with any certainty. You can fairly easily invent other explanations that are equally valid (though probably much less likely)

For example, this transaction might be created by a 23292 member club with an annual subscription of 1 BTC that sends prizes of 0.5 BTC to ten winners of their monthly competition. There would be no real-world transaction that links one specific subscriber with two specific prize-winners.

The blockchain certainly doesn't assign inputs to outputs. The only requirement is that the sum of inputs cannot exceed the sum of outputs (and usually the sum of outputs is less than the sum of inputs - the difference being the mining fee)

This may be clearer if you just think of this as a record of a fiat cash transaction. If I hand out $1 banknotes to ten people, the various five people who each gave me a couple of $1 banknotes in change have no involvement in my later transaction. The sources, sizes or sequence of the inputs are not relevant.

  • Hi, thanks for the input. Your last example isn't really applicable. I'm specifically interested in a single multi-in and multi-out transaction. I'm not asking about a single entity hading out 10 $1 bank notes. I'm asking about 5 people each putting 2 $1 notes in a pot. Then 10 people come along and each take a $1 note out. Is it on the whole fair to say that each of the 5 payers gave each of the 10 payees 20 cents each? Even though we cant split the note. I can update my example to try to make it clearer if it helps. – Simon O'Hanlon Mar 18 at 17:22
  • @SimonO'Hanlon: I don't understand how you can determine how many people are involved. Normally, ten addresses appearing in a transaction might all be controlled by one person, individually by ten people or any permutation in between. Did you have some specific type of transaction in mind? Your question doesn't seem to be specific to Bitcoin. If your record of movements in and out of the pot is simply a journal of amounts and "addresses" you don't know how many people are involved do you?. – RedGrittyBrick Mar 18 at 17:26
  • Ah, well because, even though a single person might control 10 addresses, I am interested in when those addresses are used on different platforms and looking at flows between platforms. There are examples where someone has sent from multiple different exchange addresses in a single transaction to multiple other exchanges. I would like to estimate the flow between those exchanges. – Simon O'Hanlon Mar 18 at 17:30
  • @SimonO'Hanlon: I believe there is no way to know whether someone intended to send i3 to o2 and o8 or to o1 and o3. They may have intended 1% of i3 to go to o6, 19% to o7, 40% to o2 and 40% to o9 with other imputs making up the balance of each of those outputs. The order of inputs and outputs in the transaction is arbitrary. – RedGrittyBrick Mar 18 at 18:00
  • Thanks for continuing the conversation. Yes I understand what you mean now. Thank you. – Simon O'Hanlon Mar 18 at 18:03

This kind of statement does not hold.

As RedGrittyBrick's answer mentions, bitcoin has no real concept of people, or individual contributions. Multiple inputs in a transaction might be controlled by a single entity, or multiple entities (multisig) may control a single input. There is no real relation between the number of inputs, distinct or otherwise, and the number/weight of a participant in a transaction.

This is further affected by actions such as a coinjoin, where multiple independent transactions may be combined into a single larger transaction, consisting of all the inputs of the smaller ones, and all of their outputs. In fact, coinjoins are performed because people and some tracking systems view transactions as you described, by trying to link inputs and their btc to outputs, and distribute "ownership" and responsibility proportionally to the BTC value of the input. However, as this concept does not directly translate into or accurately represent the nature of the transaction, it cannot be viewed as a "correct" interpretation.

After all, in your example tx, what stops me from saying that each input is responsible for exactly 2 of the outputs, and contributed nothing to the other 8? Or, why not say that inputs 1, 3, and 5 are responsible for outputs 1, 3, 5, 6, 7, 9, and not for 2, 4, 8, and 10? Why distribute their contributions equally to each output?

  • Thanks also for your input. Reading this and the Bitcoin wiki page on coinjoin it becomes clear. I guess the danger is some authority philosophically decides to treat the outputs in the way I described to err on the side of caution for not accepting "bad" bitcoins. – Simon O'Hanlon Mar 18 at 18:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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